#12561: Factoring padic polynomials
---------------------------------------------------+------------------------
       Reporter:  bsinclai                         |         Owner:  roed    
           Type:  enhancement                      |        Status:  new     
       Priority:  major                            |     Milestone:  sage-5.8
      Component:  padics                           |    Resolution:          
       Keywords:                                   |   Work issues:          
Report Upstream:  N/A                              |     Reviewers:          
        Authors:  Brian Sinclair, Sebastian Pauli  |     Merged in:          
   Dependencies:                                   |      Stopgaps:          
---------------------------------------------------+------------------------

Comment (by roed):

 Replying to [comment:3 spice]:
 > Patch applies correctly on 7.5 and all doctests written so far pass.
 However:
 >
 > In the doctest fromĀ `pfactortree()`:
 > {{{
 > sage: from sage.rings.polynomial.padics.factor.factoring import
 jorder4,pfactortree
 > sage: f = ZpFM(2,24,'terse')['x']( (x^32+16)*(x^32+16+2^16*x^2)+2^34 )
 > sage: pfactortree(f) # long (3.8s)
 > [(1 + O(2^24))*x^64 + (65536 + O(2^24))*x^34 + (32 + O(2^24))*x^32 +
 (1048576 + O(2^24))*x^2 + (256 + O(2^24))]
 > }}}
 > This is just returning the polynomial unfactored, so demonstrably the
 factoring isn't working here. We should get:
 > {{{
 > sage: f = ZpFM(2,24,'terse')['x']( (x^32+16)*(x^32+16+2^16*x^2)+2^34 )
 > sage: f.factor()
 > ((1 + O(2^24))*x^32 + (65536 + O(2^24))*x^2 + (16 + O(2^24))) * ((1 +
 O(2^24))*x^32 + (16 + O(2^24)))
 > }}}
 > Also, we should rework this code so that a sage Factorization object is
 returned, and that pfactortree is called by the `.factor()` method
 attached to p-adic polynomials.

 Note that increasing the precision yields a factorization:

 {{{
 sage: f = ZpFM(2,44,'terse')['x']( (x^32+16)*(x^32+16+2^16*x^2) + 2^34)
 sage: pfactortree(f)
 [(1 + O(2^44))*x^32 + (7242791239680 + O(2^44))*x^30 + (13194407968768 +
 O(2^44))*x^28 + (7902202888192 + O(2^44))*x^26 + (2147483648 +
 O(2^44))*x^24 + (442381107200 + O(2^44))*x^22 + (21474836480 +
 O(2^44))*x^20 + (6193337597952 + O(2^44))*x^18 + (240518168576 +
 O(2^44))*x^16 + (2405122965504 + O(2^44))*x^14 + (2886218022912 +
 O(2^44))*x^12 + (16766847680512 + O(2^44))*x^10 + (1099511627776 +
 O(2^44))*x^8 + (2190164885504 + O(2^44))*x^6 + (14293651161088 +
 O(2^44))*x^4 + (14178492350464 + O(2^44))*x^2 + (8796093022224 + O(2^44)),
  (1 + O(2^44))*x^32 + (10349394804736 + O(2^44))*x^30 + (8796093022208 +
 O(2^44))*x^28 + (5291936645120 + O(2^44))*x^26 + (17149804937216 +
 O(2^44))*x^22 + (11398848446464 + O(2^44))*x^18 + (15187063078912 +
 O(2^44))*x^14 + (825338363904 + O(2^44))*x^10 + (15402021158912 +
 O(2^44))*x^6 + (3413693759488 + O(2^44))*x^2 + (8797166764048 + O(2^44))]
 }}}

 In the case Simon pointed out, adding `2^34` doesn't do anything since the
 precision cap of the base ring is 24, so we have an actual example of a
 reducible polynomial being claimed to be irreducible.

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/12561#comment:4>
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 unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to