diff options
Diffstat (limited to 'mini-gmp/tests/t-mpq_double.c')
-rw-r--r-- | mini-gmp/tests/t-mpq_double.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/mini-gmp/tests/t-mpq_double.c b/mini-gmp/tests/t-mpq_double.c index 1bd6c92f5..f8409d5e9 100644 --- a/mini-gmp/tests/t-mpq_double.c +++ b/mini-gmp/tests/t-mpq_double.c @@ -58,13 +58,7 @@ mpz_get_d_exact_p (const mpz_t z) int mpq_get_d_exact_p (const mpq_t q) { - /* return mpq_mantissasizeinbits (q) <= DBL_MANT_DIG; */ - return - (mpz_sizeinbase (mpq_denref (q), 2) - - mpz_scan1 (mpq_denref (q), 0) == 1) && - (mpz_sizeinbase (mpq_numref (q), 2) - - mpz_scan1 (mpq_numref (q), 0) <= DBL_MANT_DIG); - /* mpz_sizeinbase (zero, 2) - mpz_scan1 (zero, 0) == 2 */ + return mpq_mantissasizeinbits (q) <= DBL_MANT_DIG; } #define HAVE_EXACT_P 1 #endif @@ -128,6 +122,9 @@ check_random (void) d = ldexp ((double) m, e); mpq_set_d (y, d); + if (i == 0) + mpq_neg (z, y); + mpq_add (y, y, z); mpq_set_d (z, mpq_get_d (y)); f = mpq_get_d (z); |