summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4>2017-12-18 12:01:41 +0000
committerzimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4>2017-12-18 12:01:41 +0000
commit7706559a4bc5c1f0699f57bf3c84bb8a249efcc6 (patch)
treec51ad85bdb270a7aec1b6b342e1e54781684a27f
parent2ca8dae407eec42dc80cc849484a076ac6d8f9b6 (diff)
downloadmpfr-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.c4
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);