summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorzimmerma <zimmerma@211d60ee-9f03-0410-a15a-8952a2c7a4e4>2012-08-28 12:45:52 +0000
committerzimmerma <zimmerma@211d60ee-9f03-0410-a15a-8952a2c7a4e4>2012-08-28 12:45:52 +0000
commit9124b2d5b6bb3c473274216c5a7a091d632c945d (patch)
tree16b26a819ef252b559be1acdb3eed2f080f0a3aa /src
parentfee39b927a16f6a80129586f900a3bd7c3fcd019 (diff)
downloadmpc-9124b2d5b6bb3c473274216c5a7a091d632c945d.tar.gz
[fma.c] fixed bug found by hydra with GMP_CHECK_RANDOMIZE=1346362345
(check for zero real or imaginary part was too late) git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@1254 211d60ee-9f03-0410-a15a-8952a2c7a4e4
Diffstat (limited to 'src')
-rw-r--r--src/fma.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/fma.c b/src/fma.c
index 1da4297..3512caf 100644
--- a/src/fma.c
+++ b/src/fma.c
@@ -159,9 +159,9 @@ mpc_fma (mpc_ptr r, mpc_srcptr a, mpc_srcptr b, mpc_srcptr c, mpc_rnd_t rnd)
break;
diffre = mpfr_get_exp (mpc_realref(ab));
diffim = mpfr_get_exp (mpc_imagref(ab));
+ mpc_add (ab, ab, c, MPC_RNDZZ);
if (mpfr_zero_p (mpc_realref(ab)) || mpfr_zero_p (mpc_imagref(ab)))
break;
- mpc_add (ab, ab, c, MPC_RNDZZ);
diffre -= mpfr_get_exp (mpc_realref(ab));
diffim -= mpfr_get_exp (mpc_imagref(ab));
diffre = (diffre > 0 ? diffre + 1 : 1);