pub struct BatchBrakedownOracleProver<P, C, Data = Vec<P>>{ /* private fields */ }Expand description
A ProxTestOracleProver bundling several separately committed BrakedownOracleProvers.
The bundled oracles all wrap interleaved codewords of the same length that are batched into a single folded codeword during the first FRI fold. Their query openings are written sequentially, one oracle’s full decommitment after another, so the verifier reads each committed oracle’s advice in turn.
Implementations§
Source§impl<P, C, Data> BatchBrakedownOracleProver<P, C, Data>
impl<P, C, Data> BatchBrakedownOracleProver<P, C, Data>
Sourcepub const fn new(
oracles: Vec<BrakedownOracleProver<P, C, Data>>,
) -> BatchBrakedownOracleProver<P, C, Data>
pub const fn new( oracles: Vec<BrakedownOracleProver<P, C, Data>>, ) -> BatchBrakedownOracleProver<P, C, Data>
Constructs a batch oracle prover from the per-commitment oracle provers.
Trait Implementations§
Source§impl<F, P, C, Data> ProxTestOracleProver<F> for BatchBrakedownOracleProver<P, C, Data>
impl<F, P, C, Data> ProxTestOracleProver<F> for BatchBrakedownOracleProver<P, C, Data>
Source§type Commitment = C
type Commitment = C
The Merkle commitment handle for the committed oracle.
Source§fn open_queries<Channel>(
&self,
indices: &[<Channel as WordIPProverChannel<F>>::Word],
channel: &mut Channel,
)where
Channel: MerkleIPProverChannel<F, Commitment = <BatchBrakedownOracleProver<P, C, Data> as ProxTestOracleProver<F>>::Commitment>,
fn open_queries<Channel>(
&self,
indices: &[<Channel as WordIPProverChannel<F>>::Word],
channel: &mut Channel,
)where
Channel: MerkleIPProverChannel<F, Commitment = <BatchBrakedownOracleProver<P, C, Data> as ProxTestOracleProver<F>>::Commitment>,
Sends the per-oracle batched query openings: the oracle’s optimal Merkle layer once,
followed by each queried coset’s values and Merkle opening proof.
Auto Trait Implementations§
impl<P, C, Data> Freeze for BatchBrakedownOracleProver<P, C, Data>
impl<P, C, Data> RefUnwindSafe for BatchBrakedownOracleProver<P, C, Data>where
C: RefUnwindSafe,
Data: RefUnwindSafe,
impl<P, C, Data> Send for BatchBrakedownOracleProver<P, C, Data>
impl<P, C, Data> Sync for BatchBrakedownOracleProver<P, C, Data>
impl<P, C, Data> Unpin for BatchBrakedownOracleProver<P, C, Data>
impl<P, C, Data> UnsafeUnpin for BatchBrakedownOracleProver<P, C, Data>
impl<P, C, Data> UnwindSafe for BatchBrakedownOracleProver<P, C, Data>where
C: UnwindSafe,
Data: 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
§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