line |
true |
false |
branch |
21
|
11 |
1859 |
if ( (startp > UVCONST( 100000000000000) && range < 40000) || |
|
0 |
11 |
if ( (startp > UVCONST( 100000000000000) && range < 40000) || |
|
0 |
1859 |
if ( (startp > UVCONST( 100000000000000) && range < 40000) || |
22
|
0 |
0 |
(startp > UVCONST( 1000000000000000) && range < 150000) || |
|
0 |
1859 |
(startp > UVCONST( 1000000000000000) && range < 150000) || |
23
|
0 |
0 |
(startp > UVCONST( 10000000000000000) && range < 600000) || |
|
0 |
1859 |
(startp > UVCONST( 10000000000000000) && range < 600000) || |
24
|
0 |
0 |
(startp > UVCONST( 100000000000000000) && range < 2500000) || |
|
0 |
1859 |
(startp > UVCONST( 100000000000000000) && range < 2500000) || |
25
|
0 |
0 |
(startp > UVCONST( 1000000000000000000) && range < 10000000) || |
|
0 |
1859 |
(startp > UVCONST( 1000000000000000000) && range < 10000000) || |
26
|
0 |
0 |
(startp > UVCONST(10000000000000000000) && range < 40000000) ) |
123
|
1092 |
141 |
if (to < from) |
125
|
0 |
1233 |
if (dst != src) |
127
|
606 |
1233 |
while (from < to) { |
128
|
141 |
465 |
size_t bytes = (2*from > to) ? to-from : from; |
138
|
1999 |
0 |
MPUassert( (mem != 0) && (endd >= startd), "sieve_prefill bad arguments"); |
|
0 |
1999 |
MPUassert( (mem != 0) && (endd >= startd), "sieve_prefill bad arguments"); |
140
|
824 |
1175 |
if (startd != 0) { |
143
|
766 |
58 |
if (tailbytes > nbytes) tailbytes = nbytes; |
148
|
1233 |
766 |
if (nbytes > 0) { |
151
|
1175 |
58 |
if (startd == 0) mem[0] = 0x01; /* Correct first byte */ |
200
|
14435 |
4221180 |
if (startp == 0) { |
205
|
4218232 |
2948 |
if (p2 < startp) { |
221
|
4098770 |
145863 |
if (w->offset >= bytes) { |
228
|
1594 |
8708 |
CROSS_INDEX( 0, 0,1,2,3,4,5,6,7, 0,0,0,0,0,0,0,1, 1); break; |
|
2927 |
8343 |
CROSS_INDEX( 0, 0,1,2,3,4,5,6,7, 0,0,0,0,0,0,0,1, 1); break; |
|
2347 |
8106 |
CROSS_INDEX( 0, 0,1,2,3,4,5,6,7, 0,0,0,0,0,0,0,1, 1); break; |
|
1530 |
7946 |
CROSS_INDEX( 0, 0,1,2,3,4,5,6,7, 0,0,0,0,0,0,0,1, 1); break; |
|
2398 |
7585 |
CROSS_INDEX( 0, 0,1,2,3,4,5,6,7, 0,0,0,0,0,0,0,1, 1); break; |
|
1613 |
7406 |
CROSS_INDEX( 0, 0,1,2,3,4,5,6,7, 0,0,0,0,0,0,0,1, 1); break; |
|
2203 |
7303 |
CROSS_INDEX( 0, 0,1,2,3,4,5,6,7, 0,0,0,0,0,0,0,1, 1); break; |
|
2991 |
7018 |
CROSS_INDEX( 0, 0,1,2,3,4,5,6,7, 0,0,0,0,0,0,0,1, 1); break; |
|
534276 |
7018 |
CROSS_INDEX( 0, 0,1,2,3,4,5,6,7, 0,0,0,0,0,0,0,1, 1); break; |
229
|
1587 |
7145 |
CROSS_INDEX( 8, 1,5,4,0,7,3,2,6, 1,1,1,0,1,1,1,1, 7); break; |
|
2980 |
8654 |
CROSS_INDEX( 8, 1,5,4,0,7,3,2,6, 1,1,1,0,1,1,1,1, 7); break; |
|
2586 |
8141 |
CROSS_INDEX( 8, 1,5,4,0,7,3,2,6, 1,1,1,0,1,1,1,1, 7); break; |
|
1481 |
8071 |
CROSS_INDEX( 8, 1,5,4,0,7,3,2,6, 1,1,1,0,1,1,1,1, 7); break; |
|
2258 |
8058 |
CROSS_INDEX( 8, 1,5,4,0,7,3,2,6, 1,1,1,0,1,1,1,1, 7); break; |
|
1583 |
7932 |
CROSS_INDEX( 8, 1,5,4,0,7,3,2,6, 1,1,1,0,1,1,1,1, 7); break; |
|
2436 |
7666 |
CROSS_INDEX( 8, 1,5,4,0,7,3,2,6, 1,1,1,0,1,1,1,1, 7); break; |
|
3026 |
7323 |
CROSS_INDEX( 8, 1,5,4,0,7,3,2,6, 1,1,1,0,1,1,1,1, 7); break; |
|
563829 |
7323 |
CROSS_INDEX( 8, 1,5,4,0,7,3,2,6, 1,1,1,0,1,1,1,1, 7); break; |
230
|
1530 |
7311 |
CROSS_INDEX(16, 2,4,0,6,1,7,3,5, 2,2,0,2,0,2,2,1, 11); break; |
|
3159 |
6886 |
CROSS_INDEX(16, 2,4,0,6,1,7,3,5, 2,2,0,2,0,2,2,1, 11); break; |
|
2493 |
8240 |
CROSS_INDEX(16, 2,4,0,6,1,7,3,5, 2,2,0,2,0,2,2,1, 11); break; |
|
1571 |
8048 |
CROSS_INDEX(16, 2,4,0,6,1,7,3,5, 2,2,0,2,0,2,2,1, 11); break; |
|
2537 |
7656 |
CROSS_INDEX(16, 2,4,0,6,1,7,3,5, 2,2,0,2,0,2,2,1, 11); break; |
|
1401 |
7711 |
CROSS_INDEX(16, 2,4,0,6,1,7,3,5, 2,2,0,2,0,2,2,1, 11); break; |
|
2349 |
7443 |
CROSS_INDEX(16, 2,4,0,6,1,7,3,5, 2,2,0,2,0,2,2,1, 11); break; |
|
2759 |
7366 |
CROSS_INDEX(16, 2,4,0,6,1,7,3,5, 2,2,0,2,0,2,2,1, 11); break; |
|
534544 |
7366 |
CROSS_INDEX(16, 2,4,0,6,1,7,3,5, 2,2,0,2,0,2,2,1, 11); break; |
231
|
1634 |
7063 |
CROSS_INDEX(24, 3,0,6,5,2,1,7,4, 3,1,1,2,1,1,3,1, 13); break; |
|
2996 |
6675 |
CROSS_INDEX(24, 3,0,6,5,2,1,7,4, 3,1,1,2,1,1,3,1, 13); break; |
|
2310 |
6442 |
CROSS_INDEX(24, 3,0,6,5,2,1,7,4, 3,1,1,2,1,1,3,1, 13); break; |
|
1587 |
7992 |
CROSS_INDEX(24, 3,0,6,5,2,1,7,4, 3,1,1,2,1,1,3,1, 13); break; |
|
2273 |
7798 |
CROSS_INDEX(24, 3,0,6,5,2,1,7,4, 3,1,1,2,1,1,3,1, 13); break; |
|
1555 |
7693 |
CROSS_INDEX(24, 3,0,6,5,2,1,7,4, 3,1,1,2,1,1,3,1, 13); break; |
|
2344 |
7596 |
CROSS_INDEX(24, 3,0,6,5,2,1,7,4, 3,1,1,2,1,1,3,1, 13); break; |
|
3083 |
7220 |
CROSS_INDEX(24, 3,0,6,5,2,1,7,4, 3,1,1,2,1,1,3,1, 13); break; |
|
515612 |
7220 |
CROSS_INDEX(24, 3,0,6,5,2,1,7,4, 3,1,1,2,1,1,3,1, 13); break; |
232
|
1716 |
8099 |
CROSS_INDEX(32, 4,7,1,2,5,6,0,3, 3,3,1,2,1,3,3,1, 17); break; |
|
3214 |
7641 |
CROSS_INDEX(32, 4,7,1,2,5,6,0,3, 3,3,1,2,1,3,3,1, 17); break; |
|
2510 |
7348 |
CROSS_INDEX(32, 4,7,1,2,5,6,0,3, 3,3,1,2,1,3,3,1, 17); break; |
|
1656 |
7115 |
CROSS_INDEX(32, 4,7,1,2,5,6,0,3, 3,3,1,2,1,3,3,1, 17); break; |
|
2407 |
9846 |
CROSS_INDEX(32, 4,7,1,2,5,6,0,3, 3,3,1,2,1,3,3,1, 17); break; |
|
1630 |
9719 |
CROSS_INDEX(32, 4,7,1,2,5,6,0,3, 3,3,1,2,1,3,3,1, 17); break; |
|
2785 |
9079 |
CROSS_INDEX(32, 4,7,1,2,5,6,0,3, 3,3,1,2,1,3,3,1, 17); break; |
|
3348 |
8331 |
CROSS_INDEX(32, 4,7,1,2,5,6,0,3, 3,3,1,2,1,3,3,1, 17); break; |
|
784293 |
8331 |
CROSS_INDEX(32, 4,7,1,2,5,6,0,3, 3,3,1,2,1,3,3,1, 17); break; |
233
|
1517 |
7583 |
CROSS_INDEX(40, 5,3,7,1,6,0,4,2, 4,2,2,2,2,2,4,1, 19); break; |
|
2900 |
7292 |
CROSS_INDEX(40, 5,3,7,1,6,0,4,2, 4,2,2,2,2,2,4,1, 19); break; |
|
2525 |
6850 |
CROSS_INDEX(40, 5,3,7,1,6,0,4,2, 4,2,2,2,2,2,4,1, 19); break; |
|
1635 |
6599 |
CROSS_INDEX(40, 5,3,7,1,6,0,4,2, 4,2,2,2,2,2,4,1, 19); break; |
|
2367 |
6402 |
CROSS_INDEX(40, 5,3,7,1,6,0,4,2, 4,2,2,2,2,2,4,1, 19); break; |
|
1724 |
8662 |
CROSS_INDEX(40, 5,3,7,1,6,0,4,2, 4,2,2,2,2,2,4,1, 19); break; |
|
2486 |
8316 |
CROSS_INDEX(40, 5,3,7,1,6,0,4,2, 4,2,2,2,2,2,4,1, 19); break; |
|
3226 |
7734 |
CROSS_INDEX(40, 5,3,7,1,6,0,4,2, 4,2,2,2,2,2,4,1, 19); break; |
|
648619 |
7734 |
CROSS_INDEX(40, 5,3,7,1,6,0,4,2, 4,2,2,2,2,2,4,1, 19); break; |
234
|
1550 |
7965 |
CROSS_INDEX(48, 6,2,3,7,0,4,5,1, 5,3,1,4,1,3,5,1, 23); break; |
|
3279 |
7419 |
CROSS_INDEX(48, 6,2,3,7,0,4,5,1, 5,3,1,4,1,3,5,1, 23); break; |
|
2516 |
6953 |
CROSS_INDEX(48, 6,2,3,7,0,4,5,1, 5,3,1,4,1,3,5,1, 23); break; |
|
1589 |
6799 |
CROSS_INDEX(48, 6,2,3,7,0,4,5,1, 5,3,1,4,1,3,5,1, 23); break; |
|
2585 |
6544 |
CROSS_INDEX(48, 6,2,3,7,0,4,5,1, 5,3,1,4,1,3,5,1, 23); break; |
|
1652 |
6396 |
CROSS_INDEX(48, 6,2,3,7,0,4,5,1, 5,3,1,4,1,3,5,1, 23); break; |
|
2428 |
8725 |
CROSS_INDEX(48, 6,2,3,7,0,4,5,1, 5,3,1,4,1,3,5,1, 23); break; |
|
3336 |
8101 |
CROSS_INDEX(48, 6,2,3,7,0,4,5,1, 5,3,1,4,1,3,5,1, 23); break; |
|
699072 |
8101 |
CROSS_INDEX(48, 6,2,3,7,0,4,5,1, 5,3,1,4,1,3,5,1, 23); break; |
235
|
1569 |
7598 |
CROSS_INDEX(56, 7,6,5,4,3,2,1,0, 6,4,2,4,2,4,6,1, 29); break; |
|
3352 |
7017 |
CROSS_INDEX(56, 7,6,5,4,3,2,1,0, 6,4,2,4,2,4,6,1, 29); break; |
|
2391 |
6715 |
CROSS_INDEX(56, 7,6,5,4,3,2,1,0, 6,4,2,4,2,4,6,1, 29); break; |
|
1556 |
6652 |
CROSS_INDEX(56, 7,6,5,4,3,2,1,0, 6,4,2,4,2,4,6,1, 29); break; |
|
2405 |
6371 |
CROSS_INDEX(56, 7,6,5,4,3,2,1,0, 6,4,2,4,2,4,6,1, 29); break; |
|
1561 |
6198 |
CROSS_INDEX(56, 7,6,5,4,3,2,1,0, 6,4,2,4,2,4,6,1, 29); break; |
|
2359 |
5918 |
CROSS_INDEX(56, 7,6,5,4,3,2,1,0, 6,4,2,4,2,4,6,1, 29); break; |
|
2968 |
7726 |
CROSS_INDEX(56, 7,6,5,4,3,2,1,0, 6,4,2,4,2,4,6,1, 29); break; |
|
613789 |
7726 |
CROSS_INDEX(56, 7,6,5,4,3,2,1,0, 6,4,2,4,2,4,6,1, 29); break; |
256
|
10461 |
98 |
for ( ; prime <= limit; prime = next_prime_in_sieve(mem,prime,end)) { |
269
|
269 |
0 |
UV endp = (endd >= (UV_MAX/30)) ? UV_MAX-2 : 30*endd+29; |
270
|
269 |
0 |
MPUassert( (mem != 0) && (endd >= startd) && (endp >= startp), |
|
269 |
0 |
MPUassert( (mem != 0) && (endd >= startd) && (endp >= startp), |
|
0 |
269 |
MPUassert( (mem != 0) && (endd >= startd) && (endp >= startp), |
275
|
246 |
23 |
if (sieve_size >= endp) { |
285
|
0 |
23 |
if (limit > max_sieve_prime) limit = max_sieve_prime; |
287
|
0 |
23 |
if (do_partial_sieve(startp, endp)) |
288
|
0 |
0 |
slimit >>= ((startp < (UV)1e16) ? 8 : 10); |
290
|
0 |
23 |
if (slimit > sieve_size) { |
295
|
77228 |
0 |
START_DO_FOR_EACH_SIEVE_PRIME(sieve, 0, start_base_prime, slimit) { |
|
23 |
77205 |
START_DO_FOR_EACH_SIEVE_PRIME(sieve, 0, start_base_prime, slimit) { |
|
77136 |
69 |
START_DO_FOR_EACH_SIEVE_PRIME(sieve, 0, start_base_prime, slimit) { |
|
77228 |
3685 |
START_DO_FOR_EACH_SIEVE_PRIME(sieve, 0, start_base_prime, slimit) { |
|
3708 |
23 |
START_DO_FOR_EACH_SIEVE_PRIME(sieve, 0, start_base_prime, slimit) { |
301
|
0 |
23 |
if (limit > slimit) { /* We've sieved out most composites, but not all. */ |
302
|
0 |
0 |
START_DO_FOR_EACH_SIEVE_PRIME(mem, 0, 0, endp-startp) { |
|
0 |
0 |
START_DO_FOR_EACH_SIEVE_PRIME(mem, 0, 0, endp-startp) { |
|
0 |
0 |
START_DO_FOR_EACH_SIEVE_PRIME(mem, 0, 0, endp-startp) { |
|
0 |
0 |
START_DO_FOR_EACH_SIEVE_PRIME(mem, 0, 0, endp-startp) { |
|
0 |
0 |
START_DO_FOR_EACH_SIEVE_PRIME(mem, 0, 0, endp-startp) { |
303
|
0 |
0 |
if (!BPSW(startp + p)) /* If the candidate is not prime, */ |
315
|
1878 |
0 |
UV endp = (endd >= (UV_MAX/30)) ? UV_MAX-2 : 30*endd+29; |
316
|
1878 |
0 |
MPUassert( (mem != 0) && (endd >= startd) && (endp >= startp), |
|
1878 |
0 |
MPUassert( (mem != 0) && (endd >= startd) && (endp >= startp), |
|
0 |
1878 |
MPUassert( (mem != 0) && (endd >= startd) && (endp >= startp), |
323
|
12673 |
239 |
while (i < wsize && warray[i].prime < start_base_prime) |
|
11034 |
1639 |
while (i < wsize && warray[i].prime < start_base_prime) |
327
|
0 |
1878 |
if (limit > max_sieve_prime) limit = max_sieve_prime; |
329
|
4158664 |
250 |
while (i < wsize && warray[i].prime <= limit) { |
|
4157036 |
1628 |
while (i < wsize && warray[i].prime <= limit) { |
330
|
4148018 |
9018 |
if (warray[i].index >= 64) |
335
|
11 |
1867 |
if (limit > warray[wsize-1].prime && warray[wsize-1].prime < max_sieve_prime) { |
|
11 |
0 |
if (limit > warray[wsize-1].prime && warray[wsize-1].prime < max_sieve_prime) { |
336
|
6882 |
0 |
START_DO_FOR_EACH_SIEVE_PRIME(mem, 0, 0, endp-startp) { |
|
11 |
6871 |
START_DO_FOR_EACH_SIEVE_PRIME(mem, 0, 0, endp-startp) { |
|
6871 |
0 |
START_DO_FOR_EACH_SIEVE_PRIME(mem, 0, 0, endp-startp) { |
|
6882 |
594 |
START_DO_FOR_EACH_SIEVE_PRIME(mem, 0, 0, endp-startp) { |
|
605 |
11 |
START_DO_FOR_EACH_SIEVE_PRIME(mem, 0, 0, endp-startp) { |
337
|
2789 |
4082 |
if (!BPSW(startp + p)) /* If the candidate is not prime, */ |
382
|
0 |
1847 |
MPUassert( high >= low, "start_segment_primes bad arguments"); |
388
|
1847 |
0 |
ctx->endp = (ctx->hid >= (UV_MAX/30)) ? UV_MAX-2 : 30*ctx->hid+29; |
392
|
26 |
1821 |
if (high > 1e10 && range > 32*1024-16) { |
|
0 |
26 |
if (high > 1e10 && range > 32*1024-16) { |
396
|
0 |
0 |
if (size < 128*1024) size = 128*1024; |
399
|
0 |
0 |
size = (div <= 1) ? range : (range+div-1)/div; |
408
|
0 |
1847 |
if (_XS_get_verbose() >= 2) |
424
|
11 |
1836 |
if (do_partial_sieve(low, high)) |
425
|
5 |
6 |
limit >>= ((low < (UV)1e16) ? 8 : 10); |
426
|
1847 |
0 |
if (limit <= maxsieve) { |
431
|
0 |
1847 |
if (_XS_get_verbose() >= 4) |
433
|
0 |
1847 |
New(0, warray, nprimes, wheel_t); |
434
|
0 |
1847 |
START_DO_FOR_EACH_PRIME(0,limit) { |
|
5541 |
4156769 |
START_DO_FOR_EACH_PRIME(0,limit) { |
|
3694 |
1847 |
START_DO_FOR_EACH_PRIME(0,limit) { |
|
1847 |
1847 |
START_DO_FOR_EACH_PRIME(0,limit) { |
|
1818296 |
2338473 |
START_DO_FOR_EACH_PRIME(0,limit) { |
|
516 |
1972667 |
START_DO_FOR_EACH_PRIME(0,limit) { |
|
154887 |
1817780 |
START_DO_FOR_EACH_PRIME(0,limit) { |
|
516 |
1817780 |
START_DO_FOR_EACH_PRIME(0,limit) { |
|
0 |
4156253 |
START_DO_FOR_EACH_PRIME(0,limit) { |
|
1331 |
4160463 |
START_DO_FOR_EACH_PRIME(0,limit) { |
435
|
0 |
4160463 |
if (wsize >= nprimes) croak("segment bad upper count"); |
453
|
1774 |
1878 |
if (ctx->lod > ctx->hid) return 0; |
457
|
1847 |
31 |
: (ctx->lod + ctx->segment_size - 1); |
460
|
1847 |
31 |
*high = (seghigh_d == ctx->hid) ? ctx->high : (seghigh_d*30 + 29); |
463
|
0 |
1878 |
MPUassert( seghigh_d >= ctx->lod, "next_segment_primes: highd < lowd"); |
464
|
0 |
1878 |
MPUassert( range_d <= ctx->segment_size, "next_segment_primes: range > segment size"); |
466
|
1878 |
0 |
if (ctx->warray != 0) |
480
|
0 |
1847 |
MPUassert(ctx != 0, "end_segment_primes given a null pointer"); |
481
|
1847 |
0 |
if (ctx->segment != 0) { |
485
|
0 |
1847 |
if (ctx->base != 0) { |
489
|
1847 |
0 |
if (ctx->warray != 0) { |