binius_hal

Trait SumcheckEvaluator

source
pub trait SumcheckEvaluator<PBase: PackedField, P: PackedField, Composition: CompositionPolyOS<P>> {
    // Required methods
    fn eval_point_indices(&self) -> Range<usize>;
    fn process_subcube_at_eval_point(
        &self,
        subcube_vars: usize,
        subcube_index: usize,
        batch_query: &[&[PBase]],
    ) -> P;
    fn composition(&self) -> &Composition;
    fn eq_ind_partial_eval(&self) -> Option<&[P]>;
}

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, batch_query: &[&[PBase]], ) -> P

Compute composition evals over a subcube.

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 composition(&self) -> &Composition

Returns the composition evaluated by this object.

source

fn eq_ind_partial_eval(&self) -> Option<&[P]>

In case of zerocheck returns eq_ind that the results should be folded with. In case of sumcheck returns None.

Implementors§