Changeset 1eef69 in git
- Timestamp:
- Jan 19, 2009, 1:43:53 PM (14 years ago)
- Branches:
- (u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'a657104b677b4c461d018cbf3204d72d34ad66a9')
- Children:
- 0883ed62762dee5f6c5fa37f064d3883b99dc21f
- Parents:
- 9655929209cd775b5b7cd5bc61d5b70c75f911b3
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/rmodulon.cc
r9655929 r1eef69 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: rmodulon.cc,v 1.3 1 2008-12-08 15:00:43 Singular Exp $ */4 /* $Id: rmodulon.cc,v 1.32 2009-01-19 12:43:53 Singular Exp $ */ 5 5 /* 6 6 * ABSTRACT: numbers modulo n … … 21 21 22 22 #ifdef HAVE_RINGMODN 23 24 omBin gmp_nrn_bin = omGetSpecBin(sizeof(MP_INT)); 23 #ifdef HAVE_RINGZ 24 #define gmp_nrn_bin gmp_nrz_bin 25 extern omBin gmp_nrz_bin; 26 #else 27 omBin gmp_nrn_bin = omGetSpecBin(sizeof(MP_INT)); 28 #endif 25 29 26 30 int_number nrnModul = NULL; … … 33 37 number nrnInit (int i) 34 38 { 35 int_number erg = (int_number) omAllocBin(gmp_nrn_bin); // evtl. spaeter mit bin39 int_number erg = (int_number) omAllocBin(gmp_nrn_bin); 36 40 mpz_init_set_si(erg, i); 37 41 mpz_mod(erg, erg, nrnModul); … … 49 53 number nrnCopy(number a) 50 54 { 51 int_number erg = (int_number) omAllocBin(gmp_nrn_bin); // evtl. spaeter mit bin55 int_number erg = (int_number) omAllocBin(gmp_nrn_bin); 52 56 mpz_init_set(erg, (int_number) a); 53 57 return (number) erg; … … 78 82 number nrnMult (number a, number b) 79 83 { 80 int_number erg = (int_number) omAllocBin(gmp_nrn_bin); // evtl. spaeter mit bin84 int_number erg = (int_number) omAllocBin(gmp_nrn_bin); 81 85 mpz_init(erg); 82 86 mpz_mul(erg, (int_number) a, (int_number) b); … … 87 91 void nrnPower (number a, int i, number * result) 88 92 { 89 int_number erg = (int_number) omAllocBin(gmp_nrn_bin); // evtl. spaeter mit bin93 int_number erg = (int_number) omAllocBin(gmp_nrn_bin); 90 94 mpz_init(erg); 91 95 mpz_powm_ui(erg, (int_number) a, i, nrnModul); … … 95 99 number nrnAdd (number a, number b) 96 100 { 97 int_number erg = (int_number) omAllocBin(gmp_nrn_bin); // evtl. spaeter mit bin101 int_number erg = (int_number) omAllocBin(gmp_nrn_bin); 98 102 mpz_init(erg); 99 103 mpz_add(erg, (int_number) a, (int_number) b); … … 104 108 number nrnSub (number a, number b) 105 109 { 106 int_number erg = (int_number) omAllocBin(gmp_nrn_bin); // evtl. spaeter mit bin110 int_number erg = (int_number) omAllocBin(gmp_nrn_bin); 107 111 mpz_init(erg); 108 112 mpz_sub(erg, (int_number) a, (int_number) b); … … 113 117 number nrnNeg (number c) 114 118 { 115 // nNeg inplace !!! TODO 116 // int_number erg = (int_number) omAllocBin(gmp_nrn_bin); // evtl. spaeter mit bin 117 // mpz_init(erg); 119 // nNeg inplace !!! 118 120 mpz_sub((int_number) c, nrnModul, (int_number) c); 119 121 return c; … … 122 124 number nrnInvers (number c) 123 125 { 124 int_number erg = (int_number) omAllocBin(gmp_nrn_bin); // evtl. spaeter mit bin126 int_number erg = (int_number) omAllocBin(gmp_nrn_bin); 125 127 mpz_init(erg); 126 128 mpz_invert(erg, (int_number) c, nrnModul); … … 148 150 { 149 151 if ((a == NULL) && (b == NULL)) return nrnInit(0); 150 int_number erg = (int_number) omAllocBin(gmp_nrn_bin); // evtl. spaeter mit bin152 int_number erg = (int_number) omAllocBin(gmp_nrn_bin); 151 153 mpz_init_set(erg, nrnModul); 152 154 if (a != NULL) mpz_gcd(erg, erg, (int_number) a); … … 158 160 number nrnGcd3 (number a,number b, number c,ring r) 159 161 { 160 int_number erg = (int_number) omAllocBin(gmp_nrn_bin); // evtl. spaeter mit bin162 int_number erg = (int_number) omAllocBin(gmp_nrn_bin); 161 163 mpz_init(erg); 162 164 if (a == NULL) a = (number) nrnModul; … … 176 178 number nrnExtGcd (number a, number b, number *s, number *t) 177 179 { 178 int_number erg = (int_number) omAllocBin(gmp_nrn_bin); // evtl. spaeter mit bin179 int_number bs = (int_number) omAllocBin(gmp_nrn_bin); // evtl. spaeter mit bin180 int_number bt = (int_number) omAllocBin(gmp_nrn_bin); // evtl. spaeter mit bin180 int_number erg = (int_number) omAllocBin(gmp_nrn_bin); 181 int_number bs = (int_number) omAllocBin(gmp_nrn_bin); 182 int_number bt = (int_number) omAllocBin(gmp_nrn_bin); 181 183 mpz_init(erg); 182 184 mpz_init(bs); … … 291 293 { 292 294 if (a == NULL) a = (number) nrnModul; 293 int_number erg = (int_number) omAllocBin(gmp_nrn_bin); // evtl. spaeter mit bin295 int_number erg = (int_number) omAllocBin(gmp_nrn_bin); 294 296 mpz_init(erg); 295 297 if (mpz_divisible_p((int_number) a, (int_number) b)) … … 323 325 number nrnIntDiv (number a,number b) 324 326 { 325 int_number erg = (int_number) omAllocBin(gmp_nrn_bin); // evtl. spaeter mit bin327 int_number erg = (int_number) omAllocBin(gmp_nrn_bin); 326 328 mpz_init(erg); 327 329 if (a == NULL) a = (number) nrnModul; … … 343 345 number nrnMap2toM(number from) 344 346 { 345 int_number erg = (int_number) omAllocBin(gmp_nrn_bin); // evtl. spaeter mit bin347 int_number erg = (int_number) omAllocBin(gmp_nrn_bin); 346 348 mpz_init(erg); 347 349 mpz_mul_ui(erg, nrnMapCoef, (NATNUMBER) from); … … 352 354 number nrnMapZp(number from) 353 355 { 354 int_number erg = (int_number) omAllocBin(gmp_nrn_bin); // evtl. spaeter mit bin356 int_number erg = (int_number) omAllocBin(gmp_nrn_bin); 355 357 mpz_init(erg); 356 358 mpz_mul_si(erg, nrnMapCoef, (NATNUMBER) from); … … 361 363 number nrnMapGMP(number from) 362 364 { 363 int_number erg = (int_number) omAllocBin(gmp_nrn_bin); // evtl. spaeter mit bin365 int_number erg = (int_number) omAllocBin(gmp_nrn_bin); 364 366 mpz_init(erg); 365 367 mpz_mod(erg, (int_number) from, nrnModul); … … 369 371 number nrnMapQ(number from) 370 372 { 371 int_number erg = (int_number) omAllocBin(gmp_nrn_bin); // evtl. spaeter mit bin373 int_number erg = (int_number) omAllocBin(gmp_nrn_bin); 372 374 mpz_init(erg); 373 375 nlGMP(from, (number) erg); … … 395 397 else 396 398 { 397 int_number nrnMapModul = (int_number) omAllocBin(gmp_nrn_bin); // evtl. spaeter mit bin399 int_number nrnMapModul = (int_number) omAllocBin(gmp_nrn_bin); 398 400 // Computing the n of Z/n 399 401 if (rField_is_Zp(src)) … … 411 413 if (nrnMapCoef == NULL) 412 414 { 413 nrnMapCoef = (int_number) omAllocBin(gmp_nrn_bin); // evtl. spaeter mit bin415 nrnMapCoef = (int_number) omAllocBin(gmp_nrn_bin); 414 416 mpz_init(nrnMapCoef); 415 417 } … … 464 466 if (nrnModul == NULL) 465 467 { 466 nrnModul = (int_number) omAllocBin(gmp_nrn_bin); // evtl. spaeter mit bin468 nrnModul = (int_number) omAllocBin(gmp_nrn_bin); 467 469 mpz_init(nrnModul); 468 nrnMinusOne = (int_number) omAllocBin(gmp_nrn_bin); // evtl. spaeter mit bin470 nrnMinusOne = (int_number) omAllocBin(gmp_nrn_bin); 469 471 mpz_init(nrnMinusOne); 470 472 } … … 543 545 const char * nrnRead (const char *s, number *a) 544 546 { 545 int_number z = (int_number) omAllocBin(gmp_nrn_bin); // evtl. spaeter mit bin547 int_number z = (int_number) omAllocBin(gmp_nrn_bin); 546 548 { 547 549 s = nlCPEatLongC((char *)s, z);
Note: See TracChangeset
for help on using the changeset viewer.