in math/benches/polynom.rs [13:39]
fn syn_div(c: &mut Criterion) {
let mut group = c.benchmark_group("syn_div");
group.sample_size(10);
group.measurement_time(Duration::from_secs(10));
for &size in SIZES.iter() {
let stride = 8;
let mut values: Vec<BaseElement> = rand_vector(size);
for v in values.iter_mut().skip(stride) {
*v = BaseElement::ZERO;
}
let inv_twiddles = fft::get_inv_twiddles::<BaseElement>(size);
fft::interpolate_poly(&mut values, &inv_twiddles);
let p = values;
let z_power = size / stride;
group.bench_function(BenchmarkId::new("high_degree", size), |bench| {
bench.iter_batched_ref(
|| p.clone(),
|mut p| polynom::syn_div(&mut p, z_power, BaseElement::ONE),
BatchSize::LargeInput,
);
});
}
group.finish();
}