Changeset 04deab in git
- Timestamp:
- Dec 8, 2009, 4:26:03 PM (13 years ago)
- Branches:
- (u'spielwiese', '0d6b7fcd9813a1ca1ed4220cfa2b104b97a0a003')
- Children:
- 208e0c58de5059b78464045b5eb87c2009cbdb1d
- Parents:
- 561aa20d93487cb95c506fc3281c4720f466070c
- Location:
- kernel
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/ring.cc
r561aa2 r04deab 551 551 mpz_clear(r->ringflaga); 552 552 omFree((ADDRESS)r->ringflaga); 553 } 554 if (r->nrnModul != NULL) 555 { 556 mpz_clear(r->nrnModul); 557 omFree((ADDRESS)r->nrnModul); 553 558 } 554 559 #endif -
kernel/rmodulo2m.cc
r561aa2 r04deab 23 23 24 24 int nr2mExp; 25 NATNUMBER nr2mModul;26 25 27 26 /* … … 133 132 { 134 133 long ii = i; 135 while (ii < 0) ii += nr2mModul;136 while ((ii>1) && (ii >= nr2mModul)) ii -= nr2mModul;134 while (ii < 0) ii += r->nr2mModul ; 135 while ((ii>1) && (ii >= r->nr2mModul )) ii -= r->nr2mModul ; 137 136 return (number) ii; 138 137 } … … 143 142 int nr2mInt(number &n, const ring r) 144 143 { 145 if ((NATNUMBER)n > ( nr2mModul >>1)) return (int)((NATNUMBER)n - nr2mModul);144 if ((NATNUMBER)n > (r->nr2mModul >>1)) return (int)((NATNUMBER)n - r->nr2mModul ); 146 145 else return (int)((NATNUMBER)n); 147 146 } … … 184 183 BOOLEAN nr2mIsMOne (number a) 185 184 { 186 return (nr2mModul == (NATNUMBER)a + 1) && (nr2mModul != 2); 185 return (currRing->nr2mModul == (NATNUMBER)a + 1) 186 && (currRing->nr2mModul != 2); 187 187 } 188 188 … … 200 200 { 201 201 if (a == NULL) 202 return ( nr2mModul% (NATNUMBER) b) == 0;202 return (currRing->nr2mModul % (NATNUMBER) b) == 0; 203 203 else 204 204 return ((NATNUMBER) a % (NATNUMBER) b) == 0; … … 244 244 BOOLEAN nr2mGreaterZero (number k) 245 245 { 246 return ((NATNUMBER) k !=0) && ((NATNUMBER) k <= ( nr2mModul>>1));246 return ((NATNUMBER) k !=0) && ((NATNUMBER) k <= (currRing->nr2mModul >>1)); 247 247 } 248 248 … … 304 304 long d, s, t; 305 305 306 XGCD(d, s, t, a, nr2mModul);306 XGCD(d, s, t, a, currRing->nr2mModul ); 307 307 assume (d == 1); 308 308 if (s < 0) 309 return s + nr2mModul;309 return s + currRing->nr2mModul ; 310 310 else 311 311 return s; … … 372 372 if (b_div < 0) b_div = - b_div; // b_div now represents |b| 373 373 NATNUMBER r = 0; 374 while ((g < nr2mModul) && (b_div > 0) && (b_div % 2 == 0))374 while ((g < currRing->nr2mModul ) && (b_div > 0) && (b_div % 2 == 0)) 375 375 { 376 376 b_div = b_div >> 1; … … 390 390 if ((NATNUMBER)b==1) 391 391 return (number) 0; 392 return (number) ( nr2mModul/ (NATNUMBER) b);392 return (number) (currRing->nr2mModul / (NATNUMBER) b); 393 393 } 394 394 else … … 418 418 number nr2mMapMachineInt(number from) 419 419 { 420 NATNUMBER i = ((NATNUMBER) from) % nr2mModul;420 NATNUMBER i = ((NATNUMBER) from) % currRing->nr2mModul ; 421 421 return (number) i; 422 422 } … … 425 425 { 426 426 long ii = (long) from; 427 while (ii < 0) ii += nr2mModul;428 while ((ii>1) && (ii >= nr2mModul)) ii -= nr2mModul;427 while (ii < 0) ii += currRing->nr2mModul ; 428 while ((ii>1) && (ii >= currRing->nr2mModul )) ii -= currRing->nr2mModul ; 429 429 return (number) ii; 430 430 } … … 436 436 437 437 nlGMP(from, (number) erg); 438 mpz_mod_ui(erg, erg, nr2mModul);438 mpz_mod_ui(erg, erg, currRing->nr2mModul ); 439 439 number r = (number) mpz_get_ui(erg); 440 440 … … 449 449 mpz_init(erg); 450 450 451 mpz_mod_ui(erg, (int_number) from, nr2mModul);451 mpz_mod_ui(erg, (int_number) from, currRing->nr2mModul ); 452 452 number r = (number) mpz_get_ui(erg); 453 453 … … 506 506 { 507 507 nr2mExp = m; 508 nr2mModul= 2;508 r->nr2mModul = 2; 509 509 for (int i = 1; i < m; i++) 510 510 { 511 nr2mModul = nr2mModul* 2;511 r->nr2mModul = r->nr2mModul * 2; 512 512 } 513 513 } … … 515 515 { 516 516 nr2mExp=2; 517 nr2mModul=4;517 r->nr2mModul =4; 518 518 } 519 519 } … … 528 528 BOOLEAN nr2mDBTest (number a, const char *f, const int l) 529 529 { 530 if (((NATNUMBER)a<0) || ((NATNUMBER)a> nr2mModul))530 if (((NATNUMBER)a<0) || ((NATNUMBER)a>currRing->nr2mModul )) 531 531 { 532 532 return FALSE; … … 538 538 void nr2mWrite (number &a) 539 539 { 540 if ((NATNUMBER)a > (nr2mModul >>1)) StringAppend("-%d",(int)(nr2mModul-((NATNUMBER)a))); 540 ring r=currRing; 541 if ((NATNUMBER)a > (r->nr2mModul >>1)) 542 StringAppend("-%d",(int)(r->nr2mModul -((NATNUMBER)a))); 541 543 else StringAppend("%d",(int)((NATNUMBER)a)); 542 544 } … … 552 554 (*i) *= 10; 553 555 (*i) += *s++ - '0'; 554 if ((*i) >= (MAX_INT_VAL / 10)) (*i) = (*i) % nr2mModul;556 if ((*i) >= (MAX_INT_VAL / 10)) (*i) = (*i) % currRing->nr2mModul ; 555 557 } 556 558 while (((*s) >= '0') && ((*s) <= '9')); 557 if ((*i) >= nr2mModul) (*i) = (*i) % nr2mModul;559 (*i) = (*i) % currRing->nr2mModul ; 558 560 } 559 561 else (*i) = 1; -
kernel/rmodulo2m.h
r561aa2 r04deab 52 52 { 53 53 return (number) 54 ((((NATNUMBER) a)*((NATNUMBER) b)) % ((NATNUMBER) nr2mModul));54 ((((NATNUMBER) a)*((NATNUMBER) b)) % ((NATNUMBER) currRing->nr2mModul)); 55 55 } 56 56 … … 58 58 { 59 59 NATNUMBER r = (NATNUMBER)a + (NATNUMBER)b; 60 return (number) (r >= nr2mModul ? r -nr2mModul : r);60 return (number) (r >= currRing->nr2mModul ? r - currRing->nr2mModul : r); 61 61 } 62 62 … … 64 64 { 65 65 return (number)((NATNUMBER)a<(NATNUMBER)b ? 66 nr2mModul-(NATNUMBER)b+(NATNUMBER)a : (NATNUMBER)a-(NATNUMBER)b);66 currRing->nr2mModul-(NATNUMBER)b+(NATNUMBER)a : (NATNUMBER)a-(NATNUMBER)b); 67 67 } 68 68 69 #define nr2mNegM(A) (number)( nr2mModul-(NATNUMBER)(A))69 #define nr2mNegM(A) (number)(currRing->nr2mModul-(NATNUMBER)(A)) 70 70 #define nr2mEqualM(A,B) ((A)==(B)) 71 71 -
kernel/structs.h
r561aa2 r04deab 630 630 #ifdef HAVE_RINGS 631 631 unsigned int ringtype; /* cring = 0 => coefficient field, cring = 1 => coeffs from Z/2^m */ 632 int_number ringflaga; /* Z/(ringf alga^ringflagb)=Z/nrnModul*/632 int_number ringflaga; /* Z/(ringflag^ringflagb)=Z/nrnModul*/ 633 633 unsigned long ringflagb; 634 unsigned long nr2mModul; /* Z/nr2mModul */ 634 635 int_number nrnModul; 635 636 #endif
Note: See TracChangeset
for help on using the changeset viewer.