binius_ntt::twiddle

Function expand_subspace_evals

Source
pub fn expand_subspace_evals<F, SEvals>(
    on_the_fly: &[OnTheFlyTwiddleAccess<F, SEvals>],
) -> Vec<PrecomputedTwiddleAccess<F>>
where F: BinaryField, SEvals: Deref<Target = [F]>,
Expand description

Given OnTheFlyTwiddleAccess instances for each NTT round, returns a vector of PrecomputedTwiddleAccess objects, one for each NTT round.

For each round ii, the input contains the value of W^i\hat{W}_i on the basis βi+1,,βd1\beta_{i+1},\ldots ,\beta_{d-1}. The ith element of the output contains the evaluations of W^i\hat{W}_i on the entire space K/Ui+1K/U_{i+1}, where the order is the usual “binary counting order” in βi+1,,βd1\beta_{i+1},\ldots ,\beta_{d-1}. While W^i\hat{W}_i is well-defined on K/UiK/U_i, we have the normalization W^i(βi)=1\hat{W}_{i}(\beta_i)=1, hence to specify the function we need only specify it on K/Ui+1K/U_{i+1}.