Legendre prime counting function: Difference between revisions

Content added Content deleted
(→‎Iterative, partial sieving: Changed two variable names to align with V of which it is a translation.)
(→‎Iterative, partial sieving: Changed 2 variable names to align with V of which it is a translation.)
Line 3,314: Line 3,314:
var nri = 0
var nri = 0
for (ori in 0...rilmt) {
for (ori in 0...rilmt) {
var q = roughs[ori]
var r = roughs[ori]
var pi = q >> 1
var rci = r >> 1
if ((cullbuf[pi >> 3] & masks[pi & 7]) != 0) continue
if ((cullbuf[rci >> 3] & masks[rci & 7]) != 0) continue
var d = q * bp
var d = r * bp
var t = (d <= rtlmt) ? larges[smalls[d >> 1] - nbps] :
var t = (d <= rtlmt) ? larges[smalls[d >> 1] - nbps] :
smalls[half.call(Int.quo(n, d))]
smalls[half.call(Int.quo(n, d))]
larges[nri] = larges[ori] - t + nbps
larges[nri] = larges[ori] - t + nbps
roughs[nri] = q
roughs[nri] = r
nri = nri + 1
nri = nri + 1
}
}