| line |
true |
false |
branch |
|
46
|
37 |
381 |
FAST_SMALL_NTH(n); |
|
|
37 |
0 |
FAST_SMALL_NTH(n); |
|
48
|
359 |
22 |
if (n < 12581) { |
|
49
|
349 |
10 |
if (n < 168) R = ramanujan_axler(n, -4.7691, -6.2682); |
|
50
|
8 |
2 |
else if (n < 2290) R = ramanujan_axler(n, -0.9315, -0.5635); |
|
51
|
1 |
1 |
else if (n < 5225) R = ramanujan_axler(n, -0.5318, -0.0710); |
|
52
|
1 |
0 |
else if (n < 12581) R = ramanujan_axler(n, 0.1212, 0.7973); |
|
55
|
0 |
22 |
if (n < 18175) D = 0.3548; |
|
56
|
10 |
12 |
else if (n < 82883) D = -0.2450; |
|
57
|
2 |
10 |
else if (n < 316314) D = -0.6384; |
|
58
|
0 |
10 |
else if (n < 1000001) D = -0.9353; |
|
59
|
2 |
8 |
else if (n < 4000001) D = -1.1271; |
|
60
|
8 |
0 |
else if (n < 16000001) D = -1.4152; |
|
61
|
0 |
0 |
else if (n < 64000001) D = -1.6671; |
|
62
|
0 |
0 |
else if (n < 128000001) D = -1.8855; |
|
63
|
0 |
0 |
else if (n < 256000001) D = -1.9325; |
|
64
|
0 |
0 |
else if (n < 384000001) D = -2.0190; |
|
65
|
0 |
0 |
else if (n < 512000001) D = -2.0310; |
|
68
|
0 |
0 |
if (n > UVCONST( 3999654659)) D = -2.235; |
|
70
|
0 |
0 |
if (n > UVCONST( 84086679236)) D = -2.435; |
|
71
|
0 |
0 |
if (n > UVCONST( 514808375201)) D = -2.535; |
|
72
|
0 |
0 |
if (n > UVCONST( 3594243587299)) D = -2.635; |
|
73
|
0 |
0 |
if (n > UVCONST( 28330126673435)) D = -2.735; |
|
74
|
0 |
0 |
if (n > UVCONST(117462814829787)) D = -2.8; |
|
84
|
55 |
407 |
FAST_SMALL_NTH(n); |
|
|
55 |
0 |
FAST_SMALL_NTH(n); |
|
86
|
388 |
19 |
if (n < 34816) { |
|
87
|
375 |
13 |
if (n < 189) R = ramanujan_axler(n, 4.2720, 0.340); |
|
88
|
8 |
5 |
else if (n < 1245) R = ramanujan_axler(n, -0.2179, -6.179); |
|
89
|
1 |
4 |
else if (n < 2984) R = ramanujan_axler(n, 0.1446, -4.8693); |
|
90
|
1 |
3 |
else if (n < 14303) R = ramanujan_axler(n, -0.3570, -5.1154); |
|
91
|
3 |
0 |
else if (n < 34816) R = ramanujan_axler(n, -1.5770, -7.5332); |
|
95
|
7 |
12 |
if (n < 76400) D = 0.0126; |
|
96
|
2 |
10 |
else if (n < 280816) D = 0.5132; |
|
97
|
0 |
10 |
else if (n < 915887) D = 0.9967; |
|
98
|
2 |
8 |
else if (n < 4000001) D = 1.5004; |
|
99
|
8 |
0 |
else if (n < 16000001) D = 1.7184; |
|
100
|
0 |
0 |
else if (n < 64000001) D = 1.9860; |
|
101
|
0 |
0 |
else if (n < 128000001) D = 2.1352; |
|
102
|
0 |
0 |
else if (n < 256000001) D = 2.1658; |
|
103
|
0 |
0 |
else if (n < 384000001) D = 2.1999; |
|
104
|
0 |
0 |
else if (n < 512000001) D = 2.2047; |
|
105
|
0 |
0 |
else if (n < 640000001) D = 2.2324; |
|
109
|
0 |
0 |
if (n > UVCONST( 14888378285)) D = 2.29; |
|
110
|
0 |
0 |
if (n > UVCONST( 467037926604)) D = 2.31; |
|
111
|
0 |
0 |
if (n > UVCONST( 2778491401197)) D = 2.315; |
|
112
|
0 |
0 |
if (n > UVCONST( 10656144781918)) D = 2.317; |
|
113
|
0 |
0 |
if (n > UVCONST( 63698770351741)) D = 2.319; |
|
124
|
36 |
53 |
FAST_SMALL_COUNT(n); |
|
|
35 |
312 |
FAST_SMALL_COUNT(n); |
|
|
347 |
1 |
FAST_SMALL_COUNT(n); |
|
132
|
35 |
54 |
FAST_SMALL_COUNT(n); |
|
|
34 |
322 |
FAST_SMALL_COUNT(n); |
|
|
356 |
1 |
FAST_SMALL_COUNT(n); |
|
143
|
0 |
24 |
FAST_SMALL_COUNT(n); |
|
|
0 |
0 |
FAST_SMALL_COUNT(n); |
|
|
0 |
0 |
FAST_SMALL_COUNT(n); |
|
151
|
0 |
2 |
FAST_SMALL_NTH(n); |
|
|
0 |
0 |
FAST_SMALL_NTH(n); |
|
165
|
6 |
23 |
if (n <= NSMALL_RAM) { |
|
166
|
0 |
6 |
New(0, L, n, UV); |
|
167
|
33 |
6 |
for (k = 0; k < n; k++) |
|
173
|
0 |
23 |
MPUverbose(2, "sieving to %"UVuf" for first %"UVuf" Ramanujan primes\n", max, n); |
|
174
|
0 |
23 |
Newz(0, L, n, UV); |
|
177
|
5007 |
23 |
for (s = 0, k = 7; k <= max; k += 2) { |
|
178
|
1887 |
3120 |
if (is_prime_in_sieve(sieve, k)) s++; |
|
179
|
4640 |
367 |
if (s < n) L[s] = k+1; |
|
180
|
2497 |
2510 |
if ((k & 3) == 1 && is_prime_in_sieve(sieve, (k+1)>>1)) s--; |
|
|
1034 |
1463 |
if ((k & 3) == 1 && is_prime_in_sieve(sieve, (k+1)>>1)) s--; |
|
181
|
4673 |
334 |
if (s < n) L[s] = k+2; |
|
190
|
0 |
155 |
if (nlo == 0) nlo = 1; |
|
191
|
0 |
155 |
if (nhi == 0) nhi = 1; |
|
194
|
29 |
126 |
if (nlo == 1) return n_ramanujan_primes(nhi); |
|
196
|
0 |
126 |
Newz(0, L, nhi-nlo+1, UV); |
|
197
|
0 |
126 |
if (nlo <= 1 && nhi >= 1) L[1-nlo] = 2; |
|
|
0 |
0 |
if (nlo <= 1 && nhi >= 1) L[1-nlo] = 2; |
|
198
|
7 |
119 |
if (nlo <= 2 && nhi >= 2) L[2-nlo] = 11; |
|
|
7 |
0 |
if (nlo <= 2 && nhi >= 2) L[2-nlo] = 11; |
|
199
|
1 |
125 |
if (nhi < 3) return L; |
|
204
|
6 |
119 |
if (mink < 15) mink = 15; |
|
205
|
114 |
11 |
if (mink % 2 == 0) mink--; |
|
206
|
0 |
125 |
MPUverbose(2, "Rn[%"UVuf"] to Rn[%"UVuf"] Noe's: %"UVuf" to %"UVuf"\n", nlo, nhi, mink, maxk); |
|
213
|
125 |
125 |
while (next_segment_primes(ctx, &seg_base, &seg_low, &seg_high)) { |
|
217
|
125 |
0 |
if (new_size > seg2size) { |
|
218
|
0 |
125 |
if (seg2size > 0) Safefree(seg2); |
|
223
|
87593 |
125 |
for (k = seg_low; k <= seg_high; k += 2) { |
|
224
|
14157 |
73436 |
if (is_prime_in_sieve(segment, k-seg_base)) s++; |
|
225
|
50553 |
37040 |
if (s >= nlo && s <= nhi) L[s-nlo] = k+1; |
|
|
22005 |
28548 |
if (s >= nlo && s <= nhi) L[s-nlo] = k+1; |
|
226
|
43802 |
43791 |
if ((k & 3) == 1 && is_prime_in_sieve(seg2, ((k+1)>>1)-seg2beg)) s--; |
|
|
7463 |
36339 |
if ((k & 3) == 1 && is_prime_in_sieve(seg2, ((k+1)>>1)-seg2beg)) s--; |
|
227
|
50477 |
37116 |
if (s >= nlo && s <= nhi) L[s-nlo] = k+2; |
|
|
22072 |
28405 |
if (s >= nlo && s <= nhi) L[s-nlo] = k+2; |
|
233
|
0 |
125 |
MPUverbose(2, "Generated %"UVuf" Ramanujan primes from %"UVuf" to %"UVuf"\n", nhi-nlo+1, L[0], L[nhi-nlo]); |
|
242
|
15 |
0 |
if (high < 2 || high < low) return 0; |
|
|
0 |
15 |
if (high < 2 || high < low) return 0; |
|
243
|
0 |
15 |
if (low < 2) low = 2; |
|
250
|
35 |
15 |
for (lo = 0, hi = nhi-nlo+1; lo < hi; ) { |
|
252
|
10 |
25 |
if (L[mid] < low) lo = mid+1; |
|
257
|
23 |
15 |
for (hi = nhi-nlo+1; lo < hi; ) { |
|
259
|
19 |
4 |
if (L[mid] <= high) lo = mid+1; |
|
270
|
15 |
0 |
if (L == 0 || first > last) { *list = 0; return 0; } |
|
|
1 |
14 |
if (L == 0 || first > last) { *list = 0; return 0; } |
|
271
|
8 |
6 |
if (first > 0) |
|
281
|
0 |
88 |
MPUverbose(1, "ramanujan_prime_count calculating Pi(%"UVuf")\n",n); |
|
285
|
0 |
88 |
if (n > 1000000000U) winmult = 16; |
|
289
|
66 |
22 |
swin = (v <= window) ? 1 : v-window; |
|
293
|
88 |
0 |
if (L[0] < n && L[wlen-1] > n) { |
|
|
88 |
0 |
if (L[0] < n && L[wlen-1] > n) { |
|
295
|
1645 |
0 |
for (i = 1; i < wlen; i++) |
|
296
|
88 |
1557 |
if (L[i] > n && L[i-1] <= n) |
|
|
88 |
0 |
if (L[i] > n && L[i-1] <= n) |
|
298
|
88 |
0 |
if (i < wlen) break; |
|
301
|
0 |
0 |
MPUverbose(1, " %s increasing window\n", "ramanujan_prime_count"); |
|
312
|
23 |
52 |
FAST_SMALL_NTH(n); |
|
|
23 |
0 |
FAST_SMALL_NTH(n); |
|
323
|
818 |
166 |
if (!is_prime(n)) return 0; |
|
324
|
6 |
160 |
if (n < 17) return (n == 2 || n == 11); |
|
|
5 |
1 |
if (n < 17) return (n == 2 || n == 11); |
|
|
1 |
4 |
if (n < 17) return (n == 2 || n == 11); |
|
327
|
17 |
143 |
if (is_prime(n/2+1)) return 0; |
|
329
|
201 |
79 |
for (i = 2; i <= d; i++) |
|
330
|
64 |
137 |
if (is_prime(n/2+i)) return 0; |
|
370
|
12 |
0 |
UV swin, rn, *L, log2 = log2floor(n); |
|
372
|
1 |
11 |
if ((n & (n-1)) == 0 && log2 <= RAMPC2) /* Powers of two from table */ |
|
|
1 |
0 |
if ((n & (n-1)) == 0 && log2 <= RAMPC2) /* Powers of two from table */ |
|
374
|
2 |
9 |
FAST_SMALL_COUNT(n); |
|
|
2 |
6 |
FAST_SMALL_COUNT(n); |
|
|
8 |
0 |
FAST_SMALL_COUNT(n); |
|
383
|
10 |
0 |
if (hi < 2 || hi < lo) return 0; |
|
|
0 |
10 |
if (hi < 2 || hi < lo) return 0; |
|
384
|
2 |
8 |
return ramanujan_prime_count(hi) - ((lo <= 2) ? 0 : ramanujan_prime_count(lo-1)); |