Hi,

On Mon, Apr 19, 2010 at 09:39:49AM -0700, smichr wrote:
> 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?
> 

there is no duplication in this case. Lets look into DMP.unify() code:

 if f.dom == g.dom:
     return f.lev, f.dom, f.per, f.rep, g.rep
 else:
     # unification code here

If you use Poly.mul() then Poly.unify() will unify domains and structure
of input polynomials, so in DMP.unify() (or any other in polyclasses.py)
(f.dom == g.dom) == True and no unification will be performed.

> -- 
> 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.
> 

-- 
Mateusz

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to