pub fn fold_chunk<F, FS, NTT>(
ntt: &NTT,
log_len: usize,
chunk_index: usize,
values: &mut [F],
challenges: &[F],
) -> FExpand description
Calculate FRI fold of values at a chunk_index with random folding challenges.
Folds a coset of a Reed–Solomon codeword into a single value using the FRI folding algorithm. The coset has size $2^n$, where $n$ is the number of challenges.
See DP24, Def. 3.6 and Lemma 3.9 for more details.
NB: This method is on a hot path and does not perform any allocations or precondition checks.
§Arguments
math- the NTT instance, used to look up the twiddle values.log_len- the binary logarithm of the code length.chunk_index- the index of the chunk, of size $2^n$, in the full codeword.values- mutable slice of values to fold, modified in place.challenges- the sequence of folding challenges, with length $n$.
§Pre-conditions
challenges.len() <= log_len.log_len <= math.log_domain_size(), so that the NTT domain is large enough.values.len() == 1 << challenges.len().