Skip to content

Commit 67707cd

Browse files
committed
small rollback for now
1 parent 3a386ce commit 67707cd

File tree

3 files changed

+4
-34
lines changed

3 files changed

+4
-34
lines changed

demo/test.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1628,7 +1628,6 @@ static int test_mp_next_small_prime(void)
16281628
#else
16291629
const char *primesum_32 = "202259606268580";
16301630
#endif
1631-
16321631
mp_sieve_init(&sieve);
16331632

16341633
test_size = (int)(sizeof(to_test)/sizeof(mp_sieve_prime));
@@ -1665,7 +1664,7 @@ static int test_mp_next_small_prime(void)
16651664
for (p = 4293918720lu; ret < (mp_sieve_prime)MP_SIEVE_BIGGEST_PRIME;) {
16661665
#endif
16671666
DO(mp_next_small_prime(p, &ret, &sieve));
1668-
p = ret + 1;
1667+
p = ret + 1u;
16691668
#ifdef MP_64BIT
16701669
mp_set_u64(&t, ret);
16711670
#else
@@ -1680,7 +1679,7 @@ static int test_mp_next_small_prime(void)
16801679
DO(mp_fwrite(&primesum, 10, stdout));
16811680
print_timer(", computed in \n",startgt, stopgt);
16821681
#endif
1683-
1682+
printf("Primesum computed: ");DO(mp_fwrite(&primesum, 10, stdout));puts("");
16841683
DO(mp_read_radix(&t, primesum_32, 10));
16851684
EXPECT(mp_cmp(&primesum, &t) == MP_EQ);
16861685

mp_is_small_prime.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -294,7 +294,7 @@ mp_err mp_is_small_prime(mp_sieve_prime n, mp_sieve_prime *result, mp_sieve *sie
294294
}
295295

296296
/* neither of 2^16-x, 2^32-x, or 2^64-x are prime for 0<=x<=4 */
297-
if (n >= (mp_sieve_prime)(MP_SIEVE_PRIME_MAX - 3)) {
297+
if (n >= (mp_sieve_prime)(MP_SIEVE_PRIME_MAX - 3u)) {
298298
*result = 0uL;
299299
return e;
300300
}

tommath_private.h

Lines changed: 1 addition & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -107,44 +107,15 @@ extern void MP_FREE(void *mem, size_t size);
107107
/* Size of the base sieve of mp_sieve*/
108108

109109
#define MP_SIEVE_PRIME_MAX 0xFFFFFFFFlu
110-
#ifndef MP_SIEVE_PRIME_MAX_SQRT
111110
#define MP_SIEVE_PRIME_MAX_SQRT 0xFFFFlu
112-
#endif
113111
#ifdef MP_64BIT
114112
#define MP_SIEVE_FILL 0xFFFFFFFFFFFFFFFFllu
115113
#else
116114
#define MP_SIEVE_FILL 0xFFFFFFFFlu
117115
#endif
118116

119-
120-
/*
121-
It is faster for random access to set it to a very small number but that qill
122-
cost quite significantly in sequential access and vice versa.
123-
(NB: L1d cache on the author's machine is 16k bytes (0x20000 bits) large)
124-
125-
Building a base sieve with size 0xFFFF needs about 60 usec, random access in a
126-
segment about 100 ns.
127-
128-
MP_SIEVE_RANGE_A_B Random Access Full Primesum
129-
0x7f 70 usec 90 min(!)
130-
0x1000 100 usec 2 min 33 sec
131-
0x4000 150 usec 1 min 18 sec
132-
0xFFFF 350 usec 0 min 57 sec
133-
0x20000 600 usec 0 min 55 sec
134-
0xFFFFFFFF (base sieve only) 300 usec 0 min 35 sec
135-
136-
137-
The default is optimized for random access but adding all primes would also work
138-
in a reasonable time.
139-
*/
140117
/* Size is in bits! */
141-
#ifndef MP_SIEVE_RANGE_A_B
142-
#ifdef MP_64BIT
143-
#define MP_SIEVE_RANGE_A_B 0x1000
144-
#else
145-
#define MP_SIEVE_RANGE_A_B 0x1000
146-
#endif
147-
#endif
118+
#define MP_SIEVE_RANGE_A_B MP_SIEVE_PRIME_MAX_SQRT
148119

149120
#define MP_SIEVE_BASE_SIEVE_SIZE ((mp_sieve_prime)MP_SIEVE_PRIME_MAX_SQRT)
150121

0 commit comments

Comments
 (0)