pub struct SparseMatrix<S: Semiring> {
pub rows: usize,
pub cols: usize,
pub entries: Vec<SparseEntry<S>>,
}Expand description
A coordinate-list sparse matrix.
Fields§
§rows: usizeNumber of rows.
cols: usizeNumber of columns.
entries: Vec<SparseEntry<S>>Stored entries (canonical after SparseMatrix::canonicalize).
Implementations§
Source§impl<S: Semiring> SparseMatrix<S>
impl<S: Semiring> SparseMatrix<S>
Sourcepub fn try_new(rows: usize, cols: usize) -> Result<Self, AlgebraError>
pub fn try_new(rows: usize, cols: usize) -> Result<Self, AlgebraError>
Checked empty rows x cols sparse matrix.
Sourcepub fn entries(&self) -> &[SparseEntry<S>]
pub fn entries(&self) -> &[SparseEntry<S>]
Read-only sparse entries.
Sourcepub fn from_entries(
rows: usize,
cols: usize,
entries: Vec<SparseEntry<S>>,
) -> Result<Self, AlgebraError>
pub fn from_entries( rows: usize, cols: usize, entries: Vec<SparseEntry<S>>, ) -> Result<Self, AlgebraError>
Build from entries, rejecting any whose coordinates are out of range.
Sourcepub fn validate(&self) -> Result<(), AlgebraError>
pub fn validate(&self) -> Result<(), AlgebraError>
Validate public sparse dimensions and entry coordinates.
Sourcepub fn canonicalize(&mut self)
pub fn canonicalize(&mut self)
Sort entries by (row, col), merge duplicates by semiring add, and
drop entries equal to zero.
Sourcepub fn to_dense(&self) -> Result<Matrix<S>, AlgebraError>
pub fn to_dense(&self) -> Result<Matrix<S>, AlgebraError>
Densify, filling absent positions with the semiring zero.
Sourcepub fn from_dense_nonzero(dense: &Matrix<S>) -> Result<Self, AlgebraError>
pub fn from_dense_nonzero(dense: &Matrix<S>) -> Result<Self, AlgebraError>
Build a canonical sparse matrix from a dense one, keeping non-zero
entries only.
Trait Implementations§
Source§impl<S: Clone + Semiring> Clone for SparseMatrix<S>
impl<S: Clone + Semiring> Clone for SparseMatrix<S>
Source§fn clone(&self) -> SparseMatrix<S>
fn clone(&self) -> SparseMatrix<S>
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl<S: PartialEq + Semiring> StructuralPartialEq for SparseMatrix<S>
Auto Trait Implementations§
impl<S> Freeze for SparseMatrix<S>
impl<S> RefUnwindSafe for SparseMatrix<S>where
S: RefUnwindSafe,
impl<S> Send for SparseMatrix<S>where
S: Send,
impl<S> Sync for SparseMatrix<S>where
S: Sync,
impl<S> Unpin for SparseMatrix<S>where
S: Unpin,
impl<S> UnsafeUnpin for SparseMatrix<S>
impl<S> UnwindSafe for SparseMatrix<S>where
S: 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