Struct folding::standard_config::Env
source · pub struct Env<G, Col, Chall, Sel, Str, I, W>where
G: CommitmentCurve,
I: Instance<G> + Index<Chall, Output = G::ScalarField> + Clone,
W: Witness<G> + Clone + Index<Col, Output = [G::ScalarField]> + Index<Sel, Output = [G::ScalarField]>,
Col: Hash + Eq,{ /* private fields */ }
Expand description
A generic Index based environment
Trait Implementations§
source§impl<G, Col, Chall, Sel, Str, I, W> FoldingEnv<<G as AffineRepr>::ScalarField, I, W, Col, Chall, Sel> for Env<G, Col, Chall, Sel, Str, I, W>where
G: CommitmentCurve,
I: Instance<G> + Index<Chall, Output = G::ScalarField> + Clone,
W: Witness<G> + Clone + Index<Col, Output = [G::ScalarField]> + Index<Sel, Output = [G::ScalarField]>,
Col: FoldingColumnTrait + Eq + Hash,
Sel: Copy,
Str: Clone + Index<Col, Output = [G::ScalarField]>,
impl<G, Col, Chall, Sel, Str, I, W> FoldingEnv<<G as AffineRepr>::ScalarField, I, W, Col, Chall, Sel> for Env<G, Col, Chall, Sel, Str, I, W>where G: CommitmentCurve, I: Instance<G> + Index<Chall, Output = G::ScalarField> + Clone, W: Witness<G> + Clone + Index<Col, Output = [G::ScalarField]> + Index<Sel, Output = [G::ScalarField]>, Col: FoldingColumnTrait + Eq + Hash, Sel: Copy, Str: Clone + Index<Col, Output = [G::ScalarField]>,
source§fn new(
structure: &Self::Structure,
instances: [&I; 2],
witnesses: [&W; 2]
) -> Self
fn new( structure: &Self::Structure, instances: [&I; 2], witnesses: [&W; 2] ) -> Self
Creates a new environment storing the structure, instances and
witnesses.
source§fn challenge(&self, challenge: Chall, side: Side) -> G::ScalarField
fn challenge(&self, challenge: Chall, side: Side) -> G::ScalarField
Obtains a given challenge from the expanded instance for one side.
The challenges are stored inside the instances structs.
source§fn col(
&self,
col: Col,
curr_or_next: CurrOrNext,
side: Side
) -> &[G::ScalarField]
fn col( &self, col: Col, curr_or_next: CurrOrNext, side: Side ) -> &[G::ScalarField]
Returns the evaluations of a given column witness at omega or zeta*omega.
Auto Trait Implementations§
impl<G, Col, Chall, Sel, Str, I, W> !RefUnwindSafe for Env<G, Col, Chall, Sel, Str, I, W>
impl<G, Col, Chall, Sel, Str, I, W> Send for Env<G, Col, Chall, Sel, Str, I, W>where Chall: Send, Col: Send, I: Send, Sel: Send, Str: Send, W: Send,
impl<G, Col, Chall, Sel, Str, I, W> !Sync for Env<G, Col, Chall, Sel, Str, I, W>
impl<G, Col, Chall, Sel, Str, I, W> Unpin for Env<G, Col, Chall, Sel, Str, I, W>where Chall: Unpin, Col: Unpin, G: Unpin, I: Unpin, Sel: Unpin, Str: Unpin, W: Unpin, <G as AffineRepr>::ScalarField: Unpin,
impl<G, Col, Chall, Sel, Str, I, W> UnwindSafe for Env<G, Col, Chall, Sel, Str, I, W>where Chall: UnwindSafe, Col: UnwindSafe, G: UnwindSafe, I: UnwindSafe, Sel: UnwindSafe, Str: UnwindSafe, W: UnwindSafe, <G as AffineRepr>::ScalarField: 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