pub fn b_poly_coefficients<F: Field>(chals: &[F]) -> Vec<F>Expand description
Computes the coefficients of the challenge polynomial b(X).
Given IPA challenges chals = [u_1, ..., u_k], returns a vector
[s_0, s_1, ..., s_{2^k - 1}] such that:
b(X) = sum_{i=0}^{2^k - 1} s_i * X^iThe coefficients have a closed form: for each index i with bit decomposition
i = sum_j b_j * 2^j, the coefficient is s_i = prod_{j: b_j = 1} u_{k-j}.
§Usage
This function is used when the full coefficient vector is needed:
- In
SRS::verify(ipa.rs): the coefficients are computed and included in the batched MSM to verify the accumulated commitment<s, G>. - In
RecursionChallenge::evals: for chunked polynomial evaluation when the degree exceedsmax_poly_size.
§Complexity
Returns 2^k coefficients. The MSM <s, G> using these coefficients is the
expensive operation that gets deferred in recursive proof composition.