Changeset 601105 in git for libpolys/coeffs/modulop.cc
- Timestamp:
- Nov 19, 2013, 6:39:47 PM (10 years ago)
- Branches:
- (u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
- Children:
- 448b6571955b81192b53dc7300bb54a1984142e3
- Parents:
- 9d864add8f262ed66a3af97f514c37d01844334c
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libpolys/coeffs/modulop.cc
r9d864a r601105 35 35 { 36 36 assume( getCoeffType(r) == ID ); 37 37 38 38 #if SIZEOF_LONG == 4 39 39 #define ULONG64 (unsigned long long)(unsigned long) … … 41 41 #define ULONG64 (unsigned long) 42 42 #endif 43 return (number) 43 return (number) 44 44 (unsigned long)((ULONG64 a)*(ULONG64 b) % (ULONG64 r->ch)); 45 45 } … … 56 56 { 57 57 assume( n_Test(k, r) ); 58 58 59 59 int h = (int)((long) k); 60 60 return ((int)h !=0) && (h <= (r->ch>>1)); … … 78 78 number c = npMultM(a,b, r); 79 79 assume( n_Test(c, r) ); 80 return c; 80 return c; 81 81 } 82 82 … … 92 92 assume( n_Test(c, r) ); 93 93 return c; 94 94 95 95 } 96 96 … … 102 102 { 103 103 assume( n_Test(n, r) ); 104 104 105 105 if ((long)n > (((long)r->ch) >>1)) return (int)((long)n -((long)r->ch)); 106 106 else return (int)((long)n); … … 111 111 assume( n_Test(a, r) ); 112 112 assume( n_Test(b, r) ); 113 113 114 114 number c = npAddM(a,b, r); 115 115 116 116 assume( n_Test(c, r) ); 117 117 118 118 return c; 119 119 } … … 123 123 assume( n_Test(a, r) ); 124 124 assume( n_Test(b, r) ); 125 125 126 126 number c = npSubM(a,b,r); 127 127 … … 134 134 { 135 135 assume( n_Test(a, r) ); 136 136 137 137 return 0 == (long)a; 138 138 } … … 141 141 { 142 142 assume( n_Test(a, r) ); 143 143 144 144 return 1 == (long)a; 145 145 } … … 148 148 { 149 149 assume( n_Test(a, r) ); 150 150 151 151 return ((r->npPminus1M == (long)a)&&((long)1!=(long)a)); 152 152 } … … 231 231 return (number)0; 232 232 number d; 233 233 234 234 #ifndef HAVE_DIV_MOD 235 235 if ((long)b==0) … … 238 238 return (number)0; 239 239 } 240 240 241 241 int s = r->npLogTable[(long)a] - r->npLogTable[(long)b]; 242 242 if (s < 0) … … 250 250 assume( n_Test(d, r) ); 251 251 return d; 252 252 253 253 } 254 254 number npInvers (number c, const coeffs r) 255 255 { 256 256 assume( n_Test(c, r) ); 257 257 258 258 if ((long)c==0) 259 259 { … … 262 262 } 263 263 number d = npInversM(c,r); 264 264 265 265 assume( n_Test(d, r) ); 266 266 return d; 267 267 268 268 } 269 269 … … 271 271 { 272 272 assume( n_Test(c, r) ); 273 273 274 274 if ((long)c==0) return c; 275 275 276 #if 0 277 number d = npNegM(c,r); 276 #if 0 277 number d = npNegM(c,r); 278 278 assume( n_Test(d, r) ); 279 279 return d; 280 280 #else 281 c = npNegM(c,r); 281 c = npNegM(c,r); 282 282 assume( n_Test(c, r) ); 283 283 return c; 284 #endif 284 #endif 285 285 } 286 286 … … 298 298 assume( n_Test(a, r) ); 299 299 assume( n_Test(b, r) ); 300 300 301 301 // return (long)a == (long)b; 302 302 303 303 return npEqualM(a,b,r); 304 304 } … … 307 307 { 308 308 assume( n_Test(a, r) ); 309 309 310 310 if ((long)a>(((long)r->ch) >>1)) StringAppend("-%d",(int)(((long)r->ch)-((long)a))); 311 311 else StringAppend("%d",(int)((long)a)); … … 436 436 437 437 assume( c > 0 ); 438 438 439 439 int i, w; 440 440 … … 507 507 r->convFactoryNSingN=npConvFactoryNSingN; 508 508 #endif 509 509 510 510 // the variables: 511 511 r->nNULL = (number)0; … … 539 539 % r->ch); 540 540 r->npLogTable[r->npExpTable[i]] = i; 541 if /*(i == r->ch - 1 ) ||*/ (/*(*/ r->npExpTable[i] == 1 /*)*/) 541 if /*(i == r->ch - 1 ) ||*/ (/*(*/ r->npExpTable[i] == 1 /*)*/) 542 542 break; 543 543 } … … 757 757 #else 758 758 /// TODO: use "long InvMod(long a, const coeffs R)"?! 759 759 760 760 long s; 761 761 762 long u, u0, u1, u2, q, r; // v0, v1, v2, 762 long u, u0, u1, u2, q, r; // v0, v1, v2, 763 763 764 764 u1=1; // v1=0;
Note: See TracChangeset
for help on using the changeset viewer.