pub struct SquareMatrix<const N_ROWS: usize, const N_ELEMENTS: usize>(pub Matrix<N_ROWS, N_ROWS, N_ELEMENTS>);
Expand description
Represents a square matrix over PrimeField
elements
Tuple Fields§
§0: Matrix<N_ROWS, N_ROWS, N_ELEMENTS>
Implementations§
Source§impl<const N_ROWS: usize, const N_ELEMENTS: usize> SquareMatrix<N_ROWS, N_ELEMENTS>
impl<const N_ROWS: usize, const N_ELEMENTS: usize> SquareMatrix<N_ROWS, N_ELEMENTS>
Source§impl<const N_ROWS: usize, const N_ELEMENTS: usize> SquareMatrix<N_ROWS, N_ELEMENTS>
impl<const N_ROWS: usize, const N_ELEMENTS: usize> SquareMatrix<N_ROWS, N_ELEMENTS>
Sourcepub fn row_vector(&self, i: usize) -> Matrix<1, N_ROWS, N_ELEMENTS>
pub fn row_vector(&self, i: usize) -> Matrix<1, N_ROWS, N_ELEMENTS>
Get row vector at a specified row index.
Sourcepub fn new_2x2(a: Fq, b: Fq, c: Fq, d: Fq) -> SquareMatrix<2, 4>
pub fn new_2x2(a: Fq, b: Fq, c: Fq, d: Fq) -> SquareMatrix<2, 4>
Create a 2x2 SquareMatrix
from four elements.
Sourcepub const fn new_from_known(elements: [Fq; N_ELEMENTS]) -> Self
pub const fn new_from_known(elements: [Fq; N_ELEMENTS]) -> Self
Create a new matrix from a slice of elements.
Trait Implementations§
Source§impl<const N_ROWS: usize, const N_ELEMENTS: usize> Clone for SquareMatrix<N_ROWS, N_ELEMENTS>
impl<const N_ROWS: usize, const N_ELEMENTS: usize> Clone for SquareMatrix<N_ROWS, N_ELEMENTS>
Source§fn clone(&self) -> SquareMatrix<N_ROWS, N_ELEMENTS>
fn clone(&self) -> SquareMatrix<N_ROWS, N_ELEMENTS>
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<const N_ROWS: usize, const N_ELEMENTS: usize> Debug for SquareMatrix<N_ROWS, N_ELEMENTS>
impl<const N_ROWS: usize, const N_ELEMENTS: usize> Debug for SquareMatrix<N_ROWS, N_ELEMENTS>
Source§impl<const N_ROWS: usize, const N_ELEMENTS: usize> MatrixOperations for SquareMatrix<N_ROWS, N_ELEMENTS>
impl<const N_ROWS: usize, const N_ELEMENTS: usize> MatrixOperations for SquareMatrix<N_ROWS, N_ELEMENTS>
Source§fn hadamard_product(&self, rhs: &Self) -> Result<Self, PoseidonParameterError>where
Self: Sized,
fn hadamard_product(&self, rhs: &Self) -> Result<Self, PoseidonParameterError>where
Self: Sized,
Compute Hadamard (element-wise) product
Source§impl<const N_ROWS: usize, const N_ELEMENTS: usize> Mul<Fq> for SquareMatrix<N_ROWS, N_ELEMENTS>
Multiply scalar by SquareMatrix
impl<const N_ROWS: usize, const N_ELEMENTS: usize> Mul<Fq> for SquareMatrix<N_ROWS, N_ELEMENTS>
Multiply scalar by SquareMatrix
Source§impl<const N_ROWS: usize, const N_ELEMENTS: usize> PartialEq for SquareMatrix<N_ROWS, N_ELEMENTS>
impl<const N_ROWS: usize, const N_ELEMENTS: usize> PartialEq for SquareMatrix<N_ROWS, N_ELEMENTS>
Source§fn eq(&self, other: &SquareMatrix<N_ROWS, N_ELEMENTS>) -> bool
fn eq(&self, other: &SquareMatrix<N_ROWS, N_ELEMENTS>) -> bool
Tests for
self
and other
values to be equal, and is used by ==
.Source§impl<const N_ROWS: usize, const N_ELEMENTS: usize> SquareMatrixOperations for SquareMatrix<N_ROWS, N_ELEMENTS>
impl<const N_ROWS: usize, const N_ELEMENTS: usize> SquareMatrixOperations for SquareMatrix<N_ROWS, N_ELEMENTS>
Source§fn determinant(&self) -> Fq
fn determinant(&self) -> Fq
Compute the matrix determinant
impl<const N_ROWS: usize, const N_ELEMENTS: usize> Eq for SquareMatrix<N_ROWS, N_ELEMENTS>
impl<const N_ROWS: usize, const N_ELEMENTS: usize> StructuralPartialEq for SquareMatrix<N_ROWS, N_ELEMENTS>
Auto Trait Implementations§
impl<const N_ROWS: usize, const N_ELEMENTS: usize> Freeze for SquareMatrix<N_ROWS, N_ELEMENTS>
impl<const N_ROWS: usize, const N_ELEMENTS: usize> RefUnwindSafe for SquareMatrix<N_ROWS, N_ELEMENTS>
impl<const N_ROWS: usize, const N_ELEMENTS: usize> Send for SquareMatrix<N_ROWS, N_ELEMENTS>
impl<const N_ROWS: usize, const N_ELEMENTS: usize> Sync for SquareMatrix<N_ROWS, N_ELEMENTS>
impl<const N_ROWS: usize, const N_ELEMENTS: usize> Unpin for SquareMatrix<N_ROWS, N_ELEMENTS>
impl<const N_ROWS: usize, const N_ELEMENTS: usize> UnwindSafe for SquareMatrix<N_ROWS, N_ELEMENTS>
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