pub struct MultilinearEvalEvaluator { /* private fields */ }Expand description
MLE-check round evaluator for the multilinear evaluation of one store column.
The composition is the identity.
Each round polynomial is therefore degree 1, with a single sampled evaluation.
That evaluation is the inner product of the column’s X = 1 half with the round’s eq chunk.
The driving SharedMleCheckProver supplies that chunk.
It folds the higher eq coordinates through its own reduction step.
No full-width eq tensor is ever materialized, streamed, or folded.
Implementations§
Trait Implementations§
Source§impl<F, P> MleCheckRoundEvaluator<F, P> for MultilinearEvalEvaluatorwhere
F: Field,
P: PackedField<Scalar = F>,
impl<F, P> MleCheckRoundEvaluator<F, P> for MultilinearEvalEvaluatorwhere
F: Field,
P: PackedField<Scalar = F>,
Source§fn degree(&self) -> usize
fn degree(&self) -> usize
The number of accumulator slots this evaluator’s claim uses. See
SumcheckRoundEvaluator::degree.Source§fn accumulate(
&self,
chunk: &EvaluationChunk<'_, P>,
eq_ind: FieldSlice<'_, P>,
accum: &mut [<P as WideMul>::Output],
)
fn accumulate( &self, chunk: &EvaluationChunk<'_, P>, eq_ind: FieldSlice<'_, P>, accum: &mut [<P as WideMul>::Output], )
Accumulates one chunk of the halved hypercube into
accum. Read moreSource§fn interpolate(
&self,
ctx: &RoundContext<'_, P>,
accum: &[P],
claim: F,
alpha: F,
) -> RoundCoeffs<F>
fn interpolate( &self, ctx: &RoundContext<'_, P>, accum: &[P], claim: F, alpha: F, ) -> RoundCoeffs<F>
Interpolates this round’s prime polynomial from the accumulator and the round claim. Read more
Auto Trait Implementations§
impl Freeze for MultilinearEvalEvaluator
impl RefUnwindSafe for MultilinearEvalEvaluator
impl Send for MultilinearEvalEvaluator
impl Sync for MultilinearEvalEvaluator
impl Unpin for MultilinearEvalEvaluator
impl UnsafeUnpin for MultilinearEvalEvaluator
impl UnwindSafe for MultilinearEvalEvaluator
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more