Struct folding::FoldingOutput
source · pub struct FoldingOutput<C: FoldingConfig> {
pub folded_instance: RelaxedInstance<C::Curve, C::Instance>,
pub folded_witness: RelaxedWitness<C::Curve, C::Witness>,
pub t_0: PolyComm<C::Curve>,
pub t_1: PolyComm<C::Curve>,
pub relaxed_extended_left_instance: RelaxedInstance<C::Curve, C::Instance>,
pub relaxed_extended_right_instance: RelaxedInstance<C::Curve, C::Instance>,
pub to_absorb: (Vec<<<C as FoldingConfig>::Curve as AffineRepr>::ScalarField>, Vec<C::Curve>),
}
Expand description
Output of the folding prover
Fields§
§folded_instance: RelaxedInstance<C::Curve, C::Instance>
The folded instance, containing, in particular, the result C_l + r C_r
folded_witness: RelaxedWitness<C::Curve, C::Witness>
Folded witness, containing, in particular, the result of the evaluations
W_l + r W_r
t_0: PolyComm<C::Curve>
The error terms of degree 1, see the top-level documentation of crate::expressions
t_1: PolyComm<C::Curve>
The error terms of degree 2, see the top-level documentation of crate::expressions
relaxed_extended_left_instance: RelaxedInstance<C::Curve, C::Instance>
The left relaxed instance, including the potential additional columns added by quadritization
relaxed_extended_right_instance: RelaxedInstance<C::Curve, C::Instance>
The right relaxed instance, including the potential additional columns added by quadritization
to_absorb: (Vec<<<C as FoldingConfig>::Curve as AffineRepr>::ScalarField>, Vec<C::Curve>)
Elements to absorbed in IVC, in the same order as done in folding
Implementations§
source§impl<C: FoldingConfig> FoldingOutput<C>
impl<C: FoldingConfig> FoldingOutput<C>
pub fn pair( self ) -> (RelaxedInstance<C::Curve, C::Instance>, RelaxedWitness<C::Curve, C::Witness>)
Auto Trait Implementations§
impl<C> RefUnwindSafe for FoldingOutput<C>where <C as FoldingConfig>::Curve: RefUnwindSafe, <C as FoldingConfig>::Instance: RefUnwindSafe, <<C as FoldingConfig>::Curve as AffineRepr>::ScalarField: RefUnwindSafe, <C as FoldingConfig>::Witness: RefUnwindSafe,
impl<C> Send for FoldingOutput<C>where <C as FoldingConfig>::Instance: Send, <C as FoldingConfig>::Witness: Send,
impl<C> Sync for FoldingOutput<C>where <C as FoldingConfig>::Instance: Sync, <C as FoldingConfig>::Witness: Sync,
impl<C> Unpin for FoldingOutput<C>where <C as FoldingConfig>::Curve: Unpin, <C as FoldingConfig>::Instance: Unpin, <<C as FoldingConfig>::Curve as AffineRepr>::ScalarField: Unpin, <C as FoldingConfig>::Witness: Unpin,
impl<C> UnwindSafe for FoldingOutput<C>where <C as FoldingConfig>::Curve: UnwindSafe, <C as FoldingConfig>::Instance: UnwindSafe, <<C as FoldingConfig>::Curve as AffineRepr>::ScalarField: UnwindSafe + RefUnwindSafe, <C as FoldingConfig>::Witness: 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