diff options
author | vlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4> | 2002-10-17 16:03:57 +0000 |
---|---|---|
committer | vlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4> | 2002-10-17 16:03:57 +0000 |
commit | 709fca73671e0800def39182ea8cfe2922a2976f (patch) | |
tree | 8174bd6b33370322a0e6face246745a8881447a7 /set_ld.c | |
parent | 6ec93a1567fa34ca53aded6b43d921a63d8e4474 (diff) | |
download | mpfr-709fca73671e0800def39182ea8cfe2922a2976f.tar.gz |
Cases NaN and -0.0 taken into account.
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@2054 280ebfd0-de03-0410-8827-d642c229c3f4
Diffstat (limited to 'set_ld.c')
-rw-r--r-- | set_ld.c | 11 |
1 files changed, 11 insertions, 0 deletions
@@ -40,6 +40,17 @@ mpfr_set_ld (mpfr_ptr r, long double d, mp_rnd_t rnd_mode) { mpfr_t t, u; int inexact, shift_exp = 0, inexact2 = 0; + double x; + + x = d; + if (DOUBLE_ISNAN(x)) + { + MPFR_SET_NAN(r); + MPFR_RET_NAN; + } + + if (d == 0.0) + return mpfr_set_d (r, x, rnd_mode); mpfr_init2 (t, LDBL_MANT_DIG); mpfr_init2 (u, DBL_MANT_DIG); |