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§
sourcefn eval_point_indices(&self) -> Range<usize>
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.
sourcefn process_subcube_at_eval_point(
&self,
subcube_vars: usize,
subcube_index: usize,
batch_query: &[&[PBase]],
) -> P
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).
sourcefn composition(&self) -> &Composition
fn composition(&self) -> &Composition
Returns the composition evaluated by this object.
sourcefn eq_ind_partial_eval(&self) -> Option<&[P]>
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.