Speed needs to be considered too. Aaron Meurer
On Fri, May 27, 2011 at 6:22 AM, smichr <[email protected]> wrote: > Does anyone have a better idea for how to canonicalize the args for > Add (perhaps Mul, too). > > >>> from sympy.abc import * > >>> from sympy import * > >>> 3*x+6*y > 3*x + 6*y > >>> _.args > (3*x, 6*y) > >>> (x+2*y).args > (2*y, x) > >>> (2*x+2*y+z).args > (2*y, z, 2*x) > >>> > > See how the args are unsorted -- at least in the sorted_key sense? > Work that I did in https://github.com/sympy/sympy/pull/370 on > primitive would be easier if all coefficient-1 args appeared at the > end of the args in the way that the Rational appears first. (How they > get printed is another matter and immaterial to this request.) > Basically, if this were true -- that the coeff=1 args were last in the > args -- then those that get their coefficient cleared out in the > removal of the primitive could be simply appended one by one to the > end of the args which could then be rebuilt with _new_rawargs. > > Here are some more permutations showing how the args shift around: > > >>> (4*x+y+2*z).args > (y, 2*z, 4*x) > >>> (4*x+z+2*y).args > (2*y, 4*x, z) > >>> (4*y+x+2*z).args > (4*y, 2*z, x) > >>> (4*y+z+2*x).args > (4*y, z, 2*x) > >>> (4*z+x+2*y).args > (4*z, 2*y, x) > >>> (4*z+y+2*x).args > (4*z, y, 2*x) > > -- > 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.
