pub struct BatchSumcheckOutput<F: Field> {
pub challenges: Vec<F>,
pub multilinear_evals: Vec<Vec<F>>,
}Expand description
Prover view of the execution result of a batched sumcheck.
Fields§
§challenges: Vec<F>Verifier challenges for each round of the sumcheck protocol.
One challenge is generated per variable in the multivariate polynomial,
with challenges[i] corresponding to the i-th round of the protocol. This binding
order matches prove_single and batch_verify; when folding
high-to-low, reverse to obtain the variable-indexed evaluation point.
multilinear_evals: Vec<Vec<F>>Evaluation claims on non-transparent multilinears, per prover.
Each inner vector contains the evaluation values for one prover’s multilinear polynomials at the challenge point.
Implementations§
Source§impl<F: Field> BatchSumcheckOutput<F>
impl<F: Field> BatchSumcheckOutput<F>
Sourcepub fn send_evals(&self, channel: &mut impl IPProverChannel<F>)
pub fn send_evals(&self, channel: &mut impl IPProverChannel<F>)
Sends every prover’s evaluation claims to the verifier, in prover order.
The per-prover grouping is prover-side bookkeeping only. The elements reach the transcript as one flat run, which is how the verifier reads them.
Trait Implementations§
impl<F: Eq + Field> Eq for BatchSumcheckOutput<F>
Source§impl<F: PartialEq + Field> PartialEq for BatchSumcheckOutput<F>
impl<F: PartialEq + Field> PartialEq for BatchSumcheckOutput<F>
Source§fn eq(&self, other: &BatchSumcheckOutput<F>) -> bool
fn eq(&self, other: &BatchSumcheckOutput<F>) -> bool
self and other values to be equal, and is used by ==.impl<F: PartialEq + Field> StructuralPartialEq for BatchSumcheckOutput<F>
Auto Trait Implementations§
impl<F> Freeze for BatchSumcheckOutput<F>
impl<F> RefUnwindSafe for BatchSumcheckOutput<F>where
F: RefUnwindSafe,
impl<F> Send for BatchSumcheckOutput<F>
impl<F> Sync for BatchSumcheckOutput<F>
impl<F> Unpin for BatchSumcheckOutput<F>where
F: Unpin,
impl<F> UnsafeUnpin for BatchSumcheckOutput<F>
impl<F> UnwindSafe for BatchSumcheckOutput<F>where
F: 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