#10902: missing terms in factorization of multivariate polynomials
-----------------------------------+----------------------------------------
   Reporter:  zimmerma             |          Owner:  malb      
       Type:  defect               |         Status:  new       
   Priority:  critical             |      Milestone:  sage-4.7.2
  Component:  commutative algebra  |       Keywords:            
Work_issues:                       |       Upstream:  N/A       
   Reviewer:                       |         Author:            
     Merged:                       |   Dependencies:            
-----------------------------------+----------------------------------------

Comment(by zimmerma):

 and an example over GF(5):
 {{{
 sage: R.<x,y> = GF(5)[]
 sage: p=x^27*y^9 + x^32*y^3 + 2*x^20*y^10 - x^4*y^24 - 2*x^17*y
 sage: q=-2*x^10*y^24 + x^9*y^24 - 2*x^3*y^30
 sage: f=p*q; f-f.factor(proof=False)
 -2*x^37*y^33 - 2*x^42*y^27 + x^36*y^33 - 2*x^30*y^39 + x^41*y^27 -
 2*x^35*y^33 + x^30*y^34 + 2*x^29*y^34 + x^23*y^40 + 2*x^14*y^48 -
 x^13*y^48 + 2*x^7*y^54 + 2*x^37*y^18 + 2*x^42*y^12 - x^36*y^18 +
 2*x^30*y^24 - x^41*y^12 + 2*x^35*y^18 - x^27*y^25 - 2*x^26*y^25 -
 x^20*y^31 - x^30*y^19 - 2*x^29*y^19 - x^23*y^25 - 2*x^14*y^33 + x^13*y^33
 - 2*x^7*y^39 + x^27*y^10 + 2*x^26*y^10 + x^20*y^16
 }}}
 and one over GF(7):
 {{{
 sage: R.<x,y> = GF(7)[]
 sage: p=-3*x^47*y^24
 sage: q=-3*x^47*y^37 - 3*x^24*y^49 + 2*x^56*y^8 + 3*x^29*y^15 - x^2*y^33
 sage: f=p*q
 sage: f-f.factor(proof=False)
 2*x^94*y^61 + 2*x^71*y^73 + x^103*y^32 - 2*x^59*y^61 - 2*x^76*y^39 -
 2*x^36*y^73 + 3*x^49*y^57 - x^68*y^32 + 2*x^41*y^39 - 3*x^14*y^57
 }}}
 Examples can be constructed at will with the following code (change GF(7)
 by whatever you want):
 {{{
 R.<x,y> = GF(7)[]
 nterms=2
 for d in range(1,10^6):
    print d
    sys.stdout.flush()
    p = R.random_element(degree=d,terms=nterms)
    while p.degree()<=0:
       p = R.random_element(degree=d,terms=nterms)
    q = R.random_element(degree=d,terms=nterms)
    while q.degree()<=0:
       q = R.random_element(degree=d,terms=nterms)
    f = p*q
    lp = p.factor(proof=False)
    lq = q.factor(proof=False)
    lf = f.factor(proof=False)
    if lp*lq <> lf:
       print p, q
       raise ValueError
 }}}

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/10902#comment:9>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" 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/sage-trac?hl=en.

Reply via email to