use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion};
use oxinum_float::native::{e_const, ln2, pi};
fn bench_pi(c: &mut Criterion) {
let mut group = c.benchmark_group("pi");
for prec in [100u32, 500, 1000, 3322] {
group.bench_with_input(BenchmarkId::from_parameter(prec), &prec, |bench, &prec| {
bench.iter(|| pi(prec).expect("pi"))
});
}
group.finish();
}
fn bench_e_const(c: &mut Criterion) {
let mut group = c.benchmark_group("e_const");
for prec in [100u32, 500, 1000, 3322] {
group.bench_with_input(BenchmarkId::from_parameter(prec), &prec, |bench, &prec| {
bench.iter(|| e_const(prec).expect("e_const"))
});
}
group.finish();
}
fn bench_ln2(c: &mut Criterion) {
let mut group = c.benchmark_group("ln2");
for prec in [100u32, 500, 1000, 3322] {
group.bench_with_input(BenchmarkId::from_parameter(prec), &prec, |bench, &prec| {
bench.iter(|| ln2(prec).expect("ln2"))
});
}
group.finish();
}
criterion_group!(benches, bench_pi, bench_e_const, bench_ln2);
criterion_main!(benches);