diff options
author | zimmerma <zimmerma@211d60ee-9f03-0410-a15a-8952a2c7a4e4> | 2012-06-26 16:29:27 +0000 |
---|---|---|
committer | zimmerma <zimmerma@211d60ee-9f03-0410-a15a-8952a2c7a4e4> | 2012-06-26 16:29:27 +0000 |
commit | 326b171de318ba176b3e15f0249b30561244699b (patch) | |
tree | 92aa94ef6a2399d0d2ce6457950ffdafea821ce4 | |
parent | 2183d8a5992ae304a3ccdcdb81f2842e9ec82c0f (diff) | |
download | mpc-326b171de318ba176b3e15f0249b30561244699b.tar.gz |
[fma.c] fixed error in mpfr_can_round() calls: use rnd1=GMP_RNDN to say
the error on the approximation can be positive or negative (work with
Benjamin Dadoun)
git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@1171 211d60ee-9f03-0410-a15a-8952a2c7a4e4
-rw-r--r-- | src/fma.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -167,10 +167,10 @@ mpc_fma (mpc_ptr r, mpc_srcptr a, mpc_srcptr b, mpc_srcptr c, mpc_rnd_t rnd) diffre = (diffre > 0 ? diffre + 1 : 1); diffim = (diffim > 0 ? diffim + 1 : 1); okre = diffre > wpre ? 0 : mpfr_can_round (mpc_realref(ab), - wpre - diffre, GMP_RNDZ, GMP_RNDZ, + wpre - diffre, GMP_RNDN, GMP_RNDZ, pre + (MPC_RND_RE (rnd) == GMP_RNDN)); okim = diffim > wpim ? 0 : mpfr_can_round (mpc_imagref(ab), - wpim - diffim, GMP_RNDZ, GMP_RNDZ, + wpim - diffim, GMP_RNDN, GMP_RNDZ, pim + (MPC_RND_IM (rnd) == GMP_RNDN)); if (okre && okim) { |