pub struct BivariateProductEvaluator { /* private fields */ }Expand description
Sumcheck round evaluator for a composite defined as the product of two store columns.
This is the store-backed counterpart of the bivariate product sumcheck prover: it proves the plain (non-eq-weighted) sum claim of the product over the hypercube, emitting regular sumcheck round polynomials.
Implementations§
Source§impl BivariateProductEvaluator
impl BivariateProductEvaluator
Sourcepub const fn new(cols: [ColId; 2]) -> Self
pub const fn new(cols: [ColId; 2]) -> Self
Creates an evaluator for the product of two store columns.
The claimed sum is held by the driving SharedSumcheckProver, not the evaluator.
Trait Implementations§
Source§impl<F: Field, P: PackedField<Scalar = F>> SumcheckRoundEvaluator<F, P> for BivariateProductEvaluator
impl<F: Field, P: PackedField<Scalar = F>> SumcheckRoundEvaluator<F, P> for BivariateProductEvaluator
Source§fn degree(&self) -> usize
fn degree(&self) -> usize
The number of accumulator slots this evaluator’s claim uses. Read more
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], )
Accumulates one chunk of the halved hypercube into
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>
Interpolates this round’s polynomial from the accumulator and the round claim. Read more
Auto Trait Implementations§
impl Freeze for BivariateProductEvaluator
impl RefUnwindSafe for BivariateProductEvaluator
impl Send for BivariateProductEvaluator
impl Sync for BivariateProductEvaluator
impl Unpin for BivariateProductEvaluator
impl UnsafeUnpin for BivariateProductEvaluator
impl UnwindSafe for BivariateProductEvaluator
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