summaryrefslogtreecommitdiff
path: root/set_ld.c
diff options
context:
space:
mode:
authorvlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4>2002-10-17 16:03:57 +0000
committervlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4>2002-10-17 16:03:57 +0000
commit709fca73671e0800def39182ea8cfe2922a2976f (patch)
tree8174bd6b33370322a0e6face246745a8881447a7 /set_ld.c
parent6ec93a1567fa34ca53aded6b43d921a63d8e4474 (diff)
downloadmpfr-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.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/set_ld.c b/set_ld.c
index d346f728e..602d08642 100644
--- a/set_ld.c
+++ b/set_ld.c
@@ -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);