Skip to main content

b_poly_coefficients

Function b_poly_coefficients 

Source
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^i

The 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 exceeds max_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.

§References