In polytools when two polys are multiplied, the two polys are unified first:
def mul(f, g): """Multiply two polynomials `f` and `g`. """ _, per, F, G = f.unify(g) <======================= there try: result = F.mul(G) except AttributeError: # pragma: no cover raise OperationNotSupported(f, 'mul') return per(result) And the first thing that happens when F.mul(G) calls mul in polyclasses is: def mul(f, g): """Multiply two multivariate polynomials `f` and `g`. """ lev, dom, per, F, G = f.unify(g) <======= the same as the above. Why aren't the computed unified values simply passed as arguments with a flag "unified=True?" rather than being recomputed? Is this a design issue where it's easier to maintain if one duplicates work rather than tries to keeptrack of what work has already been done? -- You received this message because you are subscribed to the Google Groups "sympy" group. To post to this group, send email to sy...@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.