diff options
author | vlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4> | 2015-02-26 12:22:39 +0000 |
---|---|---|
committer | vlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4> | 2015-02-26 12:22:39 +0000 |
commit | 8baed5807ae201fbb606defe356f93a1f4d819d7 (patch) | |
tree | c441c4506fef5a7de6dd30c6d2edef22608d18af | |
parent | b81b701e79102a83b94928883f1c06e21d4c0236 (diff) | |
download | mpfr-8baed5807ae201fbb606defe356f93a1f4d819d7.tar.gz |
[tests/tsum.c] Improved test portability.
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/branches/new-sum@9326 280ebfd0-de03-0410-8827-d642c229c3f4
-rw-r--r-- | tests/tsum.c | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/tests/tsum.c b/tests/tsum.c index a527437ae..c7b5e9525 100644 --- a/tests/tsum.c +++ b/tests/tsum.c @@ -387,7 +387,8 @@ check1 (void) mpfr_clears (sum1, sum2, s1, s2, s3, (mpfr_ptr) 0); } -/* i * 2^66 + j + k * 2^(-1) + f1 * 2^(-90) + f2 * 2^(-90), +/* With N = 2 * GMP_NUMB_BITS: + i * 2^N + j + k * 2^(-1) + f1 * 2^(-N) + f2 * 2^(-N), with i = -1 or 1, j = 0 or i, -1 <= k <= 1, -1 <= f1 <= 1, -1 <= f2 <= 1 ulp(exact sum) = 2^0. */ static void @@ -397,12 +398,14 @@ check2 (void) mpfr_ptr p[5]; int i, j, k, f1, f2, prec, r, inex1, inex2; - mpfr_init2 (sum1, 47); - mpfr_init2 (sum2, 47); - mpfr_init2 (s1, 67); - mpfr_init2 (s2, 68); - mpfr_init2 (s3, 157); - mpfr_init2 (s4, 157); +#define N (2 * GMP_NUMB_BITS) + + mpfr_init2 (sum1, N+1); + mpfr_init2 (sum2, N+1); + mpfr_init2 (s1, N+1); + mpfr_init2 (s2, N+2); + mpfr_init2 (s3, 2*N+1); + mpfr_init2 (s4, 2*N+1); for (i = 0; i < 5; i++) { mpfr_init2 (t[i], 2); @@ -411,7 +414,7 @@ check2 (void) for (i = -1; i <= 1; i += 2) { - mpfr_set_si_2exp (t[0], i, 66, MPFR_RNDN); + mpfr_set_si_2exp (t[0], i, N, MPFR_RNDN); for (j = 0; j != 2*i; j += i) { mpfr_set_si (t[1], j, MPFR_RNDN); @@ -424,12 +427,12 @@ check2 (void) MPFR_ASSERTN (inex1 == 0); for (f1 = -1; f1 <= 1; f1++) { - mpfr_set_si_2exp (t[3], f1, -90, MPFR_RNDN); + mpfr_set_si_2exp (t[3], f1, -N, MPFR_RNDN); inex1 = mpfr_add (s3, s2, t[3], MPFR_RNDN); MPFR_ASSERTN (inex1 == 0); for (f2 = -1; f2 <= 1; f2++) { - mpfr_set_si_2exp (t[4], f2, -90, MPFR_RNDN); + mpfr_set_si_2exp (t[4], f2, -N, MPFR_RNDN); inex1 = mpfr_add (s4, s3, t[4], MPFR_RNDN); MPFR_ASSERTN (inex1 == 0); prec = mpfr_get_exp (s4); |