summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarco Bodrato <bodrato@mail.dm.unipi.it>2013-01-23 22:13:05 +0100
committerMarco Bodrato <bodrato@mail.dm.unipi.it>2013-01-23 22:13:05 +0100
commit6ab15eb2491a1ec3c53542aa7ee9b269da3f7171 (patch)
tree362b6fe5b76780f86e10e776846cf56e4e05f01a
parent5cf4f61830704904f0a947400b94647a60ceae41 (diff)
downloadgmp-6ab15eb2491a1ec3c53542aa7ee9b269da3f7171.tar.gz
mini-gmp/mini-gmp.c (mpz_cmpabs_d, mpz_cmp_d): Simplify.
-rw-r--r--mini-gmp/mini-gmp.c32
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);