pub struct MleToSumCheckEvaluator<Inner> { /* private fields */ }Expand description
Adaptor that turns an MleCheckRoundEvaluator into a SumcheckRoundEvaluator.
This is the evaluator-level mirror of MleToSumCheckDecorator, applying the same Gruen24
technique: each round, the inner evaluator’s prime round polynomials are multiplied by the
linear equality term in the bound coordinate and by the accumulated equality prefix. It lets
eq-weighted and plain claims live in one evaluator group behind a single
SharedSumcheckProver.
Unlike a bare MleCheckRoundEvaluator, whose driving SharedMleCheckProver owns the eq
tracker, this wrapper runs under a SharedSumcheckProver that knows nothing of eq indicators.
So the wrapper itself holds the EqId of the shared evaluation point’s eq tracker, and
supplies the round’s eq chunk to MleCheckRoundEvaluator::accumulate and its alpha and
equality prefix to MleCheckRoundEvaluator::interpolate — all read from that tracker, which
the store folds in lockstep, so the wrapper keeps no copy of the point and no equality
bookkeeping of its own.
Implementations§
Trait Implementations§
Source§impl<F, P, Inner> SumcheckRoundEvaluator<F, P> for MleToSumCheckEvaluator<Inner>
impl<F, P, Inner> SumcheckRoundEvaluator<F, P> for MleToSumCheckEvaluator<Inner>
Source§fn degree(&self) -> usize
fn degree(&self) -> usize
Source§fn accumulate(
&self,
chunk: &EvaluationChunk<'_, P>,
accum: &mut [<P as WideMul>::Output],
)
fn accumulate( &self, chunk: &EvaluationChunk<'_, P>, accum: &mut [<P as WideMul>::Output], )
accum. Read moreSource§fn interpolate(
&self,
ctx: &RoundContext<'_, P>,
accum: &[P],
claim: F,
) -> RoundCoeffs<F>
fn interpolate( &self, ctx: &RoundContext<'_, P>, accum: &[P], claim: F, ) -> RoundCoeffs<F>
Auto Trait Implementations§
impl<Inner> Freeze for MleToSumCheckEvaluator<Inner>where
Inner: Freeze,
impl<Inner> RefUnwindSafe for MleToSumCheckEvaluator<Inner>where
Inner: RefUnwindSafe,
impl<Inner> Send for MleToSumCheckEvaluator<Inner>where
Inner: Send,
impl<Inner> Sync for MleToSumCheckEvaluator<Inner>where
Inner: Sync,
impl<Inner> Unpin for MleToSumCheckEvaluator<Inner>where
Inner: Unpin,
impl<Inner> UnsafeUnpin for MleToSumCheckEvaluator<Inner>where
Inner: UnsafeUnpin,
impl<Inner> UnwindSafe for MleToSumCheckEvaluator<Inner>where
Inner: UnwindSafe,
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
§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> ⓘ
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> ⓘ
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