From c07e396277eab29d644a37f02b2fdcfbc4b68b1c Mon Sep 17 00:00:00 2001 From: Marco Bodrato Date: Sun, 15 Mar 2020 18:26:21 +0100 Subject: : Use one less variable to loop on primes. --- mpz/bin_uiui.c | 14 +++++++------- mpz/oddfac_1.c | 14 +++++++------- mpz/primorial_ui.c | 12 ++++++------ 3 files changed, 20 insertions(+), 20 deletions(-) (limited to 'mpz') diff --git a/mpz/bin_uiui.c b/mpz/bin_uiui.c index b77628fdf..c62e0ec2e 100644 --- a/mpz/bin_uiui.c +++ b/mpz/bin_uiui.c @@ -491,31 +491,31 @@ mpz_smallkdc_bin_uiui (mpz_ptr r, unsigned long int n, unsigned long int k) (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 \ @@ -632,7 +632,7 @@ mpz_goetgheluck_bin_uiui (mpz_ptr r, unsigned long int n, unsigned long int k) ASSERT (max_prod <= GMP_NUMB_MAX / 2); max_prod <<= 1; - LOOP_ON_SIEVE_CONTINUE (prime, n_to_bit (n >> 1),sieve); + LOOP_ON_SIEVE_CONTINUE (prime, n_to_bit (n >> 1)); SH_COUNT_A_PRIME (prime, n, k, prod, max_prod, factors, j); LOOP_ON_SIEVE_END; 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; } 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 \ -- cgit v1.2.1