ExtensionMmcs

Struct ExtensionMmcs 

Source
pub struct ExtensionMmcs<F, EF, InnerMmcs> { /* private fields */ }
Expand description

A wrapper to lift an MMCS from a base field F to an extension field EF.

ExtensionMmcs allows committing to and opening matrices over an extension field by internally using an MMCS defined on the base field. It works by flattening each extension field element into its base field coordinates for commitment, and then reconstructing them on opening.

Implementations§

Source§

impl<F, EF, InnerMmcs> ExtensionMmcs<F, EF, InnerMmcs>

Source

pub const fn new(inner: InnerMmcs) -> Self

Trait Implementations§

Source§

impl<F: Clone, EF: Clone, InnerMmcs: Clone> Clone for ExtensionMmcs<F, EF, InnerMmcs>

Source§

fn clone(&self) -> ExtensionMmcs<F, EF, InnerMmcs>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<F: Debug, EF: Debug, InnerMmcs: Debug> Debug for ExtensionMmcs<F, EF, InnerMmcs>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<F, EF, InnerMmcs> Mmcs<EF> for ExtensionMmcs<F, EF, InnerMmcs>
where F: Field, EF: ExtensionField<F>, InnerMmcs: Mmcs<F>,

Source§

type ProverData<M> = <InnerMmcs as Mmcs<F>>::ProverData<FlatMatrixView<F, EF, M>>

Source§

type Commitment = <InnerMmcs as Mmcs<F>>::Commitment

Source§

type Proof = <InnerMmcs as Mmcs<F>>::Proof

Source§

type Error = <InnerMmcs as Mmcs<F>>::Error

Source§

fn commit<M: Matrix<EF>>( &self, inputs: Vec<M>, ) -> (Self::Commitment, Self::ProverData<M>)

Commits to a batch of matrices at once and returns both the commitment and associated prover data. Read more
Source§

fn open_batch<M: Matrix<EF>>( &self, index: usize, prover_data: &Self::ProverData<M>, ) -> BatchOpening<EF, Self>

Opens a specific row (identified by index) from each matrix in the batch. Read more
Source§

fn get_matrices<'a, M: Matrix<EF>>( &self, prover_data: &'a Self::ProverData<M>, ) -> Vec<&'a M>

Returns references to all matrices originally committed to in the batch. Read more
Source§

fn verify_batch( &self, commit: &Self::Commitment, dimensions: &[Dimensions], index: usize, batch_opening: BatchOpeningRef<'_, EF, Self>, ) -> Result<(), Self::Error>

Verifies a batch opening at a specific row index against the original commitment. Read more
Source§

fn commit_matrix<M: Matrix<T>>( &self, input: M, ) -> (Self::Commitment, Self::ProverData<M>)

Convenience method to commit to a single matrix. Read more
Source§

fn commit_vec( &self, input: Vec<T>, ) -> (Self::Commitment, Self::ProverData<RowMajorMatrix<T>>)
where T: Clone + Send + Sync,

Convenience method to commit to a single column vector, treated as a column matrix. Read more
Source§

fn get_matrix_heights<M: Matrix<T>>( &self, prover_data: &Self::ProverData<M>, ) -> Vec<usize>

Returns the height (number of rows) of each matrix in the batch. Read more
Source§

fn get_max_height<M: Matrix<T>>( &self, prover_data: &Self::ProverData<M>, ) -> usize

Get the largest height of any committed matrix. Read more

Auto Trait Implementations§

§

impl<F, EF, InnerMmcs> Freeze for ExtensionMmcs<F, EF, InnerMmcs>
where InnerMmcs: Freeze,

§

impl<F, EF, InnerMmcs> RefUnwindSafe for ExtensionMmcs<F, EF, InnerMmcs>
where InnerMmcs: RefUnwindSafe, F: RefUnwindSafe, EF: RefUnwindSafe,

§

impl<F, EF, InnerMmcs> Send for ExtensionMmcs<F, EF, InnerMmcs>
where InnerMmcs: Send, F: Send, EF: Send,

§

impl<F, EF, InnerMmcs> Sync for ExtensionMmcs<F, EF, InnerMmcs>
where InnerMmcs: Sync, F: Sync, EF: Sync,

§

impl<F, EF, InnerMmcs> Unpin for ExtensionMmcs<F, EF, InnerMmcs>
where InnerMmcs: Unpin, F: Unpin, EF: Unpin,

§

impl<F, EF, InnerMmcs> UnwindSafe for ExtensionMmcs<F, EF, InnerMmcs>
where InnerMmcs: UnwindSafe, F: UnwindSafe, EF: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more