diff options
author | zimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4> | 2017-12-18 12:01:41 +0000 |
---|---|---|
committer | zimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4> | 2017-12-18 12:01:41 +0000 |
commit | 7706559a4bc5c1f0699f57bf3c84bb8a249efcc6 (patch) | |
tree | c51ad85bdb270a7aec1b6b342e1e54781684a27f | |
parent | 2ca8dae407eec42dc80cc849484a076ac6d8f9b6 (diff) | |
download | mpfr-7706559a4bc5c1f0699f57bf3c84bb8a249efcc6.tar.gz |
[src/exp2.c] added FIXME
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@11996 280ebfd0-de03-0410-8827-d642c229c3f4
-rw-r--r-- | src/exp2.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/exp2.c b/src/exp2.c index 2717066f8..3c18b6d26 100644 --- a/src/exp2.c +++ b/src/exp2.c @@ -145,7 +145,9 @@ mpfr_exp2 (mpfr_ptr y, mpfr_srcptr x, mpfr_rnd_t rnd_mode) mpfr_clear (xfrac); MPFR_CLEAR_FLAGS (); - mpfr_mul_2si (y, y, xint, MPFR_RNDN); /* exact or overflow */ + /* FIXME: in case of underflow, MPFR_RNDN might return 0.5*2^emin, which will + remain unchanged below, whereas with RNDZ, we want +0 as result. */ + mpfr_mul_2si (y, y, xint, MPFR_RNDN); /* exact or under/overflow */ /* Note: We can have an overflow only when t was rounded up to 2. */ MPFR_ASSERTD (MPFR_IS_PURE_FP (y) || inexact > 0); MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags); |