diff options
author | Marco Bodrato <bodrato@mail.dm.unipi.it> | 2020-03-15 18:26:21 +0100 |
---|---|---|
committer | Marco Bodrato <bodrato@mail.dm.unipi.it> | 2020-03-15 18:26:21 +0100 |
commit | c07e396277eab29d644a37f02b2fdcfbc4b68b1c (patch) | |
tree | 7c9f4e07a59b64247cfcd6608376bde5de5a7b5b /mpz/primorial_ui.c | |
parent | 12d31d5fab8cce52120519328f844f7f5536c0c3 (diff) | |
download | gmp-c07e396277eab29d644a37f02b2fdcfbc4b68b1c.tar.gz |
: Use one less variable to loop on primes.
Diffstat (limited to 'mpz/primorial_ui.c')
-rw-r--r-- | mpz/primorial_ui.c | 12 |
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 \ |