pub struct SumcheckClaim<F: Field, C> { /* private fields */ }
Expand description
A group of claims about the sum of the values of multilinear composite polynomials over the boolean hypercube.
All polynomials in the group of claims are compositions of the same sequence of multilinear
polynomials. By defining SumcheckClaim
in this way, the sumcheck protocol can implement
efficient batch proving and verification and reduce to a set of multilinear evaluations of the
same polynomials. In other words, this grouping deduplicates prover work and proof data that
would be redundant in a more naive implementation.
Implementations§
source§impl<F: Field, C> SumcheckClaim<F, C>
impl<F: Field, C> SumcheckClaim<F, C>
source§impl<F: Field, Composition> SumcheckClaim<F, Composition>where
Composition: CompositionPoly<F>,
impl<F: Field, Composition> SumcheckClaim<F, Composition>where
Composition: CompositionPoly<F>,
sourcepub fn new(
n_vars: usize,
n_multilinears: usize,
composite_sums: Vec<CompositeSumClaim<F, Composition>>,
) -> Result<Self, Error>
pub fn new( n_vars: usize, n_multilinears: usize, composite_sums: Vec<CompositeSumClaim<F, Composition>>, ) -> Result<Self, Error>
Constructs a new sumcheck claim.
§Throws
Error::InvalidComposition
if any of the composition polynomials in the composite claims vector do not have their number of variables equal ton_multilinears
sourcepub fn max_individual_degree(&self) -> usize
pub fn max_individual_degree(&self) -> usize
Returns the maximum individual degree of all composite polynomials.
pub fn composite_sums(&self) -> &[CompositeSumClaim<F, Composition>]
Trait Implementations§
Auto Trait Implementations§
impl<F, C> Freeze for SumcheckClaim<F, C>
impl<F, C> RefUnwindSafe for SumcheckClaim<F, C>
impl<F, C> Send for SumcheckClaim<F, C>
impl<F, C> Sync for SumcheckClaim<F, C>
impl<F, C> Unpin for SumcheckClaim<F, C>
impl<F, C> UnwindSafe for SumcheckClaim<F, C>
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