pub struct Phase1Output<F> {
pub r_j: Vec<F>,
pub inner: ShiftChallenge<F>,
pub outer: ShiftChallenge<F>,
pub psi: Vec<F>,
pub gamma: F,
pub g_eval: F,
}Expand description
The output of the first proving phase.
The challenge point the phase’s rounds bound, split into its axes, plus the two evaluations the reduction still needs to carry forward.
Fields§
§r_j: Vec<F>The bit position within a word.
inner: ShiftChallenge<F>The inner shift’s amount and variant.
outer: ShiftChallenge<F>The outer shift’s amount and variant.
psi: Vec<F>The weights carried through the outer shift, at the outer challenge point.
Read by the next phase’s bit-index rounds.
gamma: FThe evaluation claim the next phase proves: the product of the two evaluations below.
g_eval: FThe witness-and-batching multilinear, evaluated at the bound shift and bit point.
Carried through the remaining phases’ rounds, so it is never recomputed.
Trait Implementations§
Source§impl<F: Clone> Clone for Phase1Output<F>
impl<F: Clone> Clone for Phase1Output<F>
Source§fn clone(&self) -> Phase1Output<F>
fn clone(&self) -> Phase1Output<F>
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl<F> Freeze for Phase1Output<F>where
F: Freeze,
impl<F> RefUnwindSafe for Phase1Output<F>where
F: RefUnwindSafe,
impl<F> Send for Phase1Output<F>where
F: Send,
impl<F> Sync for Phase1Output<F>where
F: Sync,
impl<F> Unpin for Phase1Output<F>where
F: Unpin,
impl<F> UnsafeUnpin for Phase1Output<F>where
F: UnsafeUnpin,
impl<F> UnwindSafe for Phase1Output<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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§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