summaryrefslogtreecommitdiff
path: root/mpz
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
parent12d31d5fab8cce52120519328f844f7f5536c0c3 (diff)
downloadgmp-c07e396277eab29d644a37f02b2fdcfbc4b68b1c.tar.gz
: Use one less variable to loop on primes.
Diffstat (limited to 'mpz')
-rw-r--r--mpz/bin_uiui.c14
-rw-r--r--mpz/oddfac_1.c14
-rw-r--r--mpz/primorial_ui.c12
3 files changed, 20 insertions, 20 deletions
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 \