use criterion::{criterion_group, criterion_main, Criterion, black_box};
use kuro::{F2_8, F2_16, F2_32, F2_64, F2_128, Packed128};
fn bench_add(c: &mut Criterion) {
let a = F2_128(0xDEADBEEFCAFEBABE_1234567890ABCDEF);
let b = F2_128(0x0123456789ABCDEF_FEDCBA9876543210);
c.bench_function("F2_128::add", |bench| {
bench.iter(|| black_box(a).add(black_box(b)))
});
}
fn bench_mul_128(c: &mut Criterion) {
let a = F2_128(0xDEADBEEFCAFEBABE_1234567890ABCDEF);
let b = F2_128(0x0123456789ABCDEF_FEDCBA9876543210);
c.bench_function("F2_128::mul", |bench| {
bench.iter(|| black_box(a).mul(black_box(b)))
});
}
fn bench_mul_64(c: &mut Criterion) {
let a = F2_64(0xDEADBEEFCAFEBABE);
let b = F2_64(0x0123456789ABCDEF);
c.bench_function("F2_64::mul", |bench| {
bench.iter(|| black_box(a).mul(black_box(b)))
});
}
fn bench_mul_32(c: &mut Criterion) {
let a = F2_32(0xDEADBEEF);
let b = F2_32(0xCAFEBABE);
c.bench_function("F2_32::mul", |bench| {
bench.iter(|| black_box(a).mul(black_box(b)))
});
}
fn bench_inv_128(c: &mut Criterion) {
let a = F2_128(0xDEADBEEFCAFEBABE_1234567890ABCDEF);
c.bench_function("F2_128::inv", |bench| {
bench.iter(|| black_box(a).inv())
});
}
fn bench_inv_64(c: &mut Criterion) {
let a = F2_64(0xDEADBEEFCAFEBABE);
c.bench_function("F2_64::inv", |bench| {
bench.iter(|| black_box(a).inv())
});
}
fn bench_square_128(c: &mut Criterion) {
let a = F2_128(0xDEADBEEFCAFEBABE_1234567890ABCDEF);
c.bench_function("F2_128::square", |bench| {
bench.iter(|| black_box(a).square())
});
}
fn bench_packed_inner_product(c: &mut Criterion) {
let a = Packed128(0xDEADBEEFCAFEBABE_1234567890ABCDEF);
let b = Packed128(0x0123456789ABCDEF_FEDCBA9876543210);
c.bench_function("Packed128::inner_product", |bench| {
bench.iter(|| black_box(a).inner_product(black_box(b)))
});
}
fn bench_packed_popcount(c: &mut Criterion) {
let a = Packed128(0xDEADBEEFCAFEBABE_1234567890ABCDEF);
c.bench_function("Packed128::popcount", |bench| {
bench.iter(|| black_box(a).popcount())
});
}
criterion_group!(
benches,
bench_add,
bench_mul_128,
bench_mul_64,
bench_mul_32,
bench_inv_128,
bench_inv_64,
bench_square_128,
bench_packed_inner_product,
bench_packed_popcount,
);
criterion_main!(benches);
kuro/rs/benches/tower.rs
ฯ 0.0%
use ;
use ;
criterion_group!;
criterion_main!;