added benchmark
This commit is contained in:
@@ -10,6 +10,10 @@ bench = false
|
|||||||
name = "batch"
|
name = "batch"
|
||||||
harness = false
|
harness = false
|
||||||
|
|
||||||
|
[[bench]]
|
||||||
|
name = "gaussian"
|
||||||
|
harness = false
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
approx = { version = "0.5.1", optional = true }
|
approx = { version = "0.5.1", optional = true }
|
||||||
|
|
||||||
|
|||||||
50
benches/gaussian.rs
Normal file
50
benches/gaussian.rs
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
use criterion::{criterion_group, criterion_main, Criterion};
|
||||||
|
use trueskill_tt::gaussian::Gaussian;
|
||||||
|
|
||||||
|
fn benchmark_gaussian_arithmetic(criterion: &mut Criterion) {
|
||||||
|
// Define test Gaussians
|
||||||
|
let g1 = Gaussian::from_ms(25.0, 25.0 / 3.0);
|
||||||
|
let g2 = Gaussian::from_ms(0.0, 1.0);
|
||||||
|
let g3 = Gaussian::from_ms(1.0, 1.0);
|
||||||
|
|
||||||
|
// Benchmark addition
|
||||||
|
criterion.bench_function("Gaussian::add", |bencher| {
|
||||||
|
bencher.iter(|| g1 + g2);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Benchmark subtraction
|
||||||
|
criterion.bench_function("Gaussian::sub", |bencher| {
|
||||||
|
bencher.iter(|| g1 - g3);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Benchmark multiplication
|
||||||
|
criterion.bench_function("Gaussian::mul", |bencher| {
|
||||||
|
bencher.iter(|| g1 * g2);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Benchmark division
|
||||||
|
criterion.bench_function("Gaussian::div", |bencher| {
|
||||||
|
bencher.iter(|| g1 / g2);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Benchmark natural parameter conversions
|
||||||
|
criterion.bench_function("Gaussian::pi", |bencher| {
|
||||||
|
bencher.iter(|| g1.pi());
|
||||||
|
});
|
||||||
|
|
||||||
|
criterion.bench_function("Gaussian::tau", |bencher| {
|
||||||
|
bencher.iter(|| g1.tau());
|
||||||
|
});
|
||||||
|
|
||||||
|
// Benchmark combined pi/tau operations (used in mul/div)
|
||||||
|
criterion.bench_function("Gaussian::pi_tau_combined", |bencher| {
|
||||||
|
bencher.iter(|| {
|
||||||
|
let pi = g1.pi();
|
||||||
|
let tau = g1.tau();
|
||||||
|
(pi, tau)
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
criterion_group!(benches, benchmark_gaussian_arithmetic);
|
||||||
|
criterion_main!(benches);
|
||||||
Reference in New Issue
Block a user