pub type SparseRowMat<I, T, Rows = usize, Cols = usize> = SparseRowMat<Own<I, T, Rows, Cols>>;Expand description
owning sparse row major matrix
Aliased Type§
#[repr(transparent)]pub struct SparseRowMat<I, T, Rows = usize, Cols = usize>(pub Own<I, T, Rows, Cols>);Tuple Fields§
§0: Own<I, T, Rows, Cols>Implementations§
Source§impl<Rows: Shape, Cols: Shape, I: Index, T> SparseRowMat<I, T, Rows, Cols>
impl<Rows: Shape, Cols: Shape, I: Index, T> SparseRowMat<I, T, Rows, Cols>
Sourcepub fn new(symbolic: SymbolicSparseRowMat<I, Rows, Cols>, val: Vec<T>) -> Self
pub fn new(symbolic: SymbolicSparseRowMat<I, Rows, Cols>, val: Vec<T>) -> Self
Sourcepub fn parts(&self) -> (SymbolicSparseRowMatRef<'_, I, Rows, Cols>, &[T])
pub fn parts(&self) -> (SymbolicSparseRowMatRef<'_, I, Rows, Cols>, &[T])
Sourcepub fn parts_mut(
&mut self,
) -> (SymbolicSparseRowMatRef<'_, I, Rows, Cols>, &mut [T])
pub fn parts_mut( &mut self, ) -> (SymbolicSparseRowMatRef<'_, I, Rows, Cols>, &mut [T])
Sourcepub fn into_parts(self) -> (SymbolicSparseRowMat<I, Rows, Cols>, Vec<T>)
pub fn into_parts(self) -> (SymbolicSparseRowMat<I, Rows, Cols>, Vec<T>)
Sourcepub fn symbolic(&self) -> SymbolicSparseRowMatRef<'_, I, Rows, Cols>
pub fn symbolic(&self) -> SymbolicSparseRowMatRef<'_, I, Rows, Cols>
Sourcepub fn val_of_row(&self, j: Idx<Rows>) -> &[T]
pub fn val_of_row(&self, j: Idx<Rows>) -> &[T]
Sourcepub fn val_of_row_mut(&mut self, j: Idx<Rows>) -> &mut [T]
pub fn val_of_row_mut(&mut self, j: Idx<Rows>) -> &mut [T]
Sourcepub fn as_shape<V: Shape, H: Shape>(
&self,
nrows: V,
ncols: H,
) -> SparseRowMatRef<'_, I, T, V, H>
pub fn as_shape<V: Shape, H: Shape>( &self, nrows: V, ncols: H, ) -> SparseRowMatRef<'_, I, T, V, H>
Sourcepub fn as_shape_mut<V: Shape, H: Shape>(
&mut self,
nrows: V,
ncols: H,
) -> SparseRowMatMut<'_, I, T, V, H>
pub fn as_shape_mut<V: Shape, H: Shape>( &mut self, nrows: V, ncols: H, ) -> SparseRowMatMut<'_, I, T, V, H>
Sourcepub fn into_shape<V: Shape, H: Shape>(
self,
nrows: V,
ncols: H,
) -> SparseRowMat<I, T, V, H>
pub fn into_shape<V: Shape, H: Shape>( self, nrows: V, ncols: H, ) -> SparseRowMat<I, T, V, H>
Sourcepub fn as_dyn(&self) -> SparseRowMatRef<'_, I, T>
pub fn as_dyn(&self) -> SparseRowMatRef<'_, I, T>
Sourcepub fn as_dyn_mut(&mut self) -> SparseRowMatMut<'_, I, T>
pub fn as_dyn_mut(&mut self) -> SparseRowMatMut<'_, I, T>
Sourcepub fn into_dyn(self) -> SparseRowMat<I, T>
pub fn into_dyn(self) -> SparseRowMat<I, T>
Sourcepub fn as_ref(&self) -> SparseRowMatRef<'_, I, T, Rows, Cols>
pub fn as_ref(&self) -> SparseRowMatRef<'_, I, T, Rows, Cols>
Sourcepub fn transpose(&self) -> SparseColMatRef<'_, I, T, Cols, Rows>
pub fn transpose(&self) -> SparseColMatRef<'_, I, T, Cols, Rows>
Sourcepub fn transpose_mut(&mut self) -> SparseColMatMut<'_, I, T, Cols, Rows>
pub fn transpose_mut(&mut self) -> SparseColMatMut<'_, I, T, Cols, Rows>
Sourcepub fn into_transpose(self) -> SparseColMat<I, T, Cols, Rows>
pub fn into_transpose(self) -> SparseColMat<I, T, Cols, Rows>
Sourcepub fn conjugate(&self) -> SparseRowMatRef<'_, I, T::Conj, Rows, Cols>where
T: Conjugate,
pub fn conjugate(&self) -> SparseRowMatRef<'_, I, T::Conj, Rows, Cols>where
T: Conjugate,
Sourcepub fn conjugate_mut(&mut self) -> SparseRowMatMut<'_, I, T::Conj, Rows, Cols>where
T: Conjugate,
pub fn conjugate_mut(&mut self) -> SparseRowMatMut<'_, I, T::Conj, Rows, Cols>where
T: Conjugate,
Sourcepub fn into_conjugate(self) -> SparseRowMat<I, T::Conj, Rows, Cols>where
T: Conjugate,
pub fn into_conjugate(self) -> SparseRowMat<I, T::Conj, Rows, Cols>where
T: Conjugate,
Sourcepub fn adjoint(&self) -> SparseColMatRef<'_, I, T::Conj, Cols, Rows>where
T: Conjugate,
pub fn adjoint(&self) -> SparseColMatRef<'_, I, T::Conj, Cols, Rows>where
T: Conjugate,
Sourcepub fn adjoint_mut(&mut self) -> SparseColMatMut<'_, I, T::Conj, Cols, Rows>where
T: Conjugate,
pub fn adjoint_mut(&mut self) -> SparseColMatMut<'_, I, T::Conj, Cols, Rows>where
T: Conjugate,
Sourcepub fn into_adjoint(self) -> SparseColMat<I, T::Conj, Cols, Rows>where
T: Conjugate,
pub fn into_adjoint(self) -> SparseColMat<I, T::Conj, Cols, Rows>where
T: Conjugate,
Sourcepub fn canonical(&self) -> SparseRowMatRef<'_, I, T::Canonical, Rows, Cols>where
T: Conjugate,
pub fn canonical(&self) -> SparseRowMatRef<'_, I, T::Canonical, Rows, Cols>where
T: Conjugate,
Sourcepub fn canonical_mut(
&mut self,
) -> SparseRowMatMut<'_, I, T::Canonical, Rows, Cols>where
T: Conjugate,
pub fn canonical_mut(
&mut self,
) -> SparseRowMatMut<'_, I, T::Canonical, Rows, Cols>where
T: Conjugate,
Sourcepub fn into_canonical(self) -> SparseRowMat<I, T::Canonical, Rows, Cols>where
T: Conjugate,
pub fn into_canonical(self) -> SparseRowMat<I, T::Canonical, Rows, Cols>where
T: Conjugate,
Sourcepub fn to_col_major(
&self,
) -> Result<SparseColMat<I, T::Canonical, Rows, Cols>, FaerError>where
T: Conjugate,
pub fn to_col_major(
&self,
) -> Result<SparseColMat<I, T::Canonical, Rows, Cols>, FaerError>where
T: Conjugate,
Sourcepub fn new_from_argsort(
symbolic: SymbolicSparseRowMat<I, Rows, Cols>,
argsort: &Argsort<I>,
val: &[T],
) -> Result<Self, FaerError>where
T: ComplexField,
pub fn new_from_argsort(
symbolic: SymbolicSparseRowMat<I, Rows, Cols>,
argsort: &Argsort<I>,
val: &[T],
) -> Result<Self, FaerError>where
T: ComplexField,
create a new matrix from a previously created symbolic structure and value order
the provided values must correspond to the same indices that were provided in the function call from which the order was created
Sourcepub fn try_new_from_triplets(
nrows: Rows,
ncols: Cols,
entries: &[Triplet<Idx<Rows, I>, Idx<Cols, I>, T>],
) -> Result<Self, CreationError>where
T: ComplexField,
pub fn try_new_from_triplets(
nrows: Rows,
ncols: Cols,
entries: &[Triplet<Idx<Rows, I>, Idx<Cols, I>, T>],
) -> Result<Self, CreationError>where
T: ComplexField,
create a new matrix from triplets
Sourcepub fn try_new_from_nonnegative_triplets(
nrows: Rows,
ncols: Cols,
entries: &[Triplet<MaybeIdx<Rows, I>, MaybeIdx<Cols, I>, T>],
) -> Result<Self, CreationError>where
T: ComplexField,
pub fn try_new_from_nonnegative_triplets(
nrows: Rows,
ncols: Cols,
entries: &[Triplet<MaybeIdx<Rows, I>, MaybeIdx<Cols, I>, T>],
) -> Result<Self, CreationError>where
T: ComplexField,
create a new matrix from triplets
negative indices are ignored
Methods from Deref<Target = SymbolicSparseRowMat<I, Rows, Cols>>§
Sourcepub fn shape(&self) -> (Rows, Cols)
pub fn shape(&self) -> (Rows, Cols)
returns the number of rows and columns of the matrix
Sourcepub fn to_owned(&self) -> Result<SymbolicSparseRowMat<I, Rows, Cols>, FaerError>
pub fn to_owned(&self) -> Result<SymbolicSparseRowMat<I, Rows, Cols>, FaerError>
returns a newly allocated matrix holding the values of self
Sourcepub fn to_col_major(
&self,
) -> Result<SymbolicSparseColMat<I, Rows, Cols>, FaerError>
pub fn to_col_major( &self, ) -> Result<SymbolicSparseColMat<I, Rows, Cols>, FaerError>
returns a newly allocated matrix holding the values of self in column major format
Sourcepub fn compute_nnz(&self) -> usize
pub fn compute_nnz(&self) -> usize
returns the number of non-zero elements in the matrix
Sourcepub fn row_range(&self, i: Idx<Rows>) -> Range<usize>
pub fn row_range(&self, i: Idx<Rows>) -> Range<usize>
returns the range specifying the indices of row i
Sourcepub unsafe fn row_range_unchecked(&self, i: Idx<Rows>) -> Range<usize>
pub unsafe fn row_range_unchecked(&self, i: Idx<Rows>) -> Range<usize>
returns the range specifying the indices of row i, without bound checks
Sourcepub fn col_idx_of_row_raw(&self, i: Idx<Rows>) -> &'a [Idx<Cols, I>] ⓘ
pub fn col_idx_of_row_raw(&self, i: Idx<Rows>) -> &'a [Idx<Cols, I>] ⓘ
returns the column indices of row i
Sourcepub fn col_idx_of_row(
&self,
i: Idx<Rows>,
) -> impl 'a + Clone + ExactSizeIterator + DoubleEndedIterator<Item = Idx<Cols>>where
Rows: 'a,
Cols: 'a,
pub fn col_idx_of_row(
&self,
i: Idx<Rows>,
) -> impl 'a + Clone + ExactSizeIterator + DoubleEndedIterator<Item = Idx<Cols>>where
Rows: 'a,
Cols: 'a,
returns the column indices of row i
Sourcepub fn shape(&self) -> (Rows, Cols)
pub fn shape(&self) -> (Rows, Cols)
Sourcepub fn transpose(&self) -> SymbolicSparseColMatRef<'_, I, Cols, Rows>
pub fn transpose(&self) -> SymbolicSparseColMatRef<'_, I, Cols, Rows>
Sourcepub fn to_owned(&self) -> Result<SymbolicSparseRowMat<I, Rows, Cols>, FaerError>
pub fn to_owned(&self) -> Result<SymbolicSparseRowMat<I, Rows, Cols>, FaerError>
Sourcepub fn to_col_major(
&self,
) -> Result<SymbolicSparseColMat<I, Rows, Cols>, FaerError>
pub fn to_col_major( &self, ) -> Result<SymbolicSparseColMat<I, Rows, Cols>, FaerError>
Sourcepub fn compute_nnz(&self) -> usize
pub fn compute_nnz(&self) -> usize
Sourcepub unsafe fn row_range_unchecked(&self, i: Idx<Rows>) -> Range<usize>
pub unsafe fn row_range_unchecked(&self, i: Idx<Rows>) -> Range<usize>
Sourcepub fn col_idx_of_row_raw(&self, i: Idx<Rows>) -> &[Idx<Cols, I>] ⓘ
pub fn col_idx_of_row_raw(&self, i: Idx<Rows>) -> &[Idx<Cols, I>] ⓘ
Sourcepub fn col_idx_of_row(
&self,
i: Idx<Rows>,
) -> impl '_ + Clone + ExactSizeIterator + DoubleEndedIterator<Item = Idx<Cols>>
pub fn col_idx_of_row( &self, i: Idx<Rows>, ) -> impl '_ + Clone + ExactSizeIterator + DoubleEndedIterator<Item = Idx<Cols>>
Sourcepub fn as_shape<V: Shape, H: Shape>(
&self,
nrows: V,
ncols: H,
) -> SymbolicSparseRowMatRef<'_, I, V, H>
pub fn as_shape<V: Shape, H: Shape>( &self, nrows: V, ncols: H, ) -> SymbolicSparseRowMatRef<'_, I, V, H>
Sourcepub fn as_dyn(&self) -> SymbolicSparseRowMatRef<'_, I>
pub fn as_dyn(&self) -> SymbolicSparseRowMatRef<'_, I>
Sourcepub fn as_ref(&self) -> SymbolicSparseRowMatRef<'_, I, Rows, Cols>
pub fn as_ref(&self) -> SymbolicSparseRowMatRef<'_, I, Rows, Cols>
Returns a view over the symbolic structure of self.
Trait Implementations§
Source§impl<I: Index, T: ComplexField, ViewT: Conjugate<Canonical = T>> BiLinOp<T> for SparseRowMat<I, ViewT>
impl<I: Index, T: ComplexField, ViewT: Conjugate<Canonical = T>> BiLinOp<T> for SparseRowMat<I, ViewT>
Source§fn transpose_apply_scratch(&self, rhs_ncols: usize, par: Par) -> StackReq
fn transpose_apply_scratch(&self, rhs_ncols: usize, par: Par) -> StackReq
self to a matrix with rhs_ncols columnsSource§impl<I: Index, T: ComplexField, ViewT: Conjugate<Canonical = T>> BiPrecond<T> for SparseRowMat<I, ViewT>
impl<I: Index, T: ComplexField, ViewT: Conjugate<Canonical = T>> BiPrecond<T> for SparseRowMat<I, ViewT>
Source§fn transpose_apply_in_place_scratch(
&self,
rhs_ncols: usize,
par: Par,
) -> StackReq
fn transpose_apply_in_place_scratch( &self, rhs_ncols: usize, par: Par, ) -> StackReq
self to a matrix with rhs_ncols columns in placeSource§impl<I: Index, T: ComplexField, ViewT: Conjugate<Canonical = T>> LinOp<T> for SparseRowMat<I, ViewT>
impl<I: Index, T: ComplexField, ViewT: Conjugate<Canonical = T>> LinOp<T> for SparseRowMat<I, ViewT>
Source§fn apply_scratch(&self, rhs_ncols: usize, par: Par) -> StackReq
fn apply_scratch(&self, rhs_ncols: usize, par: Par) -> StackReq
self or the conjugate o
self to a matrix with rhs_ncols columnsSource§impl<I: Index, T: ComplexField, ViewT: Conjugate<Canonical = T>> Precond<T> for SparseRowMat<I, ViewT>
impl<I: Index, T: ComplexField, ViewT: Conjugate<Canonical = T>> Precond<T> for SparseRowMat<I, ViewT>
Source§fn apply_in_place_scratch(&self, rhs_ncols: usize, par: Par) -> StackReq
fn apply_in_place_scratch(&self, rhs_ncols: usize, par: Par) -> StackReq
self or the conjugate of
self to a matrix with rhs_ncols columns in place