pub struct OraclesResult<const FULL_ROUNDS: usize, G, EFqSponge>where
G: CommitmentCurve,
EFqSponge: Clone + FqSponge<G::BaseField, G, G::ScalarField, FULL_ROUNDS>,{
pub fq_sponge: EFqSponge,
pub digest: G::ScalarField,
pub oracles: RandomOracles<G::ScalarField>,
pub all_alphas: Alphas<G::ScalarField>,
pub public_evals: [Vec<G::ScalarField>; 2],
pub powers_of_eval_points_for_chunks: PointEvaluations<G::ScalarField>,
pub polys: Vec<(PolyComm<G>, Vec<Vec<G::ScalarField>>)>,
pub zeta1: G::ScalarField,
pub ft_eval0: G::ScalarField,
pub combined_inner_product: G::ScalarField,
}Expand description
The result of running the oracle protocol
Fields§
§fq_sponge: EFqSpongeA sponge that acts on the base field of a curve
digest: G::ScalarFieldthe last evaluation of the Fq-Sponge in this protocol
oracles: RandomOracles<G::ScalarField>the challenges produced in the protocol
all_alphas: Alphas<G::ScalarField>the computed powers of alpha
public_evals: [Vec<G::ScalarField>; 2]public polynomial evaluations
powers_of_eval_points_for_chunks: PointEvaluations<G::ScalarField>zeta^n and (zeta * omega)^n
polys: Vec<(PolyComm<G>, Vec<Vec<G::ScalarField>>)>recursion data
zeta1: G::ScalarFieldpre-computed zeta^n
ft_eval0: G::ScalarFieldThe evaluation f(zeta) - t(zeta) * Z_H(zeta)
combined_inner_product: G::ScalarFieldUsed by the OCaml side
Auto Trait Implementations§
impl<const FULL_ROUNDS: usize, G, EFqSponge> Freeze for OraclesResult<FULL_ROUNDS, G, EFqSponge>where
EFqSponge: Freeze,
<G as AffineRepr>::ScalarField: Freeze,
RandomOracles<<G as AffineRepr>::ScalarField>: Freeze,
Alphas<<G as AffineRepr>::ScalarField>: Freeze,
[Vec<<G as AffineRepr>::ScalarField>; 2]: Freeze,
PointEvaluations<<G as AffineRepr>::ScalarField>: Freeze,
Vec<(PolyComm<G>, Vec<Vec<<G as AffineRepr>::ScalarField>>)>: Freeze,
impl<const FULL_ROUNDS: usize, G, EFqSponge> RefUnwindSafe for OraclesResult<FULL_ROUNDS, G, EFqSponge>where
EFqSponge: RefUnwindSafe,
<G as AffineRepr>::ScalarField: RefUnwindSafe,
RandomOracles<<G as AffineRepr>::ScalarField>: RefUnwindSafe,
Alphas<<G as AffineRepr>::ScalarField>: RefUnwindSafe,
[Vec<<G as AffineRepr>::ScalarField>; 2]: RefUnwindSafe,
PointEvaluations<<G as AffineRepr>::ScalarField>: RefUnwindSafe,
Vec<(PolyComm<G>, Vec<Vec<<G as AffineRepr>::ScalarField>>)>: RefUnwindSafe,
impl<const FULL_ROUNDS: usize, G, EFqSponge> Send for OraclesResult<FULL_ROUNDS, G, EFqSponge>where
EFqSponge: Send,
<G as AffineRepr>::ScalarField: Send,
RandomOracles<<G as AffineRepr>::ScalarField>: Send,
Alphas<<G as AffineRepr>::ScalarField>: Send,
[Vec<<G as AffineRepr>::ScalarField>; 2]: Send,
PointEvaluations<<G as AffineRepr>::ScalarField>: Send,
Vec<(PolyComm<G>, Vec<Vec<<G as AffineRepr>::ScalarField>>)>: Send,
impl<const FULL_ROUNDS: usize, G, EFqSponge> Sync for OraclesResult<FULL_ROUNDS, G, EFqSponge>where
EFqSponge: Sync,
<G as AffineRepr>::ScalarField: Sync,
RandomOracles<<G as AffineRepr>::ScalarField>: Sync,
Alphas<<G as AffineRepr>::ScalarField>: Sync,
[Vec<<G as AffineRepr>::ScalarField>; 2]: Sync,
PointEvaluations<<G as AffineRepr>::ScalarField>: Sync,
Vec<(PolyComm<G>, Vec<Vec<<G as AffineRepr>::ScalarField>>)>: Sync,
impl<const FULL_ROUNDS: usize, G, EFqSponge> Unpin for OraclesResult<FULL_ROUNDS, G, EFqSponge>where
EFqSponge: Unpin,
<G as AffineRepr>::ScalarField: Unpin,
RandomOracles<<G as AffineRepr>::ScalarField>: Unpin,
Alphas<<G as AffineRepr>::ScalarField>: Unpin,
[Vec<<G as AffineRepr>::ScalarField>; 2]: Unpin,
PointEvaluations<<G as AffineRepr>::ScalarField>: Unpin,
Vec<(PolyComm<G>, Vec<Vec<<G as AffineRepr>::ScalarField>>)>: Unpin,
impl<const FULL_ROUNDS: usize, G, EFqSponge> UnsafeUnpin for OraclesResult<FULL_ROUNDS, G, EFqSponge>where
EFqSponge: UnsafeUnpin,
<G as AffineRepr>::ScalarField: UnsafeUnpin,
RandomOracles<<G as AffineRepr>::ScalarField>: UnsafeUnpin,
Alphas<<G as AffineRepr>::ScalarField>: UnsafeUnpin,
[Vec<<G as AffineRepr>::ScalarField>; 2]: UnsafeUnpin,
PointEvaluations<<G as AffineRepr>::ScalarField>: UnsafeUnpin,
Vec<(PolyComm<G>, Vec<Vec<<G as AffineRepr>::ScalarField>>)>: UnsafeUnpin,
impl<const FULL_ROUNDS: usize, G, EFqSponge> UnwindSafe for OraclesResult<FULL_ROUNDS, G, EFqSponge>where
EFqSponge: UnwindSafe,
<G as AffineRepr>::ScalarField: UnwindSafe,
RandomOracles<<G as AffineRepr>::ScalarField>: UnwindSafe,
Alphas<<G as AffineRepr>::ScalarField>: UnwindSafe,
[Vec<<G as AffineRepr>::ScalarField>; 2]: UnwindSafe,
PointEvaluations<<G as AffineRepr>::ScalarField>: UnwindSafe,
Vec<(PolyComm<G>, Vec<Vec<<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