summaryrefslogtreecommitdiff
path: root/mini-gmp
diff options
context:
space:
mode:
authorMarco Bodrato <bodrato@mail.dm.unipi.it>2019-12-05 07:44:46 +0100
committerMarco Bodrato <bodrato@mail.dm.unipi.it>2019-12-05 07:44:46 +0100
commitc426c9df282370efe8c879cbb8cc80484dd7fec7 (patch)
tree29067b7c7ed7f9adcbb4d1d94562b6b0c090fec8 /mini-gmp
parent2eb2b1a6b8a18f85e9ae9b508a74578e1efac7e5 (diff)
downloadgmp-c426c9df282370efe8c879cbb8cc80484dd7fec7.tar.gz
mini-gmp/: remove some sizeof(mp_limb_t)
Diffstat (limited to 'mini-gmp')
-rw-r--r--mini-gmp/mini-gmp.c2
-rw-r--r--mini-gmp/mini-mpq.c27
2 files changed, 18 insertions, 11 deletions
diff --git a/mini-gmp/mini-gmp.c b/mini-gmp/mini-gmp.c
index 5225183c4..78cd10344 100644
--- a/mini-gmp/mini-gmp.c
+++ b/mini-gmp/mini-gmp.c
@@ -4499,7 +4499,7 @@ mpz_export (void *r, size_t *countp, int order, size_t size, int endian,
limb = u->_mp_d[un-1];
assert (limb != 0);
- k = (sizeof (mp_limb_t) == 1);
+ k = (GMP_LIMB_BITS <= CHAR_BIT);
if (!k)
{
do {
diff --git a/mini-gmp/mini-mpq.c b/mini-gmp/mini-mpq.c
index 99dc5c2e8..1f1f5a8a7 100644
--- a/mini-gmp/mini-mpq.c
+++ b/mini-gmp/mini-mpq.c
@@ -253,9 +253,10 @@ mpq_cmp_ui (const mpq_t q, unsigned long n, unsigned long d)
{
mpq_t t;
assert (d != 0);
- if (sizeof (unsigned long) == sizeof (mp_limb_t))
- return mpq_cmp (q, mpq_roinit_normal_nn (t, (mp_srcptr) &n, n != 0, (mp_srcptr) &d, 1));
- else {
+ if (ULONG_MAX <= GMP_LIMB_MAX) {
+ mp_limb_t nl = n, dl = d;
+ return mpq_cmp (q, mpq_roinit_normal_nn (t, &nl, n != 0, &dl, 1));
+ } else {
int ret;
mpq_init (t);
@@ -277,14 +278,20 @@ mpq_cmp_si (const mpq_t q, signed long n, unsigned long d)
else
{
mpq_t t;
- unsigned long l_n = GMP_NEG_CAST (unsigned long, n);
-
- if (sizeof (unsigned long) == sizeof (mp_limb_t))
- return mpq_cmp (q, mpq_roinit_normal_nn (t, (mp_srcptr) &l_n, -1, (mp_srcptr) &d, 1));
- mpq_roinit_normal_nn (t, mpq_numref (q)->_mp_d, - mpq_numref (q)->_mp_size,
- mpq_denref (q)->_mp_d, mpq_denref (q)->_mp_size);
- return - mpq_cmp_ui (t, l_n, d);
+ if (ULONG_MAX <= GMP_LIMB_MAX)
+ {
+ mp_limb_t nl = GMP_NEG_CAST (unsigned long, n), dl = d;
+ return mpq_cmp (q, mpq_roinit_normal_nn (t, &nl, -1, &dl, 1));
+ }
+ else
+ {
+ unsigned long l_n = GMP_NEG_CAST (unsigned long, n);
+
+ mpq_roinit_normal_nn (t, mpq_numref (q)->_mp_d, - mpq_numref (q)->_mp_size,
+ mpq_denref (q)->_mp_d, mpq_denref (q)->_mp_size);
+ return - mpq_cmp_ui (t, l_n, d);
+ }
}
}