pub struct BatchEvaluationProof<'a, G, EFqSponge, OpeningProof, const FULL_ROUNDS: usize>where
G: AffineRepr,
EFqSponge: FqSponge<G::BaseField, G, G::ScalarField, FULL_ROUNDS>,{
pub sponge: EFqSponge,
pub evaluations: Vec<Evaluation<G>>,
pub evaluation_points: Vec<G::ScalarField>,
pub polyscale: G::ScalarField,
pub evalscale: G::ScalarField,
pub opening: &'a OpeningProof,
pub combined_inner_product: G::ScalarField,
}Expand description
Contains the batch evaluation
Fields§
§sponge: EFqSpongeSponge used to coin and absorb values and simulate non-interactivity using the Fiat-Shamir transformation.
evaluations: Vec<Evaluation<G>>A list of evaluations, each supposed to correspond to a different polynomial.
evaluation_points: Vec<G::ScalarField>The actual evaluation points. Each field evaluations of each structure
of Evaluation should have the same (outer) length.
polyscale: G::ScalarFieldA challenge to combine polynomials. Powers of this point will be used, hence the name.
evalscale: G::ScalarFieldA challenge to aggregate multiple evaluation points.
opening: &'a OpeningProofThe opening proof.
combined_inner_product: G::ScalarFieldAuto Trait Implementations§
impl<'a, G, EFqSponge, OpeningProof, const FULL_ROUNDS: usize> Freeze for BatchEvaluationProof<'a, G, EFqSponge, OpeningProof, FULL_ROUNDS>where
EFqSponge: Freeze,
Vec<Evaluation<G>>: Freeze,
Vec<<G as AffineRepr>::ScalarField>: Freeze,
<G as AffineRepr>::ScalarField: Freeze,
&'a OpeningProof: Freeze,
impl<'a, G, EFqSponge, OpeningProof, const FULL_ROUNDS: usize> RefUnwindSafe for BatchEvaluationProof<'a, G, EFqSponge, OpeningProof, FULL_ROUNDS>where
EFqSponge: RefUnwindSafe,
Vec<Evaluation<G>>: RefUnwindSafe,
Vec<<G as AffineRepr>::ScalarField>: RefUnwindSafe,
<G as AffineRepr>::ScalarField: RefUnwindSafe,
&'a OpeningProof: RefUnwindSafe,
impl<'a, G, EFqSponge, OpeningProof, const FULL_ROUNDS: usize> Send for BatchEvaluationProof<'a, G, EFqSponge, OpeningProof, FULL_ROUNDS>where
EFqSponge: Send,
Vec<Evaluation<G>>: Send,
Vec<<G as AffineRepr>::ScalarField>: Send,
<G as AffineRepr>::ScalarField: Send,
&'a OpeningProof: Send,
impl<'a, G, EFqSponge, OpeningProof, const FULL_ROUNDS: usize> Sync for BatchEvaluationProof<'a, G, EFqSponge, OpeningProof, FULL_ROUNDS>where
EFqSponge: Sync,
Vec<Evaluation<G>>: Sync,
Vec<<G as AffineRepr>::ScalarField>: Sync,
<G as AffineRepr>::ScalarField: Sync,
&'a OpeningProof: Sync,
impl<'a, G, EFqSponge, OpeningProof, const FULL_ROUNDS: usize> Unpin for BatchEvaluationProof<'a, G, EFqSponge, OpeningProof, FULL_ROUNDS>where
EFqSponge: Unpin,
Vec<Evaluation<G>>: Unpin,
Vec<<G as AffineRepr>::ScalarField>: Unpin,
<G as AffineRepr>::ScalarField: Unpin,
&'a OpeningProof: Unpin,
impl<'a, G, EFqSponge, OpeningProof, const FULL_ROUNDS: usize> UnsafeUnpin for BatchEvaluationProof<'a, G, EFqSponge, OpeningProof, FULL_ROUNDS>where
EFqSponge: UnsafeUnpin,
Vec<Evaluation<G>>: UnsafeUnpin,
Vec<<G as AffineRepr>::ScalarField>: UnsafeUnpin,
<G as AffineRepr>::ScalarField: UnsafeUnpin,
&'a OpeningProof: UnsafeUnpin,
impl<'a, G, EFqSponge, OpeningProof, const FULL_ROUNDS: usize> UnwindSafe for BatchEvaluationProof<'a, G, EFqSponge, OpeningProof, FULL_ROUNDS>where
EFqSponge: UnwindSafe,
Vec<Evaluation<G>>: UnwindSafe,
Vec<<G as AffineRepr>::ScalarField>: UnwindSafe,
<G as AffineRepr>::ScalarField: UnwindSafe,
&'a OpeningProof: 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