Changeset e6ca692 in git
- Timestamp:
- Mar 19, 2019, 2:37:29 PM (5 years ago)
- Branches:
- (u'fieker-DuVal', '117eb8c30fc9e991c4decca4832b1d19036c4c65')(u'spielwiese', 'b4f17ed1d25f93d46dbe29e4b499baecc2fd51bb')
- Children:
- b84addc1b850ec70a5ac4d6bc62069079b238504
- Parents:
- 7259b3d96c8cd7d99e58a2a74c07cf186222ba7f
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/extra.cc
r7259b3 re6ca692 3775 3775 // convert box-center(re,im), box-size, epsilon 3776 3776 fmpq_t center_re,center_im,boxsize,eps; 3777 convSingNFlintN(center_re,(number)h->Data() ); h=h->next;3778 convSingNFlintN(center_im,(number)h->Data() ); h=h->next;3779 convSingNFlintN(boxsize,(number)h->Data() ); h=h->next;3780 convSingNFlintN(eps,(number)h->Data() ); h=h->next;3777 convSingNFlintN(center_re,(number)h->Data(),currRing->cf); h=h->next; 3778 convSingNFlintN(center_im,(number)h->Data(),currRing->cf); h=h->next; 3779 convSingNFlintN(boxsize,(number)h->Data(),currRing->cf); h=h->next; 3780 convSingNFlintN(eps,(number)h->Data(),currRing->cf); h=h->next; 3781 3781 // alloc arrays 3782 3782 int n=fmpq_poly_length(f); … … 3800 3800 ll->m[1].rtyp=NUMBER_CMD; 3801 3801 ll->m[2].rtyp=INT_CMD; 3802 ll->m[0].data=convFlintNSingN(re_part[i] );3803 ll->m[1].data=convFlintNSingN(im_part[i] );3802 ll->m[0].data=convFlintNSingN(re_part[i],currRing->cf); 3803 ll->m[1].data=convFlintNSingN(im_part[i],currRing->cf); 3804 3804 ll->m[2].data=(char*)(long)mult[i]; 3805 3805 } -
libpolys/polys/flintconv.cc
r7259b3 re6ca692 53 53 return n; 54 54 } 55 number convFlintNSingN (fmpq_t f) 56 { 57 number z=ALLOC_RNUMBER(); 58 #if defined(LDEBUG) 59 z->debug=123456; 60 #endif 61 mpz_init(z->z); 62 mpz_init(z->n); 63 fmpq_get_mpz_frac(z->z,z->n,f); 64 nlNormalize(z,NULL); 55 number convFlintNSingN (fmpq_t f, const coeffs cf) 56 { 57 number z; 58 if (nCoeff_is_Q(cf)) 59 { 60 z=ALLOC_RNUMBER(); 61 #if defined(LDEBUG) 62 z->debug=123456; 63 #endif 64 mpz_init(z->z); 65 mpz_init(z->n); 66 fmpq_get_mpz_frac(z->z,z->n,f); 67 } 68 else 69 { 70 mpz_t a,b; 71 mpz_init(a); 72 mpz_init(b); 73 fmpq_get_mpz_frac(a,b,f); 74 number na=n_InitMPZ(a,cf); 75 number nb=n_InitMPZ(b,cf); 76 z=n_Div(na,nb,cf); 77 n_Delete(&na,cf); 78 n_Delete(&nb,cf); 79 } 80 n_Normalize(z,cf); 65 81 return z; 66 82 } … … 78 94 } 79 95 80 void convSingNFlintN(fmpq_t f, number n) 81 { 82 fmpq_init(f); 83 if (SR_HDL(n)&SR_INT) 84 fmpq_set_si(f,SR_TO_INT(n),1); 85 else if (n->s<3) 86 { 87 fmpz_set_mpz(fmpq_numref(f), n->z); 88 fmpz_set_mpz(fmpq_denref(f), n->n); 89 } 90 else 91 { 92 mpz_t one; 93 mpz_init_set_si(one,1); 94 fmpz_set_mpz(fmpq_numref(f), n->z); 95 fmpz_set_mpz(fmpq_denref(f), one); 96 mpz_clear(one); 96 void convSingNFlintN(fmpq_t f, number n, const coeffs cf) 97 { 98 if (nCoeff_is_Q(cf)) 99 { 100 fmpq_init(f); 101 if (SR_HDL(n)&SR_INT) 102 fmpq_set_si(f,SR_TO_INT(n),1); 103 else if (n->s<3) 104 { 105 fmpz_set_mpz(fmpq_numref(f), n->z); 106 fmpz_set_mpz(fmpq_denref(f), n->n); 107 } 108 else 109 { 110 mpz_t one; 111 mpz_init_set_si(one,1); 112 fmpz_set_mpz(fmpq_numref(f), n->z); 113 fmpz_set_mpz(fmpq_denref(f), one); 114 mpz_clear(one); 115 } 116 } 117 else 118 { 119 coeffs QQ=nInitChar(n_Q,NULL); 120 nMapFunc nMap=n_SetMap(cf,QQ); 121 if (nMap!=NULL) 122 { 123 number nn=nMap(n,cf,QQ); 124 convSingNFlintN(f,nn,QQ); 125 } 126 nKillChar(QQ); 97 127 } 98 128 } … … 107 137 number n=pGetCoeff(p); 108 138 fmpq_t c; 109 convSingNFlintN(c,n );139 convSingNFlintN(c,n,r->cf); 110 140 fmpq_poly_set_coeff_fmpq(res,p_GetExp(p,1,r),c); 111 141 fmpq_clear(c); … … 122 152 fmpq_t c; 123 153 fmpq_poly_get_coeff_fmpq(c,f,i); 124 number n=convFlintNSingN(c );154 number n=convFlintNSingN(c,r->cf); 125 155 poly pp=p_Init(r); 126 156 pSetCoeff0(pp,n); -
libpolys/polys/flintconv.h
r7259b3 re6ca692 43 43 void convSingNFlintN(fmpz_t f, mpz_t z); 44 44 void convSingNFlintN(fmpz_t f, number n); 45 void convSingNFlintN(fmpq_t f, number n );45 void convSingNFlintN(fmpq_t f, number n, const coeffs cf); 46 46 number convFlintNSingN (fmpz_t f); 47 number convFlintNSingN (fmpq_t f );47 number convFlintNSingN (fmpq_t f, const coeffs cf); 48 48 void convSingPFlintP(fmpq_poly_t res, poly p, const ring r); 49 49 poly convFlintPSingP(fmpq_poly_t f, const ring r);
Note: See TracChangeset
for help on using the changeset viewer.