diff options
author | tege <tege@gmplib.org> | 2003-05-26 20:45:30 +0200 |
---|---|---|
committer | tege <tege@gmplib.org> | 2003-05-26 20:45:30 +0200 |
commit | 853d438cdedb43c7280e6329a10fc505b14537d2 (patch) | |
tree | 8006f3e9a8eca63ac20f7fd992188c9dfb95e2c5 /mpf/set_str.c | |
parent | 29dbfd627ed0d57b505603c080a011f980c6cb3f (diff) | |
download | gmp-853d438cdedb43c7280e6329a10fc505b14537d2.tar.gz |
(mpn_pow_1_highpart): Cleanup.
Diffstat (limited to 'mpf/set_str.c')
-rw-r--r-- | mpf/set_str.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/mpf/set_str.c b/mpf/set_str.c index f23c48baa..7438bd7df 100644 --- a/mpf/set_str.c +++ b/mpf/set_str.c @@ -56,11 +56,11 @@ extern const unsigned char __gmp_digit_value_tab[]; Put the count of omitted low limbs in *ign. Return the actual size (which might be less than prec). */ static mp_size_t -mpn_pow_1_highpart (mp_ptr rp, mp_size_t *ign, +mpn_pow_1_highpart (mp_ptr rp, mp_size_t *ignp, mp_limb_t base, mp_exp_t exp, mp_size_t prec, mp_ptr tp) { - mp_size_t radj = 0; /* counts number of ignored low limbs in r */ + mp_size_t ign; /* counts number of ignored low limbs in r */ mp_size_t off; /* keeps track of offset where value starts */ mp_ptr passed_rp = rp; mp_size_t rn; @@ -70,18 +70,19 @@ mpn_pow_1_highpart (mp_ptr rp, mp_size_t *ign, rp[0] = base; rn = 1; off = 0; + ign = 0; count_leading_zeros (cnt, exp); for (i = GMP_LIMB_BITS - cnt - 2; i >= 0; i--) { mpn_sqr_n (tp, rp + off, rn); rn = 2 * rn; rn -= tp[rn - 1] == 0; - radj <<= 1; + ign <<= 1; off = 0; if (rn > prec) { - radj += rn - prec; + ign += rn - prec; off = rn - prec; rn = prec; } @@ -99,13 +100,13 @@ mpn_pow_1_highpart (mp_ptr rp, mp_size_t *ign, if (rn > prec) { - radj += rn - prec; + ign += rn - prec; rp += rn - prec; rn = prec; } MPN_COPY_INCR (passed_rp, rp + off, rn); - *ign = radj; + *ignp = ign; return rn; } |