#[macro_use] extern crate criterion; use criterion::Criterion; const N: usize = 1_000_000; const STEP: usize = 101; fn is_prime(c: &mut Criterion) { let mut group = c.benchmark_group("is_prime"); group.bench_function("is_prime", |b| { b.iter(|| { (1..N) .step_by(STEP) .filter(|&n| primal::is_prime(n as u64)) .count() }) }); group.bench_function("Sieve::is_prime", |b| { let sieve = primal::Sieve::new(N); b.iter(|| (1..N).step_by(STEP).filter(|&n| sieve.is_prime(n)).count()) }); group.bench_function("Sieve::is_prime with init", |b| { b.iter(|| { let sieve = primal::Sieve::new(N); (1..N).step_by(STEP).filter(|&n| sieve.is_prime(n)).count() }) }); group.finish(); } criterion_group!(benches, is_prime); criterion_main!(benches);