summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorenge <enge@211d60ee-9f03-0410-a15a-8952a2c7a4e4>2012-07-01 08:27:46 +0000
committerenge <enge@211d60ee-9f03-0410-a15a-8952a2c7a4e4>2012-07-01 08:27:46 +0000
commit0920e92190142e613e281f33625f0ee71216058b (patch)
tree534c1f5924a7faaca8a3f17da455efda009d3e8a /src
parent0985ddbdfc6964448066daf274272cb41cd5abaa (diff)
downloadmpc-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.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/log.c b/src/log.c
index 822dea5..ad1d448 100644
--- a/src/log.c
+++ b/src/log.c
@@ -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);