diff options
author | zimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4> | 2002-09-26 08:00:09 +0000 |
---|---|---|
committer | zimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4> | 2002-09-26 08:00:09 +0000 |
commit | 6bbaa4c44d3b4f6b07b5b0101ee823e81acfb72e (patch) | |
tree | 2e5f7668e220da0cfbb5542c3fecc686d0e2f324 /tests/tsub.c | |
parent | 17c9f76217930489414763cbff3a1ffbc2ba7287 (diff) | |
download | mpfr-6bbaa4c44d3b4f6b07b5b0101ee823e81acfb72e.tar.gz |
added test for inexact flag (bug found by Andreas Enge)
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@2031 280ebfd0-de03-0410-8827-d642c229c3f4
Diffstat (limited to 'tests/tsub.c')
-rw-r--r-- | tests/tsub.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/tests/tsub.c b/tests/tsub.c index 10124f55d..5a7123ed7 100644 --- a/tests/tsub.c +++ b/tests/tsub.c @@ -348,6 +348,19 @@ check_inexact (void) mpfr_init (z); mpfr_init (u); + mpfr_set_prec (x, 2); + mpfr_set_ui (x, 6, GMP_RNDN); + mpfr_div_2exp (x, x, 4, GMP_RNDN); /* x = 6/16 */ + mpfr_set_prec (y, 2); + mpfr_set_si (y, -1, GMP_RNDN); + mpfr_div_2exp (y, y, 4, GMP_RNDN); /* y = -1/16 */ + inexact = mpfr_sub (y, y, x, GMP_RNDN); /* y = round(-7/16) = -1/2 */ + if (inexact >= 0) + { + fprintf (stderr, "Error: wrong inexact flag for -1/16 - (6/16)\n"); + exit (1); + } + for (px=2; px<MAX_PREC; px++) { mpfr_set_prec (x, px); |