#12173: Update FLINT to 2.3
---------------------------------------------------------------------+------
       Reporter:  mhansen                                            |         
Owner:  tbd         
           Type:  enhancement                                        |        
Status:  needs_work  
       Priority:  major                                              |     
Milestone:  sage-5.8    
      Component:  packages                                           |    
Resolution:              
       Keywords:  flint spkg                                         |   Work 
issues:  OS X        
Report Upstream:  N/A                                                |     
Reviewers:  John Cremona
        Authors:  Mike Hansen, Fredrik Johansson, Jean-Pierre Flori  |     
Merged in:              
   Dependencies:  #12433                                             |      
Stopgaps:              
---------------------------------------------------------------------+------

Comment (by jpflori):

 Using a reentrant version did not solve the problem...
 Replying to [comment:190 fredrik.johansson]:
 > I was wondering what would show if you print them with printf("%ld",
 poly[i])
 I modified FLINT as follow:
 * in fmpz_poly.h:
 {{{
 static __inline__
 int fmpz_poly_print(const fmpz_poly_t poly)
 {
   int i = 0;
         for (; i < fmpz_poly_length(poly); i++)
         {
             printf("exp: %d ", i);
             printf("MPZ: %d ", (COEFF_IS_MPZ(*(poly->coeffs+i)))?1:0);
             printf("addr: %lX ", (unsigned long) poly->coeffs+i);
             printf("val: %ld ", *(poly->coeffs+i));
             printf("val: %lX ", *(poly->coeffs+i));
             printf("fmpz: ");
             fmpz_print(poly->coeffs+i);
             printf(" !! ");
         }
         printf("\n");
     return fmpz_poly_fprint(stdout, poly);
 }
 }}}
 * in fmpq_poly/set_fmpz_poly.c:
 {{{
 void fmpq_poly_set_fmpz_poly(fmpq_poly_t rop, const fmpz_poly_t op)
 {
     if (fmpz_poly_is_zero(op))
     {
         fmpq_poly_zero(rop);
     }
     else
     {
         int i = 0;
         fmpz_poly_print(op);
         printf("\n");
         fmpq_poly_fit_length(rop, fmpz_poly_length(op));
         fmpz_poly_print(op);
         printf("\n");
         _fmpq_poly_set_length(rop, fmpz_poly_length(op));
         printf("length = %ld\n", fmpz_poly_length(op));
         printf("id = %lX\n", (unsigned long)op);
         fmpz_poly_print(op);
         printf("\n");
         for (; i < fmpz_poly_length(op); i++)
         {
             printf("exp: %d ", i);
             printf("MPZ: %d ", (COEFF_IS_MPZ(*(op->coeffs+i)))?1:0);
             printf("addr: %lX ", (unsigned long) op->coeffs+i);
             printf("val: %ld ", *(op->coeffs+i));
             printf("val: %lX ", *(op->coeffs+i));
             printf("fmpz: ");
             fmpz_print(op->coeffs+i);
             printf(" !! ");
         }
         printf("\n");
         _fmpz_vec_set(rop->coeffs, op->coeffs, rop->length);
         fmpz_one(rop->den);
     }
 }
 }}}

 In Sage:
 * in polynomial_integer_dense_flint.pyx:
 {{{
     def jprint(self):
         fmpz_poly_print(self.__poly)
 }}}
 * in polynomial_rational_flint.pyx
 {{{
         elif PY_TYPE_CHECK(x, Polynomial_integer_dense_flint):
             print hex(<long>((<Polynomial_integer_dense_flint>x).__poly))
             printf("%X\n",(<Polynomial_integer_dense_flint>x).__poly)
             print x
             x.jprint()
             print ""
             (<Polynomial_integer_dense_flint>x).jprint()
             print ""
             fmpq_poly_set_fmpz_poly(self.__poly,
 (<Polynomial_integer_dense_flint>x).__poly)
 }}}

 Here is some data after modifying Sage and FLINT:
 {{{
 sage: a = 2**61
 sage: b = 2**62
 sage: c = 2**63
 sage: R.<x> = ZZ[]
 sage: f = R([1,2,3,a,b,c,3,2,1])
 sage: f.change_ring(QQ)
 0x1152447d0
 152447D0
 x^8 + 2*x^7 + 3*x^6 + 9223372036854775808*x^5 + 4611686018427387904*x^4 +
 2305843009213693952*x^3 + 3*x^2 + 2*x + 1
 exp: 0 MPZ: 0 addr: 7FE1D1919410 val: 1 val: 1 fmpz: 1 !! exp: 1 MPZ: 0
 addr: 7FE1D1919411 val: 2 val: 2 fmpz: 2 !! exp: 2 MPZ: 0 addr:
 7FE1D1919412 val: 3 val: 3 fmpz: 3 !! exp: 3 MPZ: 0 addr: 7FE1D1919413
 val: 2305843009213693952 val: 2000000000000000 fmpz: 2305843009213693952
 !! exp: 4 MPZ: 1 addr: 7FE1D1919414 val: 4611686018427387966 val:
 400000000000003E fmpz: 4611686018427387904 !! exp: 5 MPZ: 1 addr:
 7FE1D1919415 val: 4611686018427387965 val: 400000000000003D fmpz:
 9223372036854775808 !! exp: 6 MPZ: 0 addr: 7FE1D1919416 val: 3 val: 3
 fmpz: 3 !! exp: 7 MPZ: 0 addr: 7FE1D1919417 val: 2 val: 2 fmpz: 2 !! exp:
 8 MPZ: 0 addr: 7FE1D1919418 val: 1 val: 1 fmpz: 1 !!
 9  1 2 3 2305843009213693952 4611686018427387904 9223372036854775808 3 2 1
 exp: 0 MPZ: 0 addr: 7FE1D1919410 val: 1 val: 1 fmpz: 1 !! exp: 1 MPZ: 0
 addr: 7FE1D1919411 val: 2 val: 2 fmpz: 2 !! exp: 2 MPZ: 0 addr:
 7FE1D1919412 val: 3 val: 3 fmpz: 3 !! exp: 3 MPZ: 0 addr: 7FE1D1919413
 val: 2305843009213693952 val: 2000000000000000 fmpz: 2305843009213693952
 !! exp: 4 MPZ: 1 addr: 7FE1D1919414 val: 4611686018427387966 val:
 400000000000003E fmpz: 4611686018427387904 !! exp: 5 MPZ: 1 addr:
 7FE1D1919415 val: 4611686018427387965 val: 400000000000003D fmpz:
 9223372036854775808 !! exp: 6 MPZ: 0 addr: 7FE1D1919416 val: 3 val: 3
 fmpz: 3 !! exp: 7 MPZ: 0 addr: 7FE1D1919417 val: 2 val: 2 fmpz: 2 !! exp:
 8 MPZ: 0 addr: 7FE1D1919418 val: 1 val: 1 fmpz: 1 !!
 9  1 2 3 2305843009213693952 4611686018427387904 9223372036854775808 3 2 1
 exp: 0 MPZ: 0 addr: 7FE1D1919410 val: 1 val: 1 fmpz: 1 !! exp: 1 MPZ: 0
 addr: 7FE1D1919411 val: 2 val: 2 fmpz: 2 !! exp: 2 MPZ: 0 addr:
 7FE1D1919412 val: 3 val: 3 fmpz: 3 !! exp: 3 MPZ: 0 addr: 7FE1D1919413
 val: 2305843009213693952 val: 2000000000000000 fmpz: 2305843009213693952
 !! exp: 4 MPZ: 1 addr: 7FE1D1919414 val: 4611686018427387966 val:
 400000000000003E fmpz: 0 !! exp: 5 MPZ: 1 addr: 7FE1D1919415 val:
 4611686018427387965 val: 400000000000003D fmpz: 0 !! exp: 6 MPZ: 0 addr:
 7FE1D1919416 val: 3 val: 3 fmpz: 3 !! exp: 7 MPZ: 0 addr: 7FE1D1919417
 val: 2 val: 2 fmpz: 2 !! exp: 8 MPZ: 0 addr: 7FE1D1919418 val: 1 val: 1
 fmpz: 1 !!
 9  1 2 3 2305843009213693952 0 0 3 2 1
 exp: 0 MPZ: 0 addr: 7FE1D1919410 val: 1 val: 1 fmpz: 1 !! exp: 1 MPZ: 0
 addr: 7FE1D1919411 val: 2 val: 2 fmpz: 2 !! exp: 2 MPZ: 0 addr:
 7FE1D1919412 val: 3 val: 3 fmpz: 3 !! exp: 3 MPZ: 0 addr: 7FE1D1919413
 val: 2305843009213693952 val: 2000000000000000 fmpz: 2305843009213693952
 !! exp: 4 MPZ: 1 addr: 7FE1D1919414 val: 4611686018427387966 val:
 400000000000003E fmpz: 0 !! exp: 5 MPZ: 1 addr: 7FE1D1919415 val:
 4611686018427387965 val: 400000000000003D fmpz: 0 !! exp: 6 MPZ: 0 addr:
 7FE1D1919416 val: 3 val: 3 fmpz: 3 !! exp: 7 MPZ: 0 addr: 7FE1D1919417
 val: 2 val: 2 fmpz: 2 !! exp: 8 MPZ: 0 addr: 7FE1D1919418 val: 1 val: 1
 fmpz: 1 !!
 9  1 2 3 2305843009213693952 0 0 3 2 1
 length = 9
 id = 1152447D0
 exp: 0 MPZ: 0 addr: 7FE1D1919410 val: 1 val: 1 fmpz: 1 !! exp: 1 MPZ: 0
 addr: 7FE1D1919411 val: 2 val: 2 fmpz: 2 !! exp: 2 MPZ: 0 addr:
 7FE1D1919412 val: 3 val: 3 fmpz: 3 !! exp: 3 MPZ: 0 addr: 7FE1D1919413
 val: 2305843009213693952 val: 2000000000000000 fmpz: 2305843009213693952
 !! exp: 4 MPZ: 1 addr: 7FE1D1919414 val: 4611686018427387966 val:
 400000000000003E fmpz: 0 !! exp: 5 MPZ: 1 addr: 7FE1D1919415 val:
 4611686018427387965 val: 400000000000003D fmpz: 0 !! exp: 6 MPZ: 0 addr:
 7FE1D1919416 val: 3 val: 3 fmpz: 3 !! exp: 7 MPZ: 0 addr: 7FE1D1919417
 val: 2 val: 2 fmpz: 2 !! exp: 8 MPZ: 0 addr: 7FE1D1919418 val: 1 val: 1
 fmpz: 1 !!
 9  1 2 3 2305843009213693952 0 0 3 2 1
 exp: 0 MPZ: 0 addr: 7FE1D1919410 val: 1 val: 1 fmpz: 1 !! exp: 1 MPZ: 0
 addr: 7FE1D1919411 val: 2 val: 2 fmpz: 2 !! exp: 2 MPZ: 0 addr:
 7FE1D1919412 val: 3 val: 3 fmpz: 3 !! exp: 3 MPZ: 0 addr: 7FE1D1919413
 val: 2305843009213693952 val: 2000000000000000 fmpz: 2305843009213693952
 !! exp: 4 MPZ: 1 addr: 7FE1D1919414 val: 4611686018427387966 val:
 400000000000003E fmpz: 0 !! exp: 5 MPZ: 1 addr: 7FE1D1919415 val:
 4611686018427387965 val: 400000000000003D fmpz: 0 !! exp: 6 MPZ: 0 addr:
 7FE1D1919416 val: 3 val: 3 fmpz: 3 !! exp: 7 MPZ: 0 addr: 7FE1D1919417
 val: 2 val: 2 fmpz: 2 !! exp: 8 MPZ: 0 addr: 7FE1D1919418 val: 1 val: 1
 fmpz: 1 !!
 x^8 + 2*x^7 + 3*x^6 + 2305843009213693952*x^3 + 3*x^2 + 2*x + 1
 }}}

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/12173#comment:191>
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