Tools for generating filters and collections with primes concurrently.
Rust implementation of the Sieve of Atkin.
This implementation runs in O(sqrt(maxnum) + maxnum - minnum), thus it is asymptotically faster than the Sieve of Eratosthenes for finding primes in fixed-sized sections. (fixed-sized section runtime = O(sqrt(maxnum))
Therefore, this implementation will run faster than any implementation of the Sieve of Eratosthenes with the same number of cores for a large enough number of cores, making it ideal for parallel processing.
concurrent_prime_sieve::filter
Rust
fn prime_filter(max_num: usize) -> Vec<bool>
Generates a vector of bools of size max_num, with
true
at each prime index, andfalse
otherwise.The number of threads is based on the number of virtual cores detected.
Rust
fn prime_filter_concurrently(max_num: usize, threads: usize) -> Vec<bool>
Similar to
fn prime_filter
, but allows for a custom number of threads.
Rust
fn prime_filter_sequentially(max_num: usize) -> Vec<bool>
Similar to
fn prime_filter
, but does not spawn any new threads.
Rust
fn prime_filter_section(min_num:usize, max_num: usize) -> Vec<bool>
Similar to
fn prime_filter
, but just for numbers between min and max, returned in a vector of length max-min.
Rust
fn prime_filter_section_concurrently(min_num: usize, max_num: usize, threads: usize) -> Vec<bool>
Similar to
fn prime_filter_section
, but allows for a custom number of threads.
Rust
fn prime_filter_section_sequentially(min_num: usize, max_num: usize) -> Vec<bool>
Similar to
fn prime_filter_section
, but does not spawn any new threads.
concurrent_prime_sieve::collection
Rust
fn primes(max_num: usize) -> Vec<usize>
Generates a vector collection of primes strictly less than max_num.
The number of threads is based on the number of virtual cores detected.
Rust
fn primes_concurrently(max_num:usize, threads:usize) -> Vec<usize>
Similar to
fn primes
, but allows for a custom number of threads.
Rust
fn primes_sequentially(max_num: usize) -> Vec<usize>
Similar to
fn primes
, but does not spawn any new threads.
Rust
fn primes_section(min_num: usize, max_num: usize) -> Vec<usize>
Generates a vector collection of primes between minnum and maxnum.
The number of threads is based on the number of virtual cores detected.
Rust
fn primes_section_concurrently(min_num:usize, max_num:usize, threads:usize) -> Vec<usize>
Similar to
fn primes_section
, but allows for a custom number of threads.
Rust
fn primes_section_sequentially(min_num:usize, max_num:usize, threads:usize) -> Vec<usize>
Similar to
fn primes_section
, but does not spawn any new threads.