This should help with the ability to know what options are even available. The
way it is right now, you have to read the source code to find out what kind of
options can be passed to functions like factor() or Poly() (of course, we will
still need docstrings with doctests to show what they actually do).
I've fixed it a little at least for factor in my polydocs-polys9 branch (see
the latest commit in about 30 min.), but my purpose in the branch has been to
write doctests, not documentation.
Aaron Meurer
On May 29, 2010, at 6:58 PM, Mateusz Paprocki wrote:
> Hi,
>
> On Thu, May 27, 2010 at 03:55:25PM -0600, Aaron S. Meurer wrote:
>> expand() only expands the denominator when it gets the deep=True flag
>> (because it is inside a Pow, namely, -1). So I guess factor needs to know
>> to use that flag when it gets frac=True.
>>
>
> Good that this went out, because I'm reworking code responsible for
> processing flags|options in polys. In the new approach, there will
> be a separate module for managing options which will allow for unified
> configuration of different aspects of polys. I'm also working on context
> managers which will save a lot of typing, e.g.:
>
> In [1]: c = ctx.gaussian(True)
>
> In [2]: factor(x**2 + 4)
> Out[2]:
> 2
> 4 + x
>
> In [3]: c.factor(x**2 + 4)
> Out[3]: (x + 2⋅ⅈ)⋅(x - 2⋅ⅈ)
>
> In [4]: with ctx.gaussian(True):
> ...: factor(x**2 + 4)
> ...:
> Out[4]: (x + 2⋅ⅈ)⋅(x - 2⋅ⅈ)
>
> The same will apply to other options (in particular to frac and expand).
>
> So, if there are more thoughts about this issue, lets share them, so that
> I have more input for the new developments.
>
>> The last item is a printing issue, and has nothing to do with factor or
>> expand.
>>
>> Aaron Meurer
>> On May 27, 2010, at 3:49 PM, smichr wrote:
>>
>>> Is the following behavior correct for factor?
>>>
>>>>>> from sympy import *
>>>>>> var('x y')
>>> (x, y)
>>>>>> eq = x*(1+2*y+y**2)+1+2*y+y**2
>>>
>>> Here we show what happens with and without expand being set:
>>>>>> factor(eq,expand=0)
>>> 1 + 2*y + x*(1 + 2*y + y**2) + y**2
>>>>>> factor(eq,expand=1)
>>> (1 + y)**2*(1 + x)
>>>
>>> Now try the same when eq is in the denominator:
>>>>>> factor(1/eq,expand=0,frac=1)
>>> 1/((1 + x)*(1 + y)**2)
>>>>>> factor(1/eq,expand=1,frac=1)
>>> 1/((1 + x)*(1 + y)**2)
>>>
>>> I would have expected that expand=0 with frac=1 would have given
>>> 1/(1 + 2*y + x*(1 + 2*y + y**2) + y**2)
>>>
>>> Also why are the terms reversed in the numerator and denominator?
>>>
>>>>>> factor(eq,expand=1)
>>> (1 + y)**2*(1 + x)
>>>>>> factor(1/eq,expand=1,frac=1)
>>> 1/((1 + x)*(1 + y)**2)
>>>
>>> (Notice that 1+x is changing positions.)
>>>
>>> This behavior was also tested in polys9.
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups
>>> "sympy" group.
>>> To post to this group, send email to [email protected].
>>> To unsubscribe from this group, send email to
>>> [email protected].
>>> For more options, visit this group at
>>> http://groups.google.com/group/sympy?hl=en.
>>>
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "sympy" group.
>> To post to this group, send email to [email protected].
>> To unsubscribe from this group, send email to
>> [email protected].
>> For more options, visit this group at
>> http://groups.google.com/group/sympy?hl=en.
>>
>
> --
> Mateusz
>
--
You received this message because you are subscribed to the Google Groups
"sympy" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sympy?hl=en.