From 9124b2d5b6bb3c473274216c5a7a091d632c945d Mon Sep 17 00:00:00 2001 From: zimmerma Date: Tue, 28 Aug 2012 12:45:52 +0000 Subject: [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 --- src/fma.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') 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); -- cgit v1.2.1