[Gmp-commit] /var/hg/gmp: 2 new changesets
mercurial at gmplib.org
mercurial at gmplib.org
Fri Jul 3 14:53:27 CEST 2026
details: /var/hg/gmp/rev/c477d63195ed
changeset: 18550:c477d63195ed
user: Marco Bodrato <bodrato at mail.dm.unipi.it>
date: Fri Jul 03 14:49:23 2026 +0200
description:
tune/modlinv.c (binvert_limb_pipe_f): Correct an ASSERT
details: /var/hg/gmp/rev/8d1d4f3b2d7e
changeset: 18551:8d1d4f3b2d7e
user: Marco Bodrato <bodrato at mail.dm.unipi.it>
date: Fri Jul 03 14:53:20 2026 +0200
description:
mpn/generic/sqrtrem.c: Microoptimizations
diffstat:
mpn/generic/sqrtrem.c | 12 ++++++------
tune/modlinv.c | 2 +-
2 files changed, 7 insertions(+), 7 deletions(-)
diffs (69 lines):
diff -r 70fcc78764e4 -r 8d1d4f3b2d7e mpn/generic/sqrtrem.c
--- a/mpn/generic/sqrtrem.c Thu Jul 02 14:13:11 2026 +0200
+++ b/mpn/generic/sqrtrem.c Fri Jul 03 14:53:20 2026 +0200
@@ -237,7 +237,7 @@
ASSERT (n > 1);
ASSERT (np[2 * n - 1] >= GMP_NUMB_HIGHBIT / 2);
- l = n / 2;
+ l = n >> 1;
h = n - l;
if (h == 1)
q = CALL_SQRTREM2_INPLACE (sp + l, np + 2 * l);
@@ -325,7 +325,7 @@
ASSERT (n > 4);
ASSERT (nsh < GMP_NUMB_BITS / 2);
- l = (n - 1) / 2;
+ l = (n - 1) >> 1;
h = n - l;
ASSERT (n >= l + 2 && l + 2 >= h && h > l && l >= 1 + odd);
scratch = TMP_ALLOC_LIMBS (l + 2 * n + 5 - USE_DIVAPPR_Q); /* n + 2-USE_DIVAPPR_Q */
@@ -430,7 +430,7 @@
mpn_sqrtrem (mp_ptr sp, mp_ptr rp, mp_srcptr np, mp_size_t nn)
{
mp_limb_t cc, high, rl;
- int c;
+ unsigned c;
mp_size_t rn, tn;
TMP_DECL;
@@ -494,7 +494,7 @@
return rl != 0;
}
}
- tn = (nn + 1) / 2; /* 2*tn is the smallest even integer >= nn */
+ tn = (nn + 1) >> 1; /* 2*tn is the smallest even integer >= nn */
if ((rp == NULL) && (nn > 8))
return mpn_dc_sqrt (sp, np, tn, c, nn & 1);
@@ -503,7 +503,7 @@
{
mp_limb_t s0[1], mask;
mp_ptr tp, scratch;
- TMP_ALLOC_LIMBS_2 (tp, 2 * tn, scratch, tn / 2 + 1);
+ TMP_ALLOC_LIMBS_2 (tp, 2 * tn, scratch, (tn >> 1) + 1);
tp[0] = 0; /* needed only when 2*tn > nn, but saves a test */
if (c != 0)
mpn_lshift (tp + (nn & 1), np, nn, 2 * c);
@@ -544,7 +544,7 @@
rp = TMP_SALLOC_LIMBS (nn);
MPN_COPY (rp, np, nn);
}
- rn = tn + (rp[tn] = mpn_dc_sqrtrem (sp, rp, tn, 0, TMP_ALLOC_LIMBS(tn / 2 + 1)));
+ rn = tn + (rp[tn] = mpn_dc_sqrtrem (sp, rp, tn, 0, TMP_ALLOC_LIMBS((tn >> 1) + 1)));
}
MPN_NORMALIZE (rp, rn);
diff -r 70fcc78764e4 -r 8d1d4f3b2d7e tune/modlinv.c
--- a/tune/modlinv.c Thu Jul 02 14:13:11 2026 +0200
+++ b/tune/modlinv.c Fri Jul 03 14:53:20 2026 +0200
@@ -141,7 +141,7 @@
} while (__invbits < GMP_NUMB_BITS);
}
- ASSERT ((__inv * __n & GMP_NUMB_MASK) == 1);
+ ASSERT ((__inv * n & GMP_NUMB_MASK) == 1);
return __inv & GMP_NUMB_MASK;
}
#define binvert_limb_pipe(inv,n) inv = binvert_limb_pipe_f (n)
More information about the gmp-commit
mailing list