diff options
author | Marco Bodrato <bodrato@mail.dm.unipi.it> | 2013-01-23 22:13:05 +0100 |
---|---|---|
committer | Marco Bodrato <bodrato@mail.dm.unipi.it> | 2013-01-23 22:13:05 +0100 |
commit | 6ab15eb2491a1ec3c53542aa7ee9b269da3f7171 (patch) | |
tree | 362b6fe5b76780f86e10e776846cf56e4e05f01a | |
parent | 5cf4f61830704904f0a947400b94647a60ceae41 (diff) | |
download | gmp-6ab15eb2491a1ec3c53542aa7ee9b269da3f7171.tar.gz |
mini-gmp/mini-gmp.c (mpz_cmpabs_d, mpz_cmp_d): Simplify.
-rw-r--r-- | mini-gmp/mini-gmp.c | 32 |
1 files changed, 6 insertions, 26 deletions
diff --git a/mini-gmp/mini-gmp.c b/mini-gmp/mini-gmp.c index 6d49bad07..41f48d059 100644 --- a/mini-gmp/mini-gmp.c +++ b/mini-gmp/mini-gmp.c @@ -1554,11 +1554,8 @@ mpz_cmpabs_d (const mpz_t x, double d) xn = GMP_ABS (x->_mp_size); d = GMP_ABS (d); - if (xn == 0) - return - (d > 0.0); - if (d < 1.0) - return 1; - + if (xn != 0) + { B = 2.0 * (double) GMP_LIMB_HIGHBIT; Bi = 1.0 / B; @@ -1566,8 +1563,6 @@ mpz_cmpabs_d (const mpz_t x, double d) for (i = 1; i < xn; i++) { d *= Bi; - if (d < 1.0) - return 1; } if (d >= B) return -1; @@ -1585,29 +1580,14 @@ mpz_cmpabs_d (const mpz_t x, double d) return -1; d = B * (d - f); } - - if (d > 0) - return -1; - else - return 0; + } + return - (d > 0.0); } int mpz_cmp_d (const mpz_t x, double d) { - mp_size_t xn = x->_mp_size; - - if (xn == 0) - { - if (d < 0.0) - return 1; - else if (d > 0.0) - return -1; - else - return 0; - } - - if (xn < 0) + if (x->_mp_size < 0) { if (d >= 0.0) return -1; @@ -1616,7 +1596,7 @@ mpz_cmp_d (const mpz_t x, double d) } else { - if (d <= 0.0) + if (d < 0.0) return 1; else return mpz_cmpabs_d (x, d); |