#[repr(C)]pub struct Mat<E: Entity> { /* private fields */ }Implementations§
source§impl<E: Entity> Mat<E>
impl<E: Entity> Mat<E>
pub fn new() -> Self
sourcepub fn with_capacity(row_capacity: usize, col_capacity: usize) -> Self
pub fn with_capacity(row_capacity: usize, col_capacity: usize) -> Self
Returns a new matrix with dimensions (0, 0), with enough capacity to hold a maximum of
row_capacity rows and col_capacity columns without reallocating. If either is 0,
the matrix will not allocate.
Panics
Panics if the total capacity in bytes exceeds isize::MAX.
sourcepub fn with_dims(
nrows: usize,
ncols: usize,
f: impl FnMut(usize, usize) -> E
) -> Self
pub fn with_dims( nrows: usize, ncols: usize, f: impl FnMut(usize, usize) -> E ) -> Self
Returns a new matrix with dimensions (nrows, ncols), filled with the provided function.
Panics
Panics if the total capacity in bytes exceeds isize::MAX.
sourcepub fn zeros(nrows: usize, ncols: usize) -> Selfwhere
E: ComplexField,
pub fn zeros(nrows: usize, ncols: usize) -> Selfwhere E: ComplexField,
Returns a new matrix with dimensions (nrows, ncols), filled with zeros.
Panics
Panics if the total capacity in bytes exceeds isize::MAX.
sourcepub unsafe fn set_dims(&mut self, nrows: usize, ncols: usize)
pub unsafe fn set_dims(&mut self, nrows: usize, ncols: usize)
Set the dimensions of the matrix.
Safety
nrowsmust be less thanself.row_capacity().ncolsmust be less thanself.col_capacity().- The elements that were previously out of bounds but are now in bounds must be initialized.
sourcepub fn as_mut_ptr(&mut self) -> E::Group<*mut E::Unit>
pub fn as_mut_ptr(&mut self) -> E::Group<*mut E::Unit>
Returns a mutable pointer to the data of the matrix.
sourcepub fn row_capacity(&self) -> usize
pub fn row_capacity(&self) -> usize
Returns the row capacity, that is, the number of rows that the matrix is able to hold without needing to reallocate, excluding column insertions.
sourcepub fn col_capacity(&self) -> usize
pub fn col_capacity(&self) -> usize
Returns the column capacity, that is, the number of columns that the matrix is able to hold without needing to reallocate, excluding row insertions.
sourcepub fn row_stride(&self) -> isize
pub fn row_stride(&self) -> isize
Returns the offset between the first elements of two successive rows in the matrix.
Always returns 1 since the matrix is column major.
sourcepub fn col_stride(&self) -> isize
pub fn col_stride(&self) -> isize
Returns the offset between the first elements of two successive columns in the matrix.
sourcepub fn reserve_exact(&mut self, row_capacity: usize, col_capacity: usize)
pub fn reserve_exact(&mut self, row_capacity: usize, col_capacity: usize)
Reserves the minimum capacity for row_capacity rows and col_capacity
columns without reallocating. Does nothing if the capacity is already sufficient.
Panics
Panics if the new total capacity in bytes exceeds isize::MAX.
sourcepub fn resize_with(
&mut self,
new_nrows: usize,
new_ncols: usize,
f: impl FnMut(usize, usize) -> E
)
pub fn resize_with( &mut self, new_nrows: usize, new_ncols: usize, f: impl FnMut(usize, usize) -> E )
Resizes the matrix in-place so that the new dimensions are (new_nrows, new_ncols).
Elements that are now out of bounds are dropped, while new elements are created with the
given function f, so that elements at position (i, j) are created by calling f(i, j).
pub unsafe fn read_unchecked(&self, row: usize, col: usize) -> E
pub fn read(&self, row: usize, col: usize) -> E
pub unsafe fn write_unchecked(&mut self, row: usize, col: usize, value: E)
pub fn write(&mut self, row: usize, col: usize, value: E)
sourcepub fn conjugate(&self) -> MatRef<'_, E::Conj>where
E: Conjugate,
pub fn conjugate(&self) -> MatRef<'_, E::Conj>where E: Conjugate,
Returns the conjugate of self.