Changeset 9118cc in git for libpolys/coeffs/ffields.cc
- Timestamp:
- Mar 20, 2018, 2:54:30 PM (6 years ago)
- Branches:
- (u'spielwiese', '8e0ad00ce244dfd0756200662572aef8402f13d5')
- Children:
- 65fb130c82c5b41756b646064fa062c3f6d16bf2
- Parents:
- 3e8b644fceec8f73a275e8539c415a775f4aa015
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libpolys/coeffs/ffields.cc
r3e8b64 r9118cc 10 10 #include "misc/mylimits.h" 11 11 #include "misc/sirandom.h" 12 #include "misc/prime.h" 12 13 13 14 #include "reporter/reporter.h" … … 237 238 * number -> int 238 239 */ 239 static long nfInt (number &n, const coeffs ) 240 { 241 return (long)n; 240 static long nfInt (number &n, const coeffs r ) 241 { 242 unsigned short c=0; 243 unsigned short nn=(unsigned short)(long)n; 244 if (nn==r->m_nfCharQ) return 0; 245 long i=1; /* 1==a^0 */ 246 while ((c!=nn)&&(i<r->m_nfCharQ)) 247 { 248 c=r->m_nfPlus1Table[c]; 249 i++; 250 } 251 if (c==nn) return i; 252 else return 0; 242 253 } 243 254 … … 403 414 else 404 415 { 405 StringAppendS(n_ParameterNames(r)[0]); 406 if ((long)a!=1L) 407 { 408 StringAppend("^%d",(int)((long)a)); // long output! 416 int i=1; /* 1==a^0 */ 417 unsigned short c=0; 418 unsigned short nn=(unsigned short)(long)a; 419 while ((c!=nn)&&(i<r->m_nfCharQ)) 420 { 421 c=r->m_nfPlus1Table[c]; 422 i++; 423 } 424 if (c==nn) StringAppend("%d",i); 425 else 426 { 427 StringAppendS(n_ParameterNames(r)[0]); 428 if ((long)a!=1L) 429 { 430 StringAppend("^%d",(int)((long)a)); // long output! 431 } 409 432 } 410 433 } … … 425 448 else 426 449 { 427 StringAppendS(n_ParameterNames(r)[0]); 428 if ((long)a!=1L) 429 { 430 StringAppend("%d",(int)((long)a)); 450 int i=1; /* 1==a^0 */ 451 unsigned short c=0; 452 unsigned short nn=(unsigned short)(long)a; 453 while ((c!=nn)&&(i<r->m_nfCharQ)) 454 { 455 c=r->m_nfPlus1Table[c]; 456 i++; 457 } 458 if (c==nn) StringAppend("%d",i); 459 else 460 { 461 StringAppendS(n_ParameterNames(r)[0]); 462 if ((long)a!=1L) 463 { 464 StringAppend("%d",(int)((long)a)); 465 } 431 466 } 432 467 } … … 571 606 { 572 607 //Print("GF(%d)\n",c); 573 if ((c==r->m_nfCharQ)||(c== -r->m_nfCharQ))608 if ((c==r->m_nfCharQ)||(c== -r->m_nfCharQ)) 574 609 /*this field is already set*/ return; 575 610 int i=0; 576 611 577 while ((fftable[i]!=c) && (fftable[i]!=0)) 578 i++; 579 580 if (fftable[i]==0) 581 { 582 // illegal GF-table size: c 583 return; 612 if ((c>255) ||(c!=IsPrime(c))) 613 { 614 while ((fftable[i]!=c) && (fftable[i]!=0)) 615 i++; 616 617 if (fftable[i]==0) 618 { 619 // illegal GF-table size: c 620 return; 621 } 584 622 } 585 623
Note: See TracChangeset
for help on using the changeset viewer.