pub fn serial_fft<B, E>(values: &mut [E], twiddles: &[B])where
B: StarkField,
E: FieldElement<BaseField = B>,
Expand description
Executes a single-threaded version of the FFT algorithm on the provided values.
The evaluation is done in-place, meaning the function does not allocate any additional memory,
and the results are written back into values
.
The twiddles
needed for evaluation can be obtained via fft::get_twiddles()
function using
values.len()
as the domain size parameter. This implies that twiddles.len()
must be equal
to values.len()
/ 2.
ยงPanics
Panics if:
- Length of
values
is not a power of two. - Length of
twiddles
is notvalues.len()
/ 2. - Field specified by
B
does not contain a multiplicative subgroup of sizevalues.len()
.