diff options
author | Marco Bodrato <bodrato@mail.dm.unipi.it> | 2021-11-14 11:52:22 +0100 |
---|---|---|
committer | Marco Bodrato <bodrato@mail.dm.unipi.it> | 2021-11-14 11:52:22 +0100 |
commit | 486471055d6e6997ecf270722b2d637a5e426896 (patch) | |
tree | 87ddc75a84d6b0d63b85ec36ee0f2fb4a413243d /mpz | |
parent | eaef91df4a2e533fad5a2646e9f5d4fd0e9b2d19 (diff) | |
download | gmp-486471055d6e6997ecf270722b2d637a5e426896.tar.gz |
mpz/oddfac_1.c (FACTORS_PER_LIMB): Not too conservative...
Diffstat (limited to 'mpz')
-rw-r--r-- | mpz/oddfac_1.c | 6 |
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); |