Hi, On Sat, May 29, 2010 at 07:10:38PM -0700, asmeurer wrote: > Also, more changes in the spirit of > 8640bcd67d77287ecfb03c03688ea6f6f527c2db (from polys9) would > definitely help with this. >
I was too optimistic about keyword arguments, which, in the end, aren't that cool that I thought. So, I cleaned up the interior of the module, transforming all keyword arguments usage to explicit arguments. Keywords will be kept only on the top level, i.e. Poly and the public API (e.g. factor(), gcd() ...), however, there will be managers for handling those keyword arguments. > Aaron Meurer > > On May 29, 7:08 pm, "Aaron S. Meurer" <[email protected]> wrote: > > 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 > > >>> athttp://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 > > >> athttp://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. > -- Mateusz
signature.asc
Description: This is a digitally signed message part
