pub type OuterChallengeMmcs = ExtensionMmcs<OuterVal, OuterChallenge, OuterValMmcs>;
Aliased Type§
struct OuterChallengeMmcs { /* private fields */ }
Implementations
Source§impl<F, EF, InnerMmcs> ExtensionMmcs<F, EF, InnerMmcs>
impl<F, EF, InnerMmcs> ExtensionMmcs<F, EF, InnerMmcs>
pub const fn new(inner: InnerMmcs) -> ExtensionMmcs<F, EF, InnerMmcs>
Trait Implementations
Source§impl<F, EF, InnerMmcs> Clone for ExtensionMmcs<F, EF, InnerMmcs>
impl<F, EF, InnerMmcs> Clone for ExtensionMmcs<F, EF, InnerMmcs>
Source§fn clone(&self) -> ExtensionMmcs<F, EF, InnerMmcs>
fn clone(&self) -> ExtensionMmcs<F, EF, InnerMmcs>
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl<F, EF, InnerMmcs> Debug for ExtensionMmcs<F, EF, InnerMmcs>
impl<F, EF, InnerMmcs> Debug for ExtensionMmcs<F, EF, InnerMmcs>
Source§impl<F, EF, InnerMmcs> Mmcs<EF> for ExtensionMmcs<F, EF, InnerMmcs>
impl<F, EF, InnerMmcs> Mmcs<EF> for ExtensionMmcs<F, EF, InnerMmcs>
type ProverData<M> = <InnerMmcs as Mmcs<F>>::ProverData<FlatMatrixView<F, EF, M>>
type Commitment = <InnerMmcs as Mmcs<F>>::Commitment
type Proof = <InnerMmcs as Mmcs<F>>::Proof
type Error = <InnerMmcs as Mmcs<F>>::Error
fn commit<M>(
&self,
inputs: Vec<M>,
) -> (<ExtensionMmcs<F, EF, InnerMmcs> as Mmcs<EF>>::Commitment, <ExtensionMmcs<F, EF, InnerMmcs> as Mmcs<EF>>::ProverData<M>)where
M: Matrix<EF>,
Source§fn open_batch<M>(
&self,
index: usize,
prover_data: &<ExtensionMmcs<F, EF, InnerMmcs> as Mmcs<EF>>::ProverData<M>,
) -> (Vec<Vec<EF>>, <ExtensionMmcs<F, EF, InnerMmcs> as Mmcs<EF>>::Proof)where
M: Matrix<EF>,
fn open_batch<M>(
&self,
index: usize,
prover_data: &<ExtensionMmcs<F, EF, InnerMmcs> as Mmcs<EF>>::ProverData<M>,
) -> (Vec<Vec<EF>>, <ExtensionMmcs<F, EF, InnerMmcs> as Mmcs<EF>>::Proof)where
M: Matrix<EF>,
Opens a batch of rows from committed matrices
returns
(openings, proof)
where openings
is a vector whose i
th element is the j
th row of the ith matrix M[i]
,
and j = index >> (log2_ceil(max_height) - log2_ceil(M[i].height))
.Source§fn get_matrices<'a, M>(
&self,
prover_data: &'a <ExtensionMmcs<F, EF, InnerMmcs> as Mmcs<EF>>::ProverData<M>,
) -> Vec<&'a M>where
M: Matrix<EF>,
fn get_matrices<'a, M>(
&self,
prover_data: &'a <ExtensionMmcs<F, EF, InnerMmcs> as Mmcs<EF>>::ProverData<M>,
) -> Vec<&'a M>where
M: Matrix<EF>,
Get the matrices that were committed to.
Source§fn verify_batch(
&self,
commit: &<ExtensionMmcs<F, EF, InnerMmcs> as Mmcs<EF>>::Commitment,
dimensions: &[Dimensions],
index: usize,
opened_values: &[Vec<EF>],
proof: &<ExtensionMmcs<F, EF, InnerMmcs> as Mmcs<EF>>::Proof,
) -> Result<(), <ExtensionMmcs<F, EF, InnerMmcs> as Mmcs<EF>>::Error>
fn verify_batch( &self, commit: &<ExtensionMmcs<F, EF, InnerMmcs> as Mmcs<EF>>::Commitment, dimensions: &[Dimensions], index: usize, opened_values: &[Vec<EF>], proof: &<ExtensionMmcs<F, EF, InnerMmcs> as Mmcs<EF>>::Proof, ) -> Result<(), <ExtensionMmcs<F, EF, InnerMmcs> as Mmcs<EF>>::Error>
Verify a batch opening.
index
is the row index we’re opening for each matrix, following the same
semantics as open_batch
.
dimensions
is a slice whose ith element is the dimensions of the matrix being opened
in the ith openingfn commit_matrix<M>(&self, input: M) -> (Self::Commitment, Self::ProverData<M>)where
M: Matrix<T>,
fn commit_vec( &self, input: Vec<T>, ) -> (Self::Commitment, Self::ProverData<DenseMatrix<T>>)
fn get_matrix_heights<M>(&self, prover_data: &Self::ProverData<M>) -> Vec<usize>where
M: Matrix<T>,
Source§fn get_max_height<M>(&self, prover_data: &Self::ProverData<M>) -> usizewhere
M: Matrix<T>,
fn get_max_height<M>(&self, prover_data: &Self::ProverData<M>) -> usizewhere
M: Matrix<T>,
Get the largest height of any committed matrix.