summaryrefslogtreecommitdiff
path: root/cmp.c
diff options
context:
space:
mode:
authorpelissip <pelissip@280ebfd0-de03-0410-8827-d642c229c3f4>2004-09-29 13:58:06 +0000
committerpelissip <pelissip@280ebfd0-de03-0410-8827-d642c229c3f4>2004-09-29 13:58:06 +0000
commitf2af580a8d5f41bc8fdebf7209c5a2959c83efc6 (patch)
tree049b34ab0e842b44e5d327a40a5001379d86c0fd /cmp.c
parentf70d2f99fa9a99f09e1f9f602efe5930c079cee6 (diff)
downloadmpfr-f2af580a8d5f41bc8fdebf7209c5a2959c83efc6.tar.gz
cmp(x,y) if x=NAN or y=NAN returns 0 and erange flag.
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@3010 280ebfd0-de03-0410-8827-d642c229c3f4
Diffstat (limited to 'cmp.c')
-rw-r--r--cmp.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/cmp.c b/cmp.c
index 38c59da11..641954b32 100644
--- a/cmp.c
+++ b/cmp.c
@@ -36,9 +36,14 @@ mpfr_cmp3 (mpfr_srcptr b, mpfr_srcptr c, int s)
s = MPFR_MULT_SIGN( s , MPFR_SIGN(c) );
- if (MPFR_ARE_SINGULAR(b,c))
+ if (MPFR_ARE_SINGULAR(b, c))
{
- if (MPFR_IS_INF(b))
+ if (MPFR_IS_NAN (b) || MPFR_IS_NAN (c))
+ {
+ MPFR_SET_ERANGE ();
+ return 0;
+ }
+ else if (MPFR_IS_INF(b))
{
if (MPFR_IS_INF(c) && s == MPFR_SIGN(b) )
return 0;