diff options
author | Torbjorn Granlund <tege@gmplib.org> | 2009-07-06 11:33:28 +0200 |
---|---|---|
committer | Torbjorn Granlund <tege@gmplib.org> | 2009-07-06 11:33:28 +0200 |
commit | 2e1d251e2296974f1d47fa37ffd1e208ecb7df11 (patch) | |
tree | 10d45ffb1b022e817d63b3dfd1e3e16cda772ff1 /mpf | |
parent | 0070949c9074c899f6175cc4f52d0377c09da24c (diff) | |
download | gmp-2e1d251e2296974f1d47fa37ffd1e208ecb7df11.tar.gz |
Improve code for computing sizes related to mp_bases.
Diffstat (limited to 'mpf')
-rw-r--r-- | mpf/get_str.c | 3 | ||||
-rw-r--r-- | mpf/set_str.c | 4 |
2 files changed, 4 insertions, 3 deletions
diff --git a/mpf/get_str.c b/mpf/get_str.c index d4be6b21b..30b12e7c2 100644 --- a/mpf/get_str.c +++ b/mpf/get_str.c @@ -174,7 +174,8 @@ mpf_get_str (char *dbuf, mp_exp_t *exp, int base, size_t n_digits, mpf_srcptr u) conversion.) */ tstr = (unsigned char *) TMP_ALLOC (n_digits + 2 * GMP_LIMB_BITS + 3); - n_limbs_needed = 2 + ((mp_size_t) (n_digits / mp_bases[base].chars_per_bit_exactly)) / GMP_NUMB_BITS; + n_limbs_needed = 2 + (mp_size_t) + (n_digits / (GMP_NUMB_BITS * mp_bases[base].chars_per_bit_exactly)); if (ue <= n_limbs_needed) { diff --git a/mpf/set_str.c b/mpf/set_str.c index 0417303a3..ce8a6bac3 100644 --- a/mpf/set_str.c +++ b/mpf/set_str.c @@ -250,8 +250,8 @@ mpf_set_str (mpf_ptr x, const char *str, int base) str_size = n_chars_needed; #endif - ma = (((mp_size_t) (str_size / mp_bases[base].chars_per_bit_exactly)) - / GMP_NUMB_BITS + 2); + ma = 2 + (mp_size_t) + (str_size / (GMP_NUMB_BITS * mp_bases[base].chars_per_bit_exactly)); mp = TMP_ALLOC_LIMBS (ma); mn = mpn_set_str (mp, (unsigned char *) begs, str_size, base); |