in math/benches/fft.rs [56:90]
fn fft_interpolate_poly<B, E>(c: &mut Criterion, field_name: &str)
where
B: StarkField,
E: FieldElement<BaseField = B>,
{
let mut group = c.benchmark_group(format!("{}/fft_interpolate_poly", field_name));
group.sample_size(10);
group.measurement_time(Duration::from_secs(10));
for &size in SIZES.iter() {
let p: Vec<E> = rand_vector(size);
let inv_twiddles: Vec<B> = fft::get_inv_twiddles(size);
group.bench_function(BenchmarkId::new("simple", size), |bench| {
bench.iter_batched_ref(
|| p.clone(),
|mut p| fft::interpolate_poly(&mut p, &inv_twiddles),
BatchSize::LargeInput,
);
});
}
for &size in SIZES.iter() {
let p: Vec<E> = rand_vector(size);
let inv_twiddles: Vec<B> = fft::get_inv_twiddles(size);
group.bench_function(BenchmarkId::new("with_offset", size), |bench| {
bench.iter_batched_ref(
|| p.clone(),
|mut p| fft::interpolate_poly_with_offset(&mut p, &inv_twiddles, B::GENERATOR),
BatchSize::LargeInput,
);
});
}
group.finish();
}