summaryrefslogtreecommitdiff
path: root/mpz/oddfac_1.c
diff options
context:
space:
mode:
authorMarco Bodrato <bodrato@mail.dm.unipi.it>2020-03-15 18:26:21 +0100
committerMarco Bodrato <bodrato@mail.dm.unipi.it>2020-03-15 18:26:21 +0100
commitc07e396277eab29d644a37f02b2fdcfbc4b68b1c (patch)
tree7c9f4e07a59b64247cfcd6608376bde5de5a7b5b /mpz/oddfac_1.c
parent12d31d5fab8cce52120519328f844f7f5536c0c3 (diff)
downloadgmp-c07e396277eab29d644a37f02b2fdcfbc4b68b1c.tar.gz
: Use one less variable to loop on primes.
Diffstat (limited to 'mpz/oddfac_1.c')
-rw-r--r--mpz/oddfac_1.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/mpz/oddfac_1.c b/mpz/oddfac_1.c
index 9c99d1e49..904d3501a 100644
--- a/mpz/oddfac_1.c
+++ b/mpz/oddfac_1.c
@@ -61,31 +61,31 @@ see https://www.gnu.org/licenses/. */
(PR) *= (P); \
} while (0)
-#define LOOP_ON_SIEVE_CONTINUE(prime,end,sieve) \
+#define LOOP_ON_SIEVE_CONTINUE(prime,end) \
__max_i = (end); \
\
do { \
++__i; \
- if (((sieve)[__index] & __mask) == 0) \
+ if ((*__sieve & __mask) == 0) \
{ \
mp_limb_t prime; \
prime = id_to_n(__i)
#define LOOP_ON_SIEVE_BEGIN(prime,start,end,off,sieve) \
do { \
- mp_limb_t __mask, __index, __max_i, __i; \
+ mp_limb_t __mask, *__sieve, __max_i, __i; \
\
__i = (start)-(off); \
- __index = __i / GMP_LIMB_BITS; \
+ __sieve = (sieve) + __i / GMP_LIMB_BITS; \
__mask = CNST_LIMB(1) << (__i % GMP_LIMB_BITS); \
__i += (off); \
\
- LOOP_ON_SIEVE_CONTINUE(prime,end,sieve)
+ LOOP_ON_SIEVE_CONTINUE(prime,end)
#define LOOP_ON_SIEVE_STOP \
} \
__mask = __mask << 1 | __mask >> (GMP_LIMB_BITS-1); \
- __index += __mask & 1; \
+ __sieve += __mask & 1; \
} while (__i <= __max_i)
#define LOOP_ON_SIEVE_END \
@@ -222,7 +222,7 @@ mpz_2multiswing_1 (mpz_ptr x, mp_limb_t n, mp_ptr sieve, mp_ptr factors)
l_max_prod = max_prod * 3;
- LOOP_ON_SIEVE_CONTINUE (prime, n_to_bit (n/3), sieve);
+ LOOP_ON_SIEVE_CONTINUE (prime, n_to_bit (n/3));
SH_SWING_A_PRIME (prime, n, prod, l_max_prod, factors, j);
LOOP_ON_SIEVE_END;
}