diff options
author | pelissip <pelissip@280ebfd0-de03-0410-8827-d642c229c3f4> | 2004-09-29 13:58:06 +0000 |
---|---|---|
committer | pelissip <pelissip@280ebfd0-de03-0410-8827-d642c229c3f4> | 2004-09-29 13:58:06 +0000 |
commit | f2af580a8d5f41bc8fdebf7209c5a2959c83efc6 (patch) | |
tree | 049b34ab0e842b44e5d327a40a5001379d86c0fd /cmp.c | |
parent | f70d2f99fa9a99f09e1f9f602efe5930c079cee6 (diff) | |
download | mpfr-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.c | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -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; |