diff options
-rw-r--r-- | mpz/remove.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/mpz/remove.c b/mpz/remove.c index a1283eed8..b3bb4ef0b 100644 --- a/mpz/remove.c +++ b/mpz/remove.c @@ -78,8 +78,7 @@ mpz_remove (mpz_ptr dest, mpz_srcptr src, mpz_srcptr f) mpz_init (x); pwr = 0; - mpz_init (fpow[0]); - mpz_set (fpow[0], f); + mpz_init_set (fpow[0], f); mpz_set (dest, src); /* Divide by f, f^2 ... f^(2^k) until we get a remainder for f^(2^k). */ @@ -93,7 +92,7 @@ mpz_remove (mpz_ptr dest, mpz_srcptr src, mpz_srcptr f) mpz_set (dest, x); } - pwr = (1L << p) - 1; + pwr = ((mp_bitcnt_t)1 << p) - 1; mpz_clear (fpow[p]); @@ -104,7 +103,7 @@ mpz_remove (mpz_ptr dest, mpz_srcptr src, mpz_srcptr f) mpz_tdiv_qr (x, rem, dest, fpow[p]); if (SIZ (rem) == 0) { - pwr += 1L << p; + pwr += (mp_bitcnt_t)1 << p; mpz_set (dest, x); } mpz_clear (fpow[p]); |