diff options
author | enge <enge@211d60ee-9f03-0410-a15a-8952a2c7a4e4> | 2012-07-01 08:27:46 +0000 |
---|---|---|
committer | enge <enge@211d60ee-9f03-0410-a15a-8952a2c7a4e4> | 2012-07-01 08:27:46 +0000 |
commit | 0920e92190142e613e281f33625f0ee71216058b (patch) | |
tree | 534c1f5924a7faaca8a3f17da455efda009d3e8a /src | |
parent | 0985ddbdfc6964448066daf274272cb41cd5abaa (diff) | |
download | mpc-0920e92190142e613e281f33625f0ee71216058b.tar.gz |
log.c: correct creation of underflow (found by hydra on i686)
git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@1220 211d60ee-9f03-0410-a15a-8952a2c7a4e4
Diffstat (limited to 'src')
-rw-r--r-- | src/log.c | 8 |
1 files changed, 3 insertions, 5 deletions
@@ -206,12 +206,10 @@ mpc_log (mpc_ptr rop, mpc_srcptr op, mpc_rnd_t rnd){ MPC_RND_IM (rnd)); /* set the real part; cannot be done before if rop==op */ - if (underflow) { + if (underflow) /* create underflow in result */ - mpfr_set_ui (mpc_realref (rop), 1, GMP_RNDN); - inex_re = mpfr_mul_2si (mpc_realref (rop), mpc_realref (rop), mpfr_get_emin_min (), - MPC_RND_RE (rnd)); - } + inex_re = mpfr_set_ui_2exp (mpc_realref (rop), 1, + mpfr_get_emin_min () - 2, MPC_RND_RE (rnd)); else inex_re = mpfr_set (mpc_realref (rop), w, MPC_RND_RE (rnd)); mpfr_clear (w); |