summaryrefslogtreecommitdiff
path: root/src/mul.c
diff options
context:
space:
mode:
authorenge <enge@211d60ee-9f03-0410-a15a-8952a2c7a4e4>2011-02-23 22:05:27 +0000
committerenge <enge@211d60ee-9f03-0410-a15a-8952a2c7a4e4>2011-02-23 22:05:27 +0000
commit7d912e0ba506eb63b2c3e472763ba04d10829f2f (patch)
treed9e2932a5039dc6be7c7f56b31f001b757bebaa8 /src/mul.c
parent52ef098cfd2b070600bf692e610a85e474a8728a (diff)
downloadmpc-7d912e0ba506eb63b2c3e472763ba04d10829f2f.tar.gz
mul.c, mul.dat: removed unused branch, added test to cover one branch
git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@968 211d60ee-9f03-0410-a15a-8952a2c7a4e4
Diffstat (limited to 'src/mul.c')
-rw-r--r--src/mul.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/mul.c b/src/mul.c
index 8bf6478..4b5b5f7 100644
--- a/src/mul.c
+++ b/src/mul.c
@@ -232,12 +232,13 @@ mpfr_fmam (mpfr_ptr z, mpfr_srcptr a, mpfr_srcptr b, mpfr_srcptr c,
/* recompute u and v and move exponents to eu and ev */
mpfr_mul (u, a, b, GMP_RNDN);
- mpz_add_si (eu, eu, (long int) mpfr_get_exp (u));
+ /* exponent of u is non-positive */
+ mpz_sub_ui (eu, eu, (unsigned long int) (-mpfr_get_exp (u)));
mpfr_set_exp (u, (mpfr_prec_t) 0);
mpfr_mul (v, c, d, GMP_RNDN);
if (sign < 0)
mpfr_neg (v, v, GMP_RNDN);
- mpz_add_si (ev, ev, (long int) mpfr_get_exp (v));
+ mpz_sub_ui (ev, ev, (unsigned long int) (-mpfr_get_exp (v)));
mpfr_set_exp (v, (mpfr_prec_t) 0);
if (mpfr_nan_p (z)) {