文件名称:FastPrimeSieve.jl:Julia中的优化主筛
文件大小:10KB
文件格式:ZIP
更新时间:2024-03-13 05:44:08
prime-numbers Julia
FastPrimeSieve.jl 特征 发现最多n个素数时使用O(2√n/ log(n))内存。 最多存储√n的所有质数。 跳过2、3和5的倍数 通过逐段处理来利用L1缓存(当前一个段为32KB) 使用最少的内存:每个字节代表30个整数的间隔,这意味着仅使用L1高速缓存就可以筛选出最多1_000_000的所有素数。 展开筛分内部循环,这样每次迭代可以删除8个倍数。 通过筛选510510 / 30 = 17017字节的缓冲区,以模2 * 3 * ... * 17 = 510510筛选小质数510510 / 30 = 17017 。 然后将该缓冲区重复复制。 当前功能 大间隔计数素数。 在2^20:2^32范围内应比Primes.jl快10到16倍。 julia > using FastPrimeSieve, BenchmarkTools julia > @btime FastPr
【文件预览】:
FastPrimeSieve.jl-master
----Project.toml(141B)
----.gitignore(14B)
----src()
--------presieve.jl(2KB)
--------FastPrimeSieve.jl(922B)
--------sieve.jl(3KB)
--------sieve_small.jl(3KB)
--------generate_sieving_loop.jl(5KB)
--------siever.jl(2KB)
--------parallel.jl(853B)
----readme.md(3KB)