diff options
author | zimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4> | 2000-02-04 14:55:01 +0000 |
---|---|---|
committer | zimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4> | 2000-02-04 14:55:01 +0000 |
commit | 3218ac91059f7de5aac3988e2914f019ecc641ca (patch) | |
tree | b4532c15501acd70a7ef45e41b3f0d6a51124458 /tests/tset_f.c | |
parent | 2163f7038ff3bdce7af6fd10fa236e6b2a1c1a27 (diff) | |
download | mpfr-3218ac91059f7de5aac3988e2914f019ecc641ca.tar.gz |
added more tests
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@449 280ebfd0-de03-0410-8827-d642c229c3f4
Diffstat (limited to 'tests/tset_f.c')
-rw-r--r-- | tests/tset_f.c | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/tests/tset_f.c b/tests/tset_f.c index 31f63615c..ae68a0e00 100644 --- a/tests/tset_f.c +++ b/tests/tset_f.c @@ -32,14 +32,33 @@ MA 02111-1307, USA. */ int main() { - mpfr_t x; mpf_t y; mpf_t z; unsigned long k, pr; + mpfr_t x; mpf_t y; mpf_t z; unsigned long k, pr; double f; mpfr_init2(x, 100); mpf_init(y); + mpf_set_d(y, 0.0); + mpfr_set_f(x, y, GMP_RNDN); + srandom(time(NULL)); mpf_random2(y, 10, 0); - mpfr_set_f(x, y, 53, rand() & 3); + mpfr_set_f(x, y, rand() & 3); + + /* bug found by Jean-Pierre Merlet on February 3, 2000 */ + mpfr_set_prec(x, 256); mpf_init2(y, 256); + mpfr_set_machine_rnd_mode(GMP_RNDD); + mpf_set_str(y, "2033.033", 10); + mpfr_set_f(x, y, GMP_RNDN); + f = mpfr_get_d(x); + if (f != 2033.0329999999999017745722085) { + fprintf(stderr, "mpfr_set_f failed for y=2033.033\n"); exit(1); + } + mpf_set_str(y, "-2033.033", 10); + mpfr_set_f(x, y, GMP_RNDN); + f = mpfr_get_d(x); + if (f != -2033.0330000000001291482476518) { + fprintf(stderr, "mpfr_set_f failed for y=-2033.033\n"); exit(1); + } mpf_clear(y); mpfr_clear(x); @@ -49,7 +68,7 @@ main() mpf_init2(z, pr); mpf_random2(z, z->_mp_prec, 0); mpfr_init2(x, pr); - mpfr_set_f(x, z, pr, 0); + mpfr_set_f(x, z, 0); } return(0); } |