pub fn sumcheck_round_poly_evals<F, FN, const WD: usize>(
n: usize,
d: usize,
mats: &[ColMajorMatrixView<'_, F>],
w: FN,
) -> [Vec<F>; WD]Expand description
For a sumcheck round, we want to compute the univariate polynomial s(X) = sum_{y \in H_{n-1}} \hat{f}(X, y). For this function, assume that \hat{f}(\vec x) = W(\hat{T}_0(\vec x), .., \hat{T}_{m-1}(\vec x)) for a sequence of \hat{T}_i where each \hat{T}_i consists of a
collection of MLE polynomials in n variables.
The mats consists of the evaluations of \hat{T}_i on the hypercube H_n, where evaluations
of each \hat{T}_i are in column-major order.
Let W be degree d in each variable. Then s is degree d, so it can be interpolated using
d + 1 points. This function returns the evaluations of s at {1, ..., d}. The evaluation at
0 is omitted because our use of sumcheck always leaves the verifier to infer the evaluation at
0 from the previous round’s claim.
The generic WF is a closure {\hat{T}_i(X, y)}_i -> W(\hat{T}_0(X, y), .., \hat{T}_{m-1}(X, y)).
This function should not be used for the univariate skip round.