Changeset 55b50e3 in git
- Timestamp:
- Jul 4, 2023, 2:13:01 PM (10 months ago)
- Branches:
- (u'spielwiese', '2a584933abf2a2d3082034c7586d38bb6de1a30a')
- Children:
- 730cc2e27f306f1a435c9b86665d4524e499c7dc
- Parents:
- a5baaafa806b1e45b64b75e5a0013a7ba9c2b01d
- git-author:
- Marc Mezzarobba <marc@mezzarobba.net>2023-07-04 14:13:01+02:00
- git-committer:
- GitHub <noreply@github.com>2023-07-04 14:13:01+02:00
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
factory/FLINTconvert.cc
ra5baaa r55b50e3 54 54 #include <flint/nmod_mat.h> 55 55 #include <flint/fmpz_mat.h> 56 #include <flint/fmpz_mod.h> 56 57 #if ( __FLINT_RELEASE >= 20400) 57 58 #include <flint/fq.h> -
factory/cf_factor.cc
ra5baaa r55b50e3 48 48 #include <flint/fmpq_mpoly_factor.h> 49 49 #include <flint/fq_nmod_mpoly_factor.h> 50 #include <flint/nmod_poly_factor.h> 51 #include <flint/fmpz_poly_factor.h> 52 #include <flint/fmpz_mpoly_factor.h> 53 #include <flint/fq_nmod_poly_factor.h> 50 54 #endif 51 55 #endif -
factory/cf_map_ext.cc
ra5baaa r55b50e3 31 31 #ifdef HAVE_FLINT 32 32 #include "FLINTconvert.h" 33 #include <flint/fq_nmod_poly_factor.h> 33 34 #endif 34 35 -
factory/cf_roots.cc
ra5baaa r55b50e3 19 19 #ifdef HAVE_FLINT 20 20 #include "FLINTconvert.h" 21 #include "flint/nmod_poly_factor.h" 21 22 #endif 22 23 -
factory/facAbsBiFact.cc
ra5baaa r55b50e3 24 24 #ifdef HAVE_FLINT 25 25 #include "FLINTconvert.h" 26 #include "flint/nmod_poly_factor.h" 26 27 #include <flint/fmpz_poly_factor.h> 27 28 #endif -
factory/facFqBivar.cc
ra5baaa r55b50e3 44 44 #ifdef HAVE_FLINT 45 45 #include "FLINTconvert.h" 46 #include "flint/nmod_poly_factor.h" 47 #include "flint/fq_nmod_poly_factor.h" 46 48 #endif 47 49 -
factory/facMul.cc
ra5baaa r55b50e3 38 38 #ifdef HAVE_FLINT 39 39 #include "FLINTconvert.h" 40 #include "flint/fq_nmod_vec.h" 41 #include "flint/fmpz_mod.h" 40 42 #endif 41 43 -
libpolys/coeffs/flintcf_Q.cc
ra5baaa r55b50e3 12 12 13 13 #include <flint/flint.h> 14 #include <flint/fmpz.h> 15 #include <flint/fmpq.h> 14 16 #include <flint/fmpq_poly.h> 15 17 #include "factory/factory.h" … … 127 129 fmpq_poly_ptr res=(fmpq_poly_ptr)omAlloc(sizeof(fmpq_poly_t)); 128 130 fmpq_poly_init(res); 129 fmpq_poly_set_mpz(res,i); 131 fmpq_poly_fit_length(res, 1); 132 fmpz_set_mpz(res->coeffs, i); 133 fmpz_one(res->den); 134 _fmpq_poly_set_length(res, 1); 135 _fmpq_poly_normalise(res); 130 136 return (number)res; 131 137 } … … 138 144 if (fmpq_poly_degree((fmpq_poly_ptr)n)==0) 139 145 { 140 mpq_t m; 141 mpq_init(m); 142 fmpq_poly_get_coeff_mpq(m,(fmpq_poly_ptr)n,0); 143 mpz_t num,den; 144 mpz_init(num); 145 mpz_init(den); 146 mpq_get_num(num,m); 147 mpq_get_den(den,m); 148 long nl=mpz_get_si(num); 149 if (mpz_cmp_si(num,nl)!=0) nl=0; 150 long dl=mpz_get_si(den); 151 if ((dl!=1)||(mpz_cmp_si(den,dl)!=0)) nl=0; 152 mpz_clear(num); 153 mpz_clear(den); 154 mpq_clear(m); 146 fmpq_t m; 147 fmpq_init(m); 148 fmpq_poly_get_coeff_fmpq(m,(fmpq_poly_ptr)n,0); 149 long nl=fmpz_get_si(fmpq_numref(m)); 150 if (fmpz_cmp_si(fmpq_numref(m),nl)!=0) nl=0; 151 long dl=fmpz_get_si(fmpq_denref(m)); 152 if ((dl!=1)||(fmpz_cmp_si(fmpq_denref(m),dl)!=0)) nl=0; 153 fmpq_clear(m); 155 154 return nl; 156 155 } … … 162 161 if (fmpq_poly_degree((fmpq_poly_ptr)n)==0) 163 162 { 164 mpq_t m;165 mpq_init(m);166 fmpq_poly_get_coeff_ mpq(m,(fmpq_poly_ptr)n,0);163 fmpq_t m; 164 fmpq_init(m); 165 fmpq_poly_get_coeff_fmpq(m,(fmpq_poly_ptr)n,0); 167 166 mpz_t den; 168 167 mpz_init(den); 169 mpq_get_num(result,m); 170 mpq_get_den(den,m); 168 fmpq_get_mpz_frac(result,den,m); 171 169 int dl=(int)mpz_get_si(den); 172 170 if ((dl!=1)||(mpz_cmp_si(den,(long)dl)!=0)) mpz_set_ui(result,0); 173 171 mpz_clear(den); 174 mpq_clear(m);172 fmpq_clear(m); 175 173 } 176 174 } … … 226 224 { 227 225 StringAppendS("("); 228 mpq_t m; 229 mpq_init(m); 230 mpz_t num,den; 231 mpz_init(num); 232 mpz_init(den); 226 fmpq_t m; 227 fmpq_init(m); 233 228 BOOLEAN need_plus=FALSE; 234 229 for(int i=fmpq_poly_length((fmpq_poly_ptr)a);i>=0;i--) 235 230 { 236 fmpq_poly_get_coeff_mpq(m,(fmpq_poly_ptr)a,i); 237 mpq_get_num(num,m); 238 mpq_get_den(den,m); 239 if (mpz_sgn1(num)!=0) 231 fmpq_poly_get_coeff_fmpq(m,(fmpq_poly_ptr)a,i); 232 if (!fmpq_is_zero(m)) 240 233 { 241 if (need_plus && ( mpz_sgn1(num)>0))234 if (need_plus && (fmpq_cmp_ui(m,0)>0)) 242 235 StringAppendS("+"); 243 236 need_plus=TRUE; 244 int l= mpz_sizeinbase(num,10);245 l=si_max(l,(int) mpz_sizeinbase(den,10));237 int l=fmpz_sizeinbase(fmpq_numref(m),10); 238 l=si_max(l,(int)fmpz_sizeinbase(fmpq_denref(m),10)); 246 239 l+=2; 247 240 char *s=(char*)omAlloc(l); 248 char *z= mpz_get_str(s,10,num);241 char *z=fmpz_get_str(s,10,fmpq_numref(m)); 249 242 if ((i==0) 250 ||( mpz_cmp_si(num,1)!=0)251 ||( mpz_cmp_si(den,1)!=0))243 ||(fmpz_cmp_si(fmpq_numref(m),1)!=0) 244 ||(fmpz_cmp_si(fmpq_denref(m),1)!=0)) 252 245 { 253 246 StringAppendS(z); 254 if ( mpz_cmp_si(den,1)!=0)247 if (fmpz_cmp_si(fmpq_denref(m),1)!=0) 255 248 { 256 249 StringAppendS("/"); 257 z= mpz_get_str(s,10,den);250 z=fmpz_get_str(s,10,fmpq_denref(m)); 258 251 StringAppendS(z); 259 252 } … … 266 259 } 267 260 } 268 mpz_clear(den); 269 mpz_clear(num); 270 mpq_clear(m); 261 fmpq_clear(m); 271 262 StringAppendS(")"); 272 263 } … … 285 276 mpz_t z; 286 277 mpz_init(z); 278 fmpz_t z1; 279 fmpz_init(z1); 287 280 s=nlEatLong((char *)s, z); 288 fmpq_poly_set_mpz((fmpq_poly_ptr)(*a),z); 281 fmpz_set_mpz(z1,z); 282 fmpq_poly_set_fmpz((fmpq_poly_ptr)(*a),z1); 289 283 if (*s == '/') 290 284 { 291 285 s++; 292 286 s=nlEatLong((char *)s, z); 293 fmpq_poly_scalar_div_mpz((fmpq_poly_ptr)(*a),(fmpq_poly_ptr)(*a),z); 287 fmpz_set_mpz(z1,z); 288 fmpq_poly_scalar_div_fmpz((fmpq_poly_ptr)(*a),(fmpq_poly_ptr)(*a),z1); 294 289 } 290 fmpz_clear(z1); 295 291 mpz_clear(z); 296 292 } … … 338 334 if (fmpq_poly_length((fmpq_poly_ptr)k)>0) return FALSE; 339 335 fmpq_poly_canonicalise((fmpq_poly_ptr)k); 340 mpq_t m; 341 mpq_init(m); 342 fmpq_poly_get_coeff_mpq(m,(fmpq_poly_ptr)k,0); 343 mpz_t num,den; 344 mpz_init(num); 345 mpq_get_num(num,m); 336 fmpq_t m; 337 fmpq_init(m); 338 fmpq_poly_get_coeff_fmpq(m,(fmpq_poly_ptr)k,0); 346 339 BOOLEAN result=TRUE; 347 if ( mpz_cmp_si(num,(long)-1)!=0) result=FALSE;340 if (fmpz_cmp_si(fmpq_numref(m),(long)-1)!=0) result=FALSE; 348 341 else 349 342 { 350 mpz_init(den); 351 mpq_get_den(den,m); 352 int dl=(int)mpz_get_si(den); 353 if ((dl!=1)||(mpz_cmp_si(den,(long)dl)!=0)) result=FALSE; 354 mpz_clear(den); 355 } 356 mpz_clear(num); 357 mpq_clear(m); 343 int dl=(int)fmpz_get_si(fmpq_denref(m)); 344 if ((dl!=1)||(fmpz_cmp_si(fmpq_denref(m),(long)dl)!=0)) result=FALSE; 345 } 346 fmpq_clear(m); 358 347 return (result); 359 348 } … … 470 459 int l=fmpq_poly_length(aa); 471 460 fprintf(d->f_write,"%d ",l); 472 mpq_t m;473 mpq_init(m);461 fmpq_t m; 462 fmpq_init(m); 474 463 mpz_t num,den; 475 464 mpz_init(num); … … 477 466 for(int i=l; i>=0; i--) 478 467 { 479 fmpq_poly_get_coeff_mpq(m,(fmpq_poly_ptr)a,i); 480 mpq_get_num(num,m); 481 mpq_get_den(den,m); 468 fmpq_poly_get_coeff_fmpq(m,(fmpq_poly_ptr)a,i); 469 fmpq_get_mpz_frac(num,den,m); 482 470 mpz_out_str (d->f_write,SSI_BASE, num); 483 471 fputc(' ',d->f_write); … … 487 475 mpz_clear(den); 488 476 mpz_clear(num); 489 mpq_clear(m);477 fmpq_clear(m); 490 478 } 491 479 static number ReadFd(const ssiInfo *d, const coeffs) … … 495 483 fmpq_poly_init(aa); 496 484 int l=s_readint(d->f_read); 497 mpz_t nm; 498 mpz_init(nm); 499 mpq_t m; 500 mpq_init(m); 485 mpz_t tmp; 486 mpz_init(tmp); 487 fmpq_t m; 488 fmpq_init(m); 489 fmpz_t num,den; 490 fmpz_init(num); 491 fmpz_init(den); 501 492 for (int i=l;i>=0;i--) 502 493 { 503 504 s_readmpz_base (d->f_read,nm, SSI_BASE); 505 mpq_set_num(m,nm); 506 s_readmpz_base (d->f_read,nm, SSI_BASE); 507 mpq_set_den(m,nm); 508 fmpq_poly_set_coeff_mpq(aa,i,m); 509 } 510 mpz_clear(nm); 511 mpq_clear(m); 494 s_readmpz_base (d->f_read,tmp, SSI_BASE); 495 fmpz_set_mpz(num, tmp); 496 s_readmpz_base (d->f_read,tmp, SSI_BASE); 497 fmpz_set_mpz(den, tmp); 498 fmpq_set_fmpz_frac(m,num,den); 499 fmpq_poly_set_coeff_fmpq(aa,i,m); 500 } 501 mpz_clear(tmp); 502 fmpz_clear(den); 503 fmpz_clear(num); 504 fmpq_clear(m); 512 505 return (number)aa; 513 506 } -
libpolys/polys/flint_mpoly.h
ra5baaa r55b50e3 17 17 #include <flint/fmpq_poly.h> 18 18 #include <flint/fmpq_mpoly.h> 19 #include <flint/nmod_mpoly.h> 19 20 20 21 BOOLEAN convSingRFlintR(fmpq_mpoly_ctx_t ctx, const ring r); -
libpolys/polys/flintconv.h
ra5baaa r55b50e3 43 43 #include <flint/fq_nmod_poly.h> 44 44 #include <flint/fq_nmod_mat.h> 45 #include <flint/nmod_poly.h> 46 #include <flint/nmod_mat.h> 47 #include <flint/fmpz_mat.h> 45 48 #endif 46 49
Note: See TracChangeset
for help on using the changeset viewer.