- Timestamp:
- Dec 1, 2016, 4:30:01 PM (7 years ago)
- Branches:
- (u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
- Children:
- 72f5181b0615d9c0f91fee1c8cc55d57b70d9b58
- Parents:
- 83f824ccb8af0c09308f49e50e6acf5ea6c667c7
- git-author:
- Hans Schoenemann <hannes@mathematik.uni-kl.de>2016-12-01 16:30:01+01:00
- git-committer:
- Hans Schoenemann <hannes@mathematik.uni-kl.de>2016-12-01 16:33:16+01:00
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libpolys/coeffs/rintegers.cc
r83f824c r4c2cc1 129 129 } 130 130 131 number nrzXExtGcd (number a, number b, number *s, number *t, number *u, number *v, const coeffs ) 132 { 133 mpz_ptr erg = (mpz_ptr) omAllocBin(gmp_nrz_bin); 134 mpz_ptr bs = (mpz_ptr) omAllocBin(gmp_nrz_bin); 135 mpz_ptr bt = (mpz_ptr) omAllocBin(gmp_nrz_bin); 136 mpz_init(erg); 137 mpz_init(bs); 138 mpz_init(bt); 139 140 mpz_gcdext(erg, bs, bt, (mpz_ptr)a, (mpz_ptr)b); 141 142 mpz_ptr bu = (mpz_ptr) omAllocBin(gmp_nrz_bin); 143 mpz_ptr bv = (mpz_ptr) omAllocBin(gmp_nrz_bin); 144 145 mpz_init_set(bu, (mpz_ptr) b); 146 mpz_init_set(bv, (mpz_ptr) a); 147 148 assume(mpz_cmp_si(erg, 0)); 149 150 mpz_div(bu, bu, erg); 151 mpz_div(bv, bv, erg); 152 153 mpz_mul_si(bu, bu, -1); 154 *u = (number) bu; 155 *v = (number) bv; 156 157 *s = (number) bs; 158 *t = (number) bt; 159 return (number) erg; 160 } 161 131 162 void nrzPower (number a, int i, number * result, const coeffs) 132 163 { … … 279 310 mpz_tdiv_q(erg, (mpz_ptr) a, (mpz_ptr) b); 280 311 return (number) erg; 312 } 313 314 number nrzQuotRem (number a, number b, number * r, const coeffs ) 315 { 316 mpz_ptr qq = (mpz_ptr) omAllocBin(gmp_nrz_bin); 317 mpz_init(qq); 318 mpz_init((mpz_ptr)(*r)); 319 mpz_fdiv_qr(qq, (mpz_ptr)(*r), (mpz_ptr) a, (mpz_ptr) b); 320 return (number) qq; 281 321 } 282 322 … … 509 549 r->cfSize = nrzSize; 510 550 r->cfInt = nrzInt; 511 //#ifdef HAVE_RINGS 512 r->cfDivComp = nrzDivComp; // only for ring stuff 513 r->cfIsUnit = nrzIsUnit; // only for ring stuff 514 r->cfGetUnit = nrzGetUnit; // only for ring stuff 515 r->cfExtGcd = nrzExtGcd; // only for ring stuff 516 r->cfDivBy = nrzDivBy; // only for ring stuff 517 //#endif 551 r->cfDivComp = nrzDivComp; 552 r->cfIsUnit = nrzIsUnit; 553 r->cfGetUnit = nrzGetUnit; 554 r->cfExtGcd = nrzExtGcd; 555 r->cfXExtGcd = nrzXExtGcd; 556 r->cfDivBy = nrzDivBy; 518 557 r->cfInpNeg = nrzNeg; 519 558 r->cfInvers= nrzInvers;
Note: See TracChangeset
for help on using the changeset viewer.