diff options
-rw-r--r-- | tests/tadd.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/tests/tadd.c b/tests/tadd.c index 2ad1f4ce0..b7ca2a10f 100644 --- a/tests/tadd.c +++ b/tests/tadd.c @@ -454,20 +454,27 @@ check_inexact (void) for (px=2; px<MAX_PREC; px++) { mpfr_set_prec (x, px); - mpfr_random (x); + do + { + mpfr_random (x); + } + while (mpfr_cmp_ui (x, 0) == 0); for (pu=2; pu<MAX_PREC; pu++) { mpfr_set_prec (u, pu); - mpfr_random (u); + do + { + mpfr_random (u); + } + while (mpfr_cmp_ui (u, 0) == 0); for (py=2; py<MAX_PREC; py++) { mpfr_set_prec (y, py); - pz = (mpfr_cmpabs (x, u) >= 0) ? MPFR_EXP(x)-MPFR_EXP(u) - : MPFR_EXP(u)-MPFR_EXP(x); + pz = (mpfr_cmpabs (x, u) >= 0) ? MPFR_EXP(x) - MPFR_EXP(u) + : MPFR_EXP(u) - MPFR_EXP(x); /* x + u is exactly representable with precision abs(EXP(x)-EXP(u)) + max(prec(x), prec(u)) + 1 */ - pz = MAX (MPFR_PREC_MIN, - pz + MAX(MPFR_PREC(x), MPFR_PREC(u)) + 1); + pz = pz + MAX(MPFR_PREC(x), MPFR_PREC(u)) + 1; mpfr_set_prec (z, pz); rnd = randlimb () % 4; if (mpfr_add (z, x, u, rnd)) |