On Tue, Aug 18, 2009 at 9:13 AM, Ondrej Certik<ond...@certik.cz> wrote: > > On Mon, Aug 17, 2009 at 9:41 PM, Ondrej Certik<ond...@certik.cz> wrote: >> On Mon, Aug 17, 2009 at 5:31 AM, William Stein<wst...@gmail.com> wrote: >>> >>> On Mon, Aug 17, 2009 at 3:20 AM, Ondrej Certik<ond...@certik.cz> wrote: >>>> >>>> On Mon, Aug 17, 2009 at 4:09 AM, Ondrej Certik<ond...@certik.cz> wrote: >>>>> On Mon, Aug 17, 2009 at 3:51 AM, William Stein<wst...@gmail.com> wrote: >>>>>> >>>>>> On Mon, Aug 17, 2009 at 2:40 AM, Ondrej Certik<ond...@certik.cz> wrote: >>>>>>> >>>>>>> On Mon, Aug 17, 2009 at 2:26 AM, William Stein<wst...@gmail.com> wrote: >>>>>>>> >>>>>>>> On Mon, Aug 17, 2009 at 1:14 AM, Ondrej Certik<ond...@certik.cz> wrote: >>>>>>>>> >>>>>>>>> Hi, >>>>>>>>> >>>>>>>>> at the scipy 09 conference I am going to compare Sage and sympy >>>>>>>>> approaches to factoring (and timings) and longer term approaches, so I >>>>>>>>> have a few questions about it, so that I understand things correctly. >>>>>>>>> If I do: >>>>>>>>> >>>>>>>>> sage: var("x y z") >>>>>>>>> (x, y, z) >>>>>>>>> sage: a = (x+y+z)**20 >>>>>>>>> sage: b = a.expand() >>>>>>>>> sage: %time c = factor(b) >>>>>>>>> CPU times: user 0.14 s, sys: 0.00 s, total: 0.15 s >>>>>>>>> Wall time: 0.15 s >>>>>>>>> >>>>>>>>> >>>>>>>>> 1) it uses pari, right? >>>>>>>> >>>>>>>> NO. Pari has no functionality at all for doing anything nontrivial >>>>>>>> with multivariate polynomials. Do b.factor?? to see the source. >>>>>>>> Sage tries to convert b to a poly over QQ, this works, then it calls >>>>>>>> SINGULAR to factor that. If conversion doesn't work, it falls back to >>>>>>>> Maxima right now. >>>>>>> >>>>>>> Thanks for all the clarifications, this answers all my questions. I >>>>>>> was looking into the function couple days ago and I don't know how I >>>>>>> got the impression that it uses pari -- when I looked now, it indeed >>>>>>> uses singular and spends most of the time in the conversion. >>>>>>> >>>>>>> We are now roughly on the level of maxima with our new not yet >>>>>>> reviewed poly patches to sympy: >>>>>>> >>>>>>> http://code.google.com/p/sympy/issues/detail?id=1598 >>>>>>> >>>>>>> and with gmpy (but otherwise still pure python) it's only about 4x >>>>>>> slower than sage + singular, but that's because Sage also is pure >>>>>>> python here, so after cythonizing the conversion in Sage it will >>>>>>> probably be 100x faster (as you suggested) --- so I am curious how >>>>>>> fast sympy's factor will be after cythonizing it a bit too. >>>>>>> Essentially to make fair comparisons in the long term, I'll keep in >>>>>>> mind that singular is the potential top speed here (assuming you can >>>>>>> optimize the conversion back and forth). You also mentioned that >>>>>>> singular itself can be sped up, but I have no idea how much, as I am >>>>>>> not an expert in this multivariate factoring business at all (Mateusz >>>>>>> Paprocki, who wrote the sympy patches, is). >>>>>> >>>>>> I think that if you want to get a good sense of how fast multivariate >>>>>> factorization *should* be, it is valuable to benchmark Magma, Maple, >>>>>> and Mathematica. >>>>>> >>>>>> If you want some specific benchmarks for Magma, let me know and I can >>>>>> compute them (if you don't have access). Maple and Mathematica are >>>>>> both on sage.math, so you have access. >>>>> >>>>> Yes, I tried Mathematica couple days ago on the above examples and >>>>> it's pretty fast. But singular seems to be faster on sage.math: >>>>> >>>>> In[9]:= Timing[Factor[b]] >>>>> >>>>> 50 >>>>> Out[9]= {0.07, (x + y + z) } >>>>> >>>>> sage: a = (x+y+z)**50 >>>>> sage: time factor(a) >>>>> CPU times: user 0.04 s, sys: 0.00 s, total: 0.04 s >>>>> Wall time: 0.04 s >>>>> (x + y + z)^50 >>>>> >>>>> but one has to be fair, that mathematica converts back and forth >>>>> between the symbolic expression, >>> >>> Does it? Who knows what Mathematica does? >> >> That's right -- what I meant is that mathematica kind of hides it, >> e.g. it behaves just like an expression, if you know what I mean. I >> have no idea what it does below the hood. >> >> Many thanks for the bechmarks and the long email. I'll use it in the >> presentation. So sympy can't yet expand and factor things like: >> >> (x+y)^2+1 >> >> so for your example it only factors it to a a mul of two expressions, >> but that's now enough. We still need to improve it. > > Ok, I was wrong, neither of those systems is doing it. So I tried the example: > > ((x+y+z)^20+1)*((x+y+z)^20+2) > > in sympy and it takes about 5 minutes in sympy (I didn't try the one with > ^30). > > But arguably, the output of the factor (even in Sage) is quite > useless, just look at the expression: > > sage: factor(b) > (x^2 + 2*x*y + 2*x*z + y^2 + 2*y*z + z^2 + 1)*(x^4 + 4*x^3*y + 4*x^3*z > + 6*x^2*y^2 + 12*x^2*y*z + 6*x^2*z^2 + 4*x*y^3 + 12*x*y^2*z + > 12*x*y*z^2 + 4*x*z^3 - x^2 + y^4 + 4*y^3*z + 6*y^2*z^2 + 4*y*z^3 - > 2*x*z - y^2 + z^4 - 2*x*y - 2*y*z - z^2 + 1)*(x^8 + 8*x^7*y + 8*x^7*z > + 28*x^6*y^2 + 56*x^6*y*z + 28*x^6*z^2 + 56*x^5*y^3 + 168*x^5*y^2*z + > 168*x^5*y*z^2 + 56*x^5*z^3 + 70*x^4*y^4 + 280*x^4*y^3*z + > 420*x^4*y^2*z^2 + 280*x^4*y*z^3 + 70*x^4*z^4 + 56*x^3*y^5 + > 280*x^3*y^4*z + 560*x^3*y^3*z^2 + 560*x^3*y^2*z^3 + 280*x^3*y*z^4 + > 56*x^3*z^5 + 28*x^2*y^6 + 168*x^2*y^5*z + 420*x^2*y^4*z^2 + > 560*x^2*y^3*z^3 + 420*x^2*y^2*z^4 + 168*x^2*y*z^5 + 28*x^2*z^6 + > 8*x*y^7 + 56*x*y^6*z + 168*x*y^5*z^2 + 280*x*y^4*z^3 + 280*x*y^3*z^4 + > 168*x*y^2*z^5 + 56*x*y*z^6 + 8*x*z^7 - x^6 + x^4 - x^2 + y^8 + 8*y^7*z > + 28*y^6*z^2 + 56*y^5*z^3 + 70*y^4*z^4 + 56*y^3*z^5 + 28*y^2*z^6 + > 8*y*z^7 - 6*x^5*z - 30*x^4*y*z - 15*x^4*z^2 - 60*x^3*y^2*z - > 60*x^3*y*z^2 - 20*x^3*z^3 - 60*x^2*y^3*z - 90*x^2*y^2*z^2 - > 60*x^2*y*z^3 - 15*x^2*z^4 - 30*x*y^4*z - 60*x*y^3*z^2 - 60*x*y^2*z^3 - > 30*x*y*z^4 - 6*x*z^5 - y^6 + 4*x^3*z + 12*x^2*y*z + 6*x^2*z^2 + > 12*x*y^2*z + 12*x*y*z^2 + 4*x*z^3 + y^4 - 2*x*z - y^2 + z^8 - 6*x^5*y > - 15*x^4*y^2 - 20*x^3*y^3 - 15*x^2*y^4 - 6*x*y^5 - 6*y^5*z - > 15*y^4*z^2 - 20*y^3*z^3 - 15*y^2*z^4 - 6*y*z^5 - z^6 + 4*x^3*y + > 6*x^2*y^2 + 4*x*y^3 + 4*y^3*z + 6*y^2*z^2 + 4*y*z^3 + z^4 - 2*x*y - > 2*y*z - z^2 + 1)*(x^16 + 16*x^15*y + 16*x^15*z + 120*x^14*y^2 + > 240*x^14*y*z + 120*x^14*z^2 + 560*x^13*y^3 + 1680*x^13*y^2*z + > 1680*x^13*y*z^2 + 560*x^13*z^3 + 1820*x^12*y^4 + 7280*x^12*y^3*z + > 10920*x^12*y^2*z^2 + 7280*x^12*y*z^3 + 1820*x^12*z^4 + 4368*x^11*y^5 + > 21840*x^11*y^4*z + 43680*x^11*y^3*z^2 + 43680*x^11*y^2*z^3 + > 21840*x^11*y*z^4 + 4368*x^11*z^5 + 8008*x^10*y^6 + 48048*x^10*y^5*z + > 120120*x^10*y^4*z^2 + 160160*x^10*y^3*z^3 + 120120*x^10*y^2*z^4 + > 48048*x^10*y*z^5 + 8008*x^10*z^6 + 11440*x^9*y^7 + 80080*x^9*y^6*z + > 240240*x^9*y^5*z^2 + 400400*x^9*y^4*z^3 + 400400*x^9*y^3*z^4 + > 240240*x^9*y^2*z^5 + 80080*x^9*y*z^6 + 11440*x^9*z^7 + 12870*x^8*y^8 + > 102960*x^8*y^7*z + 360360*x^8*y^6*z^2 + 720720*x^8*y^5*z^3 + > 900900*x^8*y^4*z^4 + 720720*x^8*y^3*z^5 + 360360*x^8*y^2*z^6 + > 102960*x^8*y*z^7 + 12870*x^8*z^8 + 11440*x^7*y^9 + 102960*x^7*y^8*z + > 411840*x^7*y^7*z^2 + 960960*x^7*y^6*z^3 + 1441440*x^7*y^5*z^4 + > 1441440*x^7*y^4*z^5 + 960960*x^7*y^3*z^6 + 411840*x^7*y^2*z^7 + > 102960*x^7*y*z^8 + 11440*x^7*z^9 + 8008*x^6*y^10 + 80080*x^6*y^9*z + > 360360*x^6*y^8*z^2 + 960960*x^6*y^7*z^3 + 1681680*x^6*y^6*z^4 + > 2018016*x^6*y^5*z^5 + 1681680*x^6*y^4*z^6 + 960960*x^6*y^3*z^7 + > 360360*x^6*y^2*z^8 + 80080*x^6*y*z^9 + 8008*x^6*z^10 + 4368*x^5*y^11 + > 48048*x^5*y^10*z + 240240*x^5*y^9*z^2 + 720720*x^5*y^8*z^3 + > 1441440*x^5*y^7*z^4 + 2018016*x^5*y^6*z^5 + 2018016*x^5*y^5*z^6 + > 1441440*x^5*y^4*z^7 + 720720*x^5*y^3*z^8 + 240240*x^5*y^2*z^9 + > 48048*x^5*y*z^10 + 4368*x^5*z^11 + 1820*x^4*y^12 + 21840*x^4*y^11*z + > 120120*x^4*y^10*z^2 + 400400*x^4*y^9*z^3 + 900900*x^4*y^8*z^4 + > 1441440*x^4*y^7*z^5 + 1681680*x^4*y^6*z^6 + 1441440*x^4*y^5*z^7 + > 900900*x^4*y^4*z^8 + 400400*x^4*y^3*z^9 + 120120*x^4*y^2*z^10 + > 21840*x^4*y*z^11 + 1820*x^4*z^12 + 560*x^3*y^13 + 7280*x^3*y^12*z + > 43680*x^3*y^11*z^2 + 160160*x^3*y^10*z^3 + 400400*x^3*y^9*z^4 + > 720720*x^3*y^8*z^5 + 960960*x^3*y^7*z^6 + 960960*x^3*y^6*z^7 + > 720720*x^3*y^5*z^8 + 400400*x^3*y^4*z^9 + 160160*x^3*y^3*z^10 + > 43680*x^3*y^2*z^11 + 7280*x^3*y*z^12 + 560*x^3*z^13 + 120*x^2*y^14 + > 1680*x^2*y^13*z + 10920*x^2*y^12*z^2 + 43680*x^2*y^11*z^3 + > 120120*x^2*y^10*z^4 + 240240*x^2*y^9*z^5 + 360360*x^2*y^8*z^6 + > 411840*x^2*y^7*z^7 + 360360*x^2*y^6*z^8 + 240240*x^2*y^5*z^9 + > 120120*x^2*y^4*z^10 + 43680*x^2*y^3*z^11 + 10920*x^2*y^2*z^12 + > 1680*x^2*y*z^13 + 120*x^2*z^14 + 16*x*y^15 + 240*x*y^14*z + > 1680*x*y^13*z^2 + 7280*x*y^12*z^3 + 21840*x*y^11*z^4 + > 48048*x*y^10*z^5 + 80080*x*y^9*z^6 + 102960*x*y^8*z^7 + > 102960*x*y^7*z^8 + 80080*x*y^6*z^9 + 48048*x*y^5*z^10 + > 21840*x*y^4*z^11 + 7280*x*y^3*z^12 + 1680*x*y^2*z^13 + 240*x*y*z^14 + > 16*x*z^15 + x^14 - x^10 - x^8 - x^6 + x^2 + y^16 + 16*y^15*z + > 120*y^14*z^2 + 560*y^13*z^3 + 1820*y^12*z^4 + 4368*y^11*z^5 + > 8008*y^10*z^6 + 11440*y^9*z^7 + 12870*y^8*z^8 + 11440*y^7*z^9 + > 8008*y^6*z^10 + 4368*y^5*z^11 + 1820*y^4*z^12 + 560*y^3*z^13 + > 120*y^2*z^14 + 16*y*z^15 + 14*x^13*z + 182*x^12*y*z + 91*x^12*z^2 + > 1092*x^11*y^2*z + 1092*x^11*y*z^2 + 364*x^11*z^3 + 4004*x^10*y^3*z + > 6006*x^10*y^2*z^2 + 4004*x^10*y*z^3 + 1001*x^10*z^4 + 10010*x^9*y^4*z > + 20020*x^9*y^3*z^2 + 20020*x^9*y^2*z^3 + 10010*x^9*y*z^4 + > 2002*x^9*z^5 + 18018*x^8*y^5*z + 45045*x^8*y^4*z^2 + 60060*x^8*y^3*z^3 > + 45045*x^8*y^2*z^4 + 18018*x^8*y*z^5 + 3003*x^8*z^6 + 24024*x^7*y^6*z > + 72072*x^7*y^5*z^2 + 120120*x^7*y^4*z^3 + 120120*x^7*y^3*z^4 + > 72072*x^7*y^2*z^5 + 24024*x^7*y*z^6 + 3432*x^7*z^7 + 24024*x^6*y^7*z + > 84084*x^6*y^6*z^2 + 168168*x^6*y^5*z^3 + 210210*x^6*y^4*z^4 + > 168168*x^6*y^3*z^5 + 84084*x^6*y^2*z^6 + 24024*x^6*y*z^7 + > 3003*x^6*z^8 + 18018*x^5*y^8*z + 72072*x^5*y^7*z^2 + > 168168*x^5*y^6*z^3 + 252252*x^5*y^5*z^4 + 252252*x^5*y^4*z^5 + > 168168*x^5*y^3*z^6 + 72072*x^5*y^2*z^7 + 18018*x^5*y*z^8 + > 2002*x^5*z^9 + 10010*x^4*y^9*z + 45045*x^4*y^8*z^2 + > 120120*x^4*y^7*z^3 + 210210*x^4*y^6*z^4 + 252252*x^4*y^5*z^5 + > 210210*x^4*y^4*z^6 + 120120*x^4*y^3*z^7 + 45045*x^4*y^2*z^8 + > 10010*x^4*y*z^9 + 1001*x^4*z^10 + 4004*x^3*y^10*z + 20020*x^3*y^9*z^2 > + 60060*x^3*y^8*z^3 + 120120*x^3*y^7*z^4 + 168168*x^3*y^6*z^5 + > 168168*x^3*y^5*z^6 + 120120*x^3*y^4*z^7 + 60060*x^3*y^3*z^8 + > 20020*x^3*y^2*z^9 + 4004*x^3*y*z^10 + 364*x^3*z^11 + 1092*x^2*y^11*z + > 6006*x^2*y^10*z^2 + 20020*x^2*y^9*z^3 + 45045*x^2*y^8*z^4 + > 72072*x^2*y^7*z^5 + 84084*x^2*y^6*z^6 + 72072*x^2*y^5*z^7 + > 45045*x^2*y^4*z^8 + 20020*x^2*y^3*z^9 + 6006*x^2*y^2*z^10 + > 1092*x^2*y*z^11 + 91*x^2*z^12 + 182*x*y^12*z + 1092*x*y^11*z^2 + > 4004*x*y^10*z^3 + 10010*x*y^9*z^4 + 18018*x*y^8*z^5 + 24024*x*y^7*z^6 > + 24024*x*y^6*z^7 + 18018*x*y^5*z^8 + 10010*x*y^4*z^9 + > 4004*x*y^3*z^10 + 1092*x*y^2*z^11 + 182*x*y*z^12 + 14*x*z^13 + y^14 - > 10*x^9*z - 90*x^8*y*z - 45*x^8*z^2 - 360*x^7*y^2*z - 360*x^7*y*z^2 - > 120*x^7*z^3 - 840*x^6*y^3*z - 1260*x^6*y^2*z^2 - 840*x^6*y*z^3 - > 210*x^6*z^4 - 1260*x^5*y^4*z - 2520*x^5*y^3*z^2 - 2520*x^5*y^2*z^3 - > 1260*x^5*y*z^4 - 252*x^5*z^5 - 1260*x^4*y^5*z - 3150*x^4*y^4*z^2 - > 4200*x^4*y^3*z^3 - 3150*x^4*y^2*z^4 - 1260*x^4*y*z^5 - 210*x^4*z^6 - > 840*x^3*y^6*z - 2520*x^3*y^5*z^2 - 4200*x^3*y^4*z^3 - 4200*x^3*y^3*z^4 > - 2520*x^3*y^2*z^5 - 840*x^3*y*z^6 - 120*x^3*z^7 - 360*x^2*y^7*z - > 1260*x^2*y^6*z^2 - 2520*x^2*y^5*z^3 - 3150*x^2*y^4*z^4 - > 2520*x^2*y^3*z^5 - 1260*x^2*y^2*z^6 - 360*x^2*y*z^7 - 45*x^2*z^8 - > 90*x*y^8*z - 360*x*y^7*z^2 - 840*x*y^6*z^3 - 1260*x*y^5*z^4 - > 1260*x*y^4*z^5 - 840*x*y^3*z^6 - 360*x*y^2*z^7 - 90*x*y*z^8 - 10*x*z^9 > - y^10 - 8*x^7*z - 56*x^6*y*z - 28*x^6*z^2 - 168*x^5*y^2*z - > 168*x^5*y*z^2 - 56*x^5*z^3 - 280*x^4*y^3*z - 420*x^4*y^2*z^2 - > 280*x^4*y*z^3 - 70*x^4*z^4 - 280*x^3*y^4*z - 560*x^3*y^3*z^2 - > 560*x^3*y^2*z^3 - 280*x^3*y*z^4 - 56*x^3*z^5 - 168*x^2*y^5*z - > 420*x^2*y^4*z^2 - 560*x^2*y^3*z^3 - 420*x^2*y^2*z^4 - 168*x^2*y*z^5 - > 28*x^2*z^6 - 56*x*y^6*z - 168*x*y^5*z^2 - 280*x*y^4*z^3 - > 280*x*y^3*z^4 - 168*x*y^2*z^5 - 56*x*y*z^6 - 8*x*z^7 - y^8 - 6*x^5*z - > 30*x^4*y*z - 15*x^4*z^2 - 60*x^3*y^2*z - 60*x^3*y*z^2 - 20*x^3*z^3 - > 60*x^2*y^3*z - 90*x^2*y^2*z^2 - 60*x^2*y*z^3 - 15*x^2*z^4 - 30*x*y^4*z > - 60*x*y^3*z^2 - 60*x*y^2*z^3 - 30*x*y*z^4 - 6*x*z^5 - y^6 + 2*x*z + > y^2 + z^16 + 14*x^13*y + 91*x^12*y^2 + 364*x^11*y^3 + 1001*x^10*y^4 + > 2002*x^9*y^5 + 3003*x^8*y^6 + 3432*x^7*y^7 + 3003*x^6*y^8 + > 2002*x^5*y^9 + 1001*x^4*y^10 + 364*x^3*y^11 + 91*x^2*y^12 + 14*x*y^13 > + 14*y^13*z + 91*y^12*z^2 + 364*y^11*z^3 + 1001*y^10*z^4 + > 2002*y^9*z^5 + 3003*y^8*z^6 + 3432*y^7*z^7 + 3003*y^6*z^8 + > 2002*y^5*z^9 + 1001*y^4*z^10 + 364*y^3*z^11 + 91*y^2*z^12 + 14*y*z^13 > + z^14 - 10*x^9*y - 45*x^8*y^2 - 120*x^7*y^3 - 210*x^6*y^4 - > 252*x^5*y^5 - 210*x^4*y^6 - 120*x^3*y^7 - 45*x^2*y^8 - 10*x*y^9 - > 10*y^9*z - 45*y^8*z^2 - 120*y^7*z^3 - 210*y^6*z^4 - 252*y^5*z^5 - > 210*y^4*z^6 - 120*y^3*z^7 - 45*y^2*z^8 - 10*y*z^9 - z^10 - 8*x^7*y - > 28*x^6*y^2 - 56*x^5*y^3 - 70*x^4*y^4 - 56*x^3*y^5 - 28*x^2*y^6 - > 8*x*y^7 - 8*y^7*z - 28*y^6*z^2 - 56*y^5*z^3 - 70*y^4*z^4 - 56*y^3*z^5 > - 28*y^2*z^6 - 8*y*z^7 - z^8 - 6*x^5*y - 15*x^4*y^2 - 20*x^3*y^3 - > 15*x^2*y^4 - 6*x*y^5 - 6*y^5*z - 15*y^4*z^2 - 20*y^3*z^3 - 15*y^2*z^4 > - 6*y*z^5 - z^6 + 2*x*y + 2*y*z + z^2 + 1)*(x^30 + 30*x^29*y + > 30*x^29*z + 435*x^28*y^2 + 870*x^28*y*z + 435*x^28*z^2 + 4060*x^27*y^3 > + 12180*x^27*y^2*z + 12180*x^27*y*z^2 + 4060*x^27*z^3 + 27405*x^26*y^4 > + 109620*x^26*y^3*z + 164430*x^26*y^2*z^2 + 109620*x^26*y*z^3 + > 27405*x^26*z^4 + 142506*x^25*y^5 + 712530*x^25*y^4*z + > 1425060*x^25*y^3*z^2 + 1425060*x^25*y^2*z^3 + 712530*x^25*y*z^4 + > 142506*x^25*z^5 + 593775*x^24*y^6 + 3562650*x^24*y^5*z + > 8906625*x^24*y^4*z^2 + 11875500*x^24*y^3*z^3 + 8906625*x^24*y^2*z^4 + > 3562650*x^24*y*z^5 + 593775*x^24*z^6 + 2035800*x^23*y^7 + > 14250600*x^23*y^6*z + 42751800*x^23*y^5*z^2 + 71253000*x^23*y^4*z^3 + > 71253000*x^23*y^3*z^4 + 42751800*x^23*y^2*z^5 + 14250600*x^23*y*z^6 + > 2035800*x^23*z^7 + 5852925*x^22*y^8 + 46823400*x^22*y^7*z + > 163881900*x^22*y^6*z^2 + 327763800*x^22*y^5*z^3 + > 409704750*x^22*y^4*z^4 + 327763800*x^22*y^3*z^5 + > 163881900*x^22*y^2*z^6 + 46823400*x^22*y*z^7 + 5852925*x^22*z^8 + > 14307150*x^21*y^9 + 128764350*x^21*y^8*z + 515057400*x^21*y^7*z^2 + > 1201800600*x^21*y^6*z^3 + 1802700900*x^21*y^5*z^4 + > 1802700900*x^21*y^4*z^5 + 1201800600*x^21*y^3*z^6 + > 515057400*x^21*y^2*z^7 + 128764350*x^21*y*z^8 + 14307150*x^21*z^9 + > 30045015*x^20*y^10 + 300450150*x^20*y^9*z + 1352025675*x^20*y^8*z^2 + > 3605401800*x^20*y^7*z^3 + 6309453150*x^20*y^6*z^4 + > 7571343780*x^20*y^5*z^5 + 6309453150*x^20*y^4*z^6 + > 3605401800*x^20*y^3*z^7 + 1352025675*x^20*y^2*z^8 + > 300450150*x^20*y*z^9 + 30045015*x^20*z^10 + 54627300*x^19*y^11 + > 600900300*x^19*y^10*z + 3004501500*x^19*y^9*z^2 + > 9013504500*x^19*y^8*z^3 + 18027009000*x^19*y^7*z^4 + > 25237812600*x^19*y^6*z^5 + 25237812600*x^19*y^5*z^6 + > 18027009000*x^19*y^4*z^7 + 9013504500*x^19*y^3*z^8 + > 3004501500*x^19*y^2*z^9 + 600900300*x^19*y*z^10 + 54627300*x^19*z^11 + > 86493225*x^18*y^12 + 1037918700*x^18*y^11*z + 5708552850*x^18*y^10*z^2 > + 19028509500*x^18*y^9*z^3 + 42814146375*x^18*y^8*z^4 + > 68502634200*x^18*y^7*z^5 + 79919739900*x^18*y^6*z^6 + > 68502634200*x^18*y^5*z^7 + 42814146375*x^18*y^4*z^8 + > 19028509500*x^18*y^3*z^9 + 5708552850*x^18*y^2*z^10 + > 1037918700*x^18*y*z^11 + 86493225*x^18*z^12 + 119759850*x^17*y^13 + > 1556878050*x^17*y^12*z + 9341268300*x^17*y^11*z^2 + > 34251317100*x^17*y^10*z^3 + 85628292750*x^17*y^9*z^4 + > 154130926950*x^17*y^8*z^5 + 205507902600*x^17*y^7*z^6 + > 205507902600*x^17*y^6*z^7 + 154130926950*x^17*y^5*z^8 + > 85628292750*x^17*y^4*z^9 + 34251317100*x^17*y^3*z^10 + > 9341268300*x^17*y^2*z^11 + 1556878050*x^17*y*z^12 + > 119759850*x^17*z^13 + 145422675*x^16*y^14 + 2035917450*x^16*y^13*z + > 13233463425*x^16*y^12*z^2 + 52933853700*x^16*y^11*z^3 + > 145568097675*x^16*y^10*z^4 + 291136195350*x^16*y^9*z^5 + > 436704293025*x^16*y^8*z^6 + 499090620600*x^16*y^7*z^7 + > 436704293025*x^16*y^6*z^8 + 291136195350*x^16*y^5*z^9 + > 145568097675*x^16*y^4*z^10 + 52933853700*x^16*y^3*z^11 + > 13233463425*x^16*y^2*z^12 + 2035917450*x^16*y*z^13 + > 145422675*x^16*z^14 + 155117520*x^15*y^15 + 2326762800*x^15*y^14*z + > 16287339600*x^15*y^13*z^2 + 70578471600*x^15*y^12*z^3 + > 211735414800*x^15*y^11*z^4 + 465817912560*x^15*y^10*z^5 + > 776363187600*x^15*y^9*z^6 + 998181241200*x^15*y^8*z^7 + > 998181241200*x^15*y^7*z^8 + 776363187600*x^15*y^6*z^9 + > 465817912560*x^15*y^5*z^10 + 211735414800*x^15*y^4*z^11 + > 70578471600*x^15*y^3*z^12 + 16287339600*x^15*y^2*z^13 + > 2326762800*x^15*y*z^14 + 155117520*x^15*z^15 + 145422675*x^14*y^16 + > 2326762800*x^14*y^15*z + 17450721000*x^14*y^14*z^2 + > 81436698000*x^14*y^13*z^3 + 264669268500*x^14*y^12*z^4 + > 635206244400*x^14*y^11*z^5 + 1164544781400*x^14*y^10*z^6 + > 1663635402000*x^14*y^9*z^7 + 1871589827250*x^14*y^8*z^8 + > 1663635402000*x^14*y^7*z^9 + 1164544781400*x^14*y^6*z^10 + > 635206244400*x^14*y^5*z^11 + 264669268500*x^14*y^4*z^12 + > 81436698000*x^14*y^3*z^13 + 17450721000*x^14*y^2*z^14 + > 2326762800*x^14*y*z^15 + 145422675*x^14*z^16 + 119759850*x^13*y^17 + > 2035917450*x^13*y^16*z + 16287339600*x^13*y^15*z^2 + > 81436698000*x^13*y^14*z^3 + 285028443000*x^13*y^13*z^4 + > 741073951800*x^13*y^12*z^5 + 1482147903600*x^13*y^11*z^6 + > 2329089562800*x^13*y^10*z^7 + 2911361953500*x^13*y^9*z^8 + > 2911361953500*x^13*y^8*z^9 + 2329089562800*x^13*y^7*z^10 + > 1482147903600*x^13*y^6*z^11 + 741073951800*x^13*y^5*z^12 + > 285028443000*x^13*y^4*z^13 + 81436698000*x^13*y^3*z^14 + > 16287339600*x^13*y^2*z^15 + 2035917450*x^13*y*z^16 + > 119759850*x^13*z^17 + 86493225*x^12*y^18 + 1556878050*x^12*y^17*z + > 13233463425*x^12*y^16*z^2 + 70578471600*x^12*y^15*z^3 + > 264669268500*x^12*y^14*z^4 + 741073951800*x^12*y^13*z^5 + > 1605660228900*x^12*y^12*z^6 + 2752560392400*x^12*y^11*z^7 + > 3784770539550*x^12*y^10*z^8 + 4205300599500*x^12*y^9*z^9 + > 3784770539550*x^12*y^8*z^10 + 2752560392400*x^12*y^7*z^11 + > 1605660228900*x^12*y^6*z^12 + 741073951800*x^12*y^5*z^13 + > 264669268500*x^12*y^4*z^14 + 70578471600*x^12*y^3*z^15 + > 13233463425*x^12*y^2*z^16 + 1556878050*x^12*y*z^17 + > 86493225*x^12*z^18 + 54627300*x^11*y^19 + 1037918700*x^11*y^18*z + > 9341268300*x^11*y^17*z^2 + 52933853700*x^11*y^16*z^3 + > 211735414800*x^11*y^15*z^4 + 635206244400*x^11*y^14*z^5 + > 1482147903600*x^11*y^13*z^6 + 2752560392400*x^11*y^12*z^7 + > 4128840588600*x^11*y^11*z^8 + 5046360719400*x^11*y^10*z^9 + > 5046360719400*x^11*y^9*z^10 + 4128840588600*x^11*y^8*z^11 + > 2752560392400*x^11*y^7*z^12 + 1482147903600*x^11*y^6*z^13 + > 635206244400*x^11*y^5*z^14 + 211735414800*x^11*y^4*z^15 + > 52933853700*x^11*y^3*z^16 + 9341268300*x^11*y^2*z^17 + > 1037918700*x^11*y*z^18 + 54627300*x^11*z^19 + 30045015*x^10*y^20 + > 600900300*x^10*y^19*z + 5708552850*x^10*y^18*z^2 + > 34251317100*x^10*y^17*z^3 + 145568097675*x^10*y^16*z^4 + > 465817912560*x^10*y^15*z^5 + 1164544781400*x^10*y^14*z^6 + > 2329089562800*x^10*y^13*z^7 + 3784770539550*x^10*y^12*z^8 + > 5046360719400*x^10*y^11*z^9 + 5550996791340*x^10*y^10*z^10 + > 5046360719400*x^10*y^9*z^11 + 3784770539550*x^10*y^8*z^12 + > 2329089562800*x^10*y^7*z^13 + 1164544781400*x^10*y^6*z^14 + > 465817912560*x^10*y^5*z^15 + 145568097675*x^10*y^4*z^16 + > 34251317100*x^10*y^3*z^17 + 5708552850*x^10*y^2*z^18 + > 600900300*x^10*y*z^19 + 30045015*x^10*z^20 + 14307150*x^9*y^21 + > 300450150*x^9*y^20*z + 3004501500*x^9*y^19*z^2 + > 19028509500*x^9*y^18*z^3 + 85628292750*x^9*y^17*z^4 + > 291136195350*x^9*y^16*z^5 + 776363187600*x^9*y^15*z^6 + > 1663635402000*x^9*y^14*z^7 + 2911361953500*x^9*y^13*z^8 + > 4205300599500*x^9*y^12*z^9 + 5046360719400*x^9*y^11*z^10 + > 5046360719400*x^9*y^10*z^11 + 4205300599500*x^9*y^9*z^12 + > 2911361953500*x^9*y^8*z^13 + 1663635402000*x^9*y^7*z^14 + > 776363187600*x^9*y^6*z^15 + 291136195350*x^9*y^5*z^16 + > 85628292750*x^9*y^4*z^17 + 19028509500*x^9*y^3*z^18 + > 3004501500*x^9*y^2*z^19 + 300450150*x^9*y*z^20 + 14307150*x^9*z^21 + > 5852925*x^8*y^22 + 128764350*x^8*y^21*z + 1352025675*x^8*y^20*z^2 + > 9013504500*x^8*y^19*z^3 + 42814146375*x^8*y^18*z^4 + > 154130926950*x^8*y^17*z^5 + 436704293025*x^8*y^16*z^6 + > 998181241200*x^8*y^15*z^7 + 1871589827250*x^8*y^14*z^8 + > 2911361953500*x^8*y^13*z^9 + 3784770539550*x^8*y^12*z^10 + > 4128840588600*x^8*y^11*z^11 + 3784770539550*x^8*y^10*z^12 + > 2911361953500*x^8*y^9*z^13 + 1871589827250*x^8*y^8*z^14 + > 998181241200*x^8*y^7*z^15 + 436704293025*x^8*y^6*z^16 + > 154130926950*x^8*y^5*z^17 + 42814146375*x^8*y^4*z^18 + > 9013504500*x^8*y^3*z^19 + 1352025675*x^8*y^2*z^20 + > 128764350*x^8*y*z^21 + 5852925*x^8*z^22 + 2035800*x^7*y^23 + > 46823400*x^7*y^22*z + 515057400*x^7*y^21*z^2 + 3605401800*x^7*y^20*z^3 > + 18027009000*x^7*y^19*z^4 + 68502634200*x^7*y^18*z^5 + > 205507902600*x^7*y^17*z^6 + 499090620600*x^7*y^16*z^7 + > 998181241200*x^7*y^15*z^8 + 1663635402000*x^7*y^14*z^9 + > 2329089562800*x^7*y^13*z^10 + 2752560392400*x^7*y^12*z^11 + > 2752560392400*x^7*y^11*z^12 + 2329089562800*x^7*y^10*z^13 + > 1663635402000*x^7*y^9*z^14 + 998181241200*x^7*y^8*z^15 + > 499090620600*x^7*y^7*z^16 + 205507902600*x^7*y^6*z^17 + > 68502634200*x^7*y^5*z^18 + 18027009000*x^7*y^4*z^19 + > 3605401800*x^7*y^3*z^20 + 515057400*x^7*y^2*z^21 + 46823400*x^7*y*z^22 > + 2035800*x^7*z^23 + 593775*x^6*y^24 + 14250600*x^6*y^23*z + > 163881900*x^6*y^22*z^2 + 1201800600*x^6*y^21*z^3 + > 6309453150*x^6*y^20*z^4 + 25237812600*x^6*y^19*z^5 + > 79919739900*x^6*y^18*z^6 + 205507902600*x^6*y^17*z^7 + > 436704293025*x^6*y^16*z^8 + 776363187600*x^6*y^15*z^9 + > 1164544781400*x^6*y^14*z^10 + 1482147903600*x^6*y^13*z^11 + > 1605660228900*x^6*y^12*z^12 + 1482147903600*x^6*y^11*z^13 + > 1164544781400*x^6*y^10*z^14 + 776363187600*x^6*y^9*z^15 + > 436704293025*x^6*y^8*z^16 + 205507902600*x^6*y^7*z^17 + > 79919739900*x^6*y^6*z^18 + 25237812600*x^6*y^5*z^19 + > 6309453150*x^6*y^4*z^20 + 1201800600*x^6*y^3*z^21 + > 163881900*x^6*y^2*z^22 + 14250600*x^6*y*z^23 + 593775*x^6*z^24 + > 142506*x^5*y^25 + 3562650*x^5*y^24*z + 42751800*x^5*y^23*z^2 + > 327763800*x^5*y^22*z^3 + 1802700900*x^5*y^21*z^4 + > 7571343780*x^5*y^20*z^5 + 25237812600*x^5*y^19*z^6 + > 68502634200*x^5*y^18*z^7 + 154130926950*x^5*y^17*z^8 + > 291136195350*x^5*y^16*z^9 + 465817912560*x^5*y^15*z^10 + > 635206244400*x^5*y^14*z^11 + 741073951800*x^5*y^13*z^12 + > 741073951800*x^5*y^12*z^13 + 635206244400*x^5*y^11*z^14 + > 465817912560*x^5*y^10*z^15 + 291136195350*x^5*y^9*z^16 + > 154130926950*x^5*y^8*z^17 + 68502634200*x^5*y^7*z^18 + > 25237812600*x^5*y^6*z^19 + 7571343780*x^5*y^5*z^20 + > 1802700900*x^5*y^4*z^21 + 327763800*x^5*y^3*z^22 + > 42751800*x^5*y^2*z^23 + 3562650*x^5*y*z^24 + 142506*x^5*z^25 + > 27405*x^4*y^26 + 712530*x^4*y^25*z + 8906625*x^4*y^24*z^2 + > 71253000*x^4*y^23*z^3 + 409704750*x^4*y^22*z^4 + > 1802700900*x^4*y^21*z^5 + 6309453150*x^4*y^20*z^6 + > 18027009000*x^4*y^19*z^7 + 42814146375*x^4*y^18*z^8 + > 85628292750*x^4*y^17*z^9 + 145568097675*x^4*y^16*z^10 + > 211735414800*x^4*y^15*z^11 + 264669268500*x^4*y^14*z^12 + > 285028443000*x^4*y^13*z^13 + 264669268500*x^4*y^12*z^14 + > 211735414800*x^4*y^11*z^15 + 145568097675*x^4*y^10*z^16 + > 85628292750*x^4*y^9*z^17 + 42814146375*x^4*y^8*z^18 + > 18027009000*x^4*y^7*z^19 + 6309453150*x^4*y^6*z^20 + > 1802700900*x^4*y^5*z^21 + 409704750*x^4*y^4*z^22 + > 71253000*x^4*y^3*z^23 + 8906625*x^4*y^2*z^24 + 712530*x^4*y*z^25 + > 27405*x^4*z^26 + 4060*x^3*y^27 + 109620*x^3*y^26*z + > 1425060*x^3*y^25*z^2 + 11875500*x^3*y^24*z^3 + 71253000*x^3*y^23*z^4 + > 327763800*x^3*y^22*z^5 + 1201800600*x^3*y^21*z^6 + > 3605401800*x^3*y^20*z^7 + 9013504500*x^3*y^19*z^8 + > 19028509500*x^3*y^18*z^9 + 34251317100*x^3*y^17*z^10 + > 52933853700*x^3*y^16*z^11 + 70578471600*x^3*y^15*z^12 + > 81436698000*x^3*y^14*z^13 + 81436698000*x^3*y^13*z^14 + > 70578471600*x^3*y^12*z^15 + 52933853700*x^3*y^11*z^16 + > 34251317100*x^3*y^10*z^17 + 19028509500*x^3*y^9*z^18 + > 9013504500*x^3*y^8*z^19 + 3605401800*x^3*y^7*z^20 + > 1201800600*x^3*y^6*z^21 + 327763800*x^3*y^5*z^22 + > 71253000*x^3*y^4*z^23 + 11875500*x^3*y^3*z^24 + 1425060*x^3*y^2*z^25 + > 109620*x^3*y*z^26 + 4060*x^3*z^27 + 435*x^2*y^28 + 12180*x^2*y^27*z + > 164430*x^2*y^26*z^2 + 1425060*x^2*y^25*z^3 + 8906625*x^2*y^24*z^4 + > 42751800*x^2*y^23*z^5 + 163881900*x^2*y^22*z^6 + > 515057400*x^2*y^21*z^7 + 1352025675*x^2*y^20*z^8 + > 3004501500*x^2*y^19*z^9 + 5708552850*x^2*y^18*z^10 + > 9341268300*x^2*y^17*z^11 + 13233463425*x^2*y^16*z^12 + > 16287339600*x^2*y^15*z^13 + 17450721000*x^2*y^14*z^14 + > 16287339600*x^2*y^13*z^15 + 13233463425*x^2*y^12*z^16 + > 9341268300*x^2*y^11*z^17 + 5708552850*x^2*y^10*z^18 + > 3004501500*x^2*y^9*z^19 + 1352025675*x^2*y^8*z^20 + > 515057400*x^2*y^7*z^21 + 163881900*x^2*y^6*z^22 + > 42751800*x^2*y^5*z^23 + 8906625*x^2*y^4*z^24 + 1425060*x^2*y^3*z^25 + > 164430*x^2*y^2*z^26 + 12180*x^2*y*z^27 + 435*x^2*z^28 + 30*x*y^29 + > 870*x*y^28*z + 12180*x*y^27*z^2 + 109620*x*y^26*z^3 + > 712530*x*y^25*z^4 + 3562650*x*y^24*z^5 + 14250600*x*y^23*z^6 + > 46823400*x*y^22*z^7 + 128764350*x*y^21*z^8 + 300450150*x*y^20*z^9 + > 600900300*x*y^19*z^10 + 1037918700*x*y^18*z^11 + > 1556878050*x*y^17*z^12 + 2035917450*x*y^16*z^13 + > 2326762800*x*y^15*z^14 + 2326762800*x*y^14*z^15 + > 2035917450*x*y^13*z^16 + 1556878050*x*y^12*z^17 + > 1037918700*x*y^11*z^18 + 600900300*x*y^10*z^19 + 300450150*x*y^9*z^20 > + 128764350*x*y^8*z^21 + 46823400*x*y^7*z^22 + 14250600*x*y^6*z^23 + > 3562650*x*y^5*z^24 + 712530*x*y^4*z^25 + 109620*x*y^3*z^26 + > 12180*x*y^2*z^27 + 870*x*y*z^28 + 30*x*z^29 + y^30 + 30*y^29*z + > 435*y^28*z^2 + 4060*y^27*z^3 + 27405*y^26*z^4 + 142506*y^25*z^5 + > 593775*y^24*z^6 + 2035800*y^23*z^7 + 5852925*y^22*z^8 + > 14307150*y^21*z^9 + 30045015*y^20*z^10 + 54627300*y^19*z^11 + > 86493225*y^18*z^12 + 119759850*y^17*z^13 + 145422675*y^16*z^14 + > 155117520*y^15*z^15 + 145422675*y^14*z^16 + 119759850*y^13*z^17 + > 86493225*y^12*z^18 + 54627300*y^11*z^19 + 30045015*y^10*z^20 + > 14307150*y^9*z^21 + 5852925*y^8*z^22 + 2035800*y^7*z^23 + > 593775*y^6*z^24 + 142506*y^5*z^25 + 27405*y^4*z^26 + 4060*y^3*z^27 + > 435*y^2*z^28 + 30*y*z^29 + z^30 + 2) > > > > > My usecase for factor() was to actually simplify the expressions, > which the above is not really useful to me. But there are probably > more cases too. >
Huh? I don't understand what is wrong with the above output? Isn't it the unique correct factorization? Or is your point that factorization of elements of R[x,y,z] doesn't solve the problem you are really interested in? -- William --~--~---------~--~----~------------~-------~--~----~ To post to this group, send an email to sage-devel@googlegroups.com To unsubscribe from this group, send an email to sage-devel-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---