summaryrefslogtreecommitdiff
path: root/mpz/primorial_ui.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/primorial_ui.c
parent12d31d5fab8cce52120519328f844f7f5536c0c3 (diff)
downloadgmp-c07e396277eab29d644a37f02b2fdcfbc4b68b1c.tar.gz
: Use one less variable to loop on primes.
Diffstat (limited to 'mpz/primorial_ui.c')
-rw-r--r--mpz/primorial_ui.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/mpz/primorial_ui.c b/mpz/primorial_ui.c
index 27039198c..c30fd3e8f 100644
--- a/mpz/primorial_ui.c
+++ b/mpz/primorial_ui.c
@@ -48,31 +48,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 \