summaryrefslogtreecommitdiff
path: root/mpz
diff options
context:
space:
mode:
authorMarco Bodrato <bodrato@mail.dm.unipi.it>2021-11-14 11:52:22 +0100
committerMarco Bodrato <bodrato@mail.dm.unipi.it>2021-11-14 11:52:22 +0100
commit486471055d6e6997ecf270722b2d637a5e426896 (patch)
tree87ddc75a84d6b0d63b85ec36ee0f2fb4a413243d /mpz
parenteaef91df4a2e533fad5a2646e9f5d4fd0e9b2d19 (diff)
downloadgmp-486471055d6e6997ecf270722b2d637a5e426896.tar.gz
mpz/oddfac_1.c (FACTORS_PER_LIMB): Not too conservative...
Diffstat (limited to 'mpz')
-rw-r--r--mpz/oddfac_1.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/mpz/oddfac_1.c b/mpz/oddfac_1.c
index 0e9443f8d..3f4c085ff 100644
--- a/mpz/oddfac_1.c
+++ b/mpz/oddfac_1.c
@@ -260,9 +260,9 @@ mpz_2multiswing_1 (mpz_ptr x, mp_limb_t n, mp_ptr sieve, mp_ptr factors)
/* FIXME: refine che following estimate. */
#if TUNE_PROGRAM_BUILD
-#define FACTORS_PER_LIMB (GMP_NUMB_BITS / (LOG2C(FAC_DSC_THRESHOLD_LIMIT*FAC_DSC_THRESHOLD_LIMIT-1)+1) * 2 - 1)
+#define FACTORS_PER_LIMB (GMP_NUMB_BITS * 2 / (LOG2C(FAC_DSC_THRESHOLD_LIMIT*FAC_DSC_THRESHOLD_LIMIT-1)+1) - 1)
#else
-#define FACTORS_PER_LIMB (GMP_NUMB_BITS / (LOG2C(FAC_DSC_THRESHOLD*FAC_DSC_THRESHOLD-1)+1) * 2 - 1)
+#define FACTORS_PER_LIMB (GMP_NUMB_BITS * 2 / (LOG2C(FAC_DSC_THRESHOLD*FAC_DSC_THRESHOLD-1)+1) - 1)
#endif
/* mpz_oddfac_1 computes the odd part of the factorial of the
@@ -335,7 +335,7 @@ mpz_oddfac_1 (mpz_ptr x, mp_limb_t n, unsigned flag)
ASSERT (tn > ODD_DOUBLEFACTORIAL_TABLE_LIMIT + 1);
do {
factors[j++] = ODD_DOUBLEFACTORIAL_TABLE_MAX;
- mp_limb_t diff = tn - ODD_DOUBLEFACTORIAL_TABLE_LIMIT & -CNST_LIMB (2);
+ mp_limb_t diff = (tn - ODD_DOUBLEFACTORIAL_TABLE_LIMIT) & -CNST_LIMB (2);
if ((diff & 2) != 0)
{
FACTOR_LIST_STORE (ODD_DOUBLEFACTORIAL_TABLE_LIMIT + diff, prod, max_prod, factors, j);