binius_core::protocols::sumcheck_v2::prove::prover_state

Trait SumcheckEvaluator

source
pub trait SumcheckEvaluator<PBase: PackedField, P: PackedField> {
    // Required methods
    fn eval_point_indices(&self) -> Range<usize>;
    fn process_subcube_at_eval_point(
        &self,
        subcube_vars: usize,
        subcube_index: usize,
        sparse_batch_query: &[&[PBase]],
    ) -> P;
    fn round_evals_to_coeffs(
        &self,
        last_sum: P::Scalar,
        round_evals: Vec<P::Scalar>,
    ) -> Result<Vec<P::Scalar>, PolynomialError>;
}

Required Methods§

source

fn eval_point_indices(&self) -> Range<usize>

The range of eval point indices over which composition evaluation and summation should happen. Returned range must equal the result of n_round_evals() in length.

source

fn process_subcube_at_eval_point( &self, subcube_vars: usize, subcube_index: usize, sparse_batch_query: &[&[PBase]], ) -> P

Compute composition evals over a subcube.

sparse_batch_query should contain multilinears evals over a subcube represented by subcube_vars and subcube_index.

Returns a packed sum (which may be spread across scalars).

source

fn round_evals_to_coeffs( &self, last_sum: P::Scalar, round_evals: Vec<P::Scalar>, ) -> Result<Vec<P::Scalar>, PolynomialError>

Given evaluations of the round polynomial, interpolate and return monomial coefficients

§Arguments
  • round_evals: the computed evaluations of the round polynomial

Implementors§