Changeset 8d9aa75 in git for libpolys/coeffs/flintcf_Q.cc
- Timestamp:
- Apr 7, 2016, 3:34:19 PM (8 years ago)
- Branches:
- (u'fieker-DuVal', '117eb8c30fc9e991c4decca4832b1d19036c4c65')(u'spielwiese', '38dfc5131670d387a89455159ed1e071997eec94')
- Children:
- a7045fe97d43a7d2f8cfb9568d3d9866e37ad4ad
- Parents:
- da39e41dbe428e5ee861185b2afe386aae8f7a4d
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libpolys/coeffs/flintcf_Q.cc
rda39e4 r8d9aa75 490 490 return (number)res; 491 491 } 492 static void WriteFd(number a, FILE *f, const coeffs) 493 { 494 // format: len a_len(num den) .. a_0 495 fmpq_poly_ptr aa=(fmpq_poly_ptr)a; 496 int l=fmpq_poly_length(aa); 497 fprintf(f,"%d ",l); 498 mpq_t m; 499 mpq_init(m); 500 mpz_t num,den; 501 mpz_init(num); 502 mpz_init(den); 503 for(int i=l; i>=0; i--) 504 { 505 fmpq_poly_get_coeff_mpq(m,(fmpq_poly_ptr)a,i); 506 mpq_get_num(num,m); 507 mpq_get_den(den,m); 508 mpz_out_str (f,SSI_BASE, num); 509 fputc(' ',f); 510 mpz_out_str (f,SSI_BASE, den); 511 fputc(' ',f); 512 } 513 mpz_clear(den); 514 mpz_clear(num); 515 mpq_clear(m); 516 } 517 static number ReadFd(s_buff f, const coeffs) 518 { 519 // format: len a_len .. a_0 520 fmpq_poly_ptr aa=(fmpq_poly_ptr)omAlloc(sizeof(fmpq_poly_t)); 521 fmpq_poly_init(aa); 522 int l=s_readint(f); 523 mpz_t num,den; 524 mpq_t m; 525 mpq_init(m); 526 for (int i=l;i>=0;i--) 527 { 528 s_readmpz_base (f,num, SSI_BASE); 529 mpq_set_num(m,num); 530 mpz_clear(num); 531 s_readmpz_base (f,den, SSI_BASE); 532 mpq_set_den(m,den); 533 mpz_clear(den); 534 fmpq_poly_set_coeff_mpq(aa,i,m); 535 } 536 mpq_clear(m); 537 return (number)aa; 538 } 492 539 // cfClearContent 493 540 // cfClearDenominators 494 541 static number ConvFactoryNSingN( const CanonicalForm n, const coeffs r) 495 542 { 543 WerrorS("not yet: ConvFactoryNSingN"); 496 544 } 497 545 static CanonicalForm ConvSingNFactoryN( number n, BOOLEAN setChar, const coeffs r ) … … 572 620 cf->convFactoryNSingN=ConvFactoryNSingN; 573 621 cf->convSingNFactoryN=ConvSingNFactoryN; 622 cf->cfWriteFd = WriteFd; 623 cf->cfReadFd = ReadFd; 574 624 #ifdef LDEBUG 575 625 cf->cfDBTest = DBTest;
Note: See TracChangeset
for help on using the changeset viewer.