pub type SparseColMat<I, T, Rows = usize, Cols = usize> = SparseColMat<Own<I, T, Rows, Cols>>;Expand description
owning sparse column major matrix
Aliased Type§
#[repr(transparent)]pub struct SparseColMat<I, T, Rows = usize, Cols = usize>(/* private fields */);Implementations§
Source§impl<Rows: Shape, Cols: Shape, I: Index, T> SparseColMat<I, T, Rows, Cols>
impl<Rows: Shape, Cols: Shape, I: Index, T> SparseColMat<I, T, Rows, Cols>
Sourcepub fn new(symbolic: SymbolicSparseColMat<I, Rows, Cols>, val: Vec<T>) -> Self
pub fn new(symbolic: SymbolicSparseColMat<I, Rows, Cols>, val: Vec<T>) -> Self
see [SparseColMatRef::new]
Sourcepub fn parts(&self) -> (SymbolicSparseColMatRef<'_, I, Rows, Cols>, &[T])
pub fn parts(&self) -> (SymbolicSparseColMatRef<'_, I, Rows, Cols>, &[T])
see [SparseColMatRef::parts]
Sourcepub fn parts_mut(
&mut self,
) -> (SymbolicSparseColMatRef<'_, I, Rows, Cols>, &mut [T])
pub fn parts_mut( &mut self, ) -> (SymbolicSparseColMatRef<'_, I, Rows, Cols>, &mut [T])
see [SparseColMatRef::parts]
Sourcepub fn into_parts(self) -> (SymbolicSparseColMat<I, Rows, Cols>, Vec<T>)
pub fn into_parts(self) -> (SymbolicSparseColMat<I, Rows, Cols>, Vec<T>)
see [SparseColMatRef::parts]
Sourcepub fn symbolic(&self) -> SymbolicSparseColMatRef<'_, I, Rows, Cols>
pub fn symbolic(&self) -> SymbolicSparseColMatRef<'_, I, Rows, Cols>
see [SparseColMatRef::symbolic]
Sourcepub fn val_of_col(&self, j: Idx<Cols>) -> &[T]
pub fn val_of_col(&self, j: Idx<Cols>) -> &[T]
see [SparseColMatRef::val_of_col]
Sourcepub fn val_of_col_mut(&mut self, j: Idx<Cols>) -> &mut [T]
pub fn val_of_col_mut(&mut self, j: Idx<Cols>) -> &mut [T]
see [SparseColMatRef::val_of_col]
Sourcepub fn as_shape<V: Shape, H: Shape>(
&self,
nrows: V,
ncols: H,
) -> SparseColMatRef<'_, I, T, V, H>
pub fn as_shape<V: Shape, H: Shape>( &self, nrows: V, ncols: H, ) -> SparseColMatRef<'_, I, T, V, H>
see [SparseColMatRef::as_shape]
Sourcepub fn as_shape_mut<V: Shape, H: Shape>(
&mut self,
nrows: V,
ncols: H,
) -> SparseColMatMut<'_, I, T, V, H>
pub fn as_shape_mut<V: Shape, H: Shape>( &mut self, nrows: V, ncols: H, ) -> SparseColMatMut<'_, I, T, V, H>
see [SparseColMatRef::as_shape]
Sourcepub fn into_shape<V: Shape, H: Shape>(
self,
nrows: V,
ncols: H,
) -> SparseColMat<I, T, V, H>
pub fn into_shape<V: Shape, H: Shape>( self, nrows: V, ncols: H, ) -> SparseColMat<I, T, V, H>
see [SparseColMatRef::as_shape]
Sourcepub fn as_dyn(&self) -> SparseColMatRef<'_, I, T>
pub fn as_dyn(&self) -> SparseColMatRef<'_, I, T>
see [SparseColMatRef::as_dyn]
Sourcepub fn as_dyn_mut(&mut self) -> SparseColMatMut<'_, I, T>
pub fn as_dyn_mut(&mut self) -> SparseColMatMut<'_, I, T>
see [SparseColMatRef::as_dyn]
Sourcepub fn into_dyn(self) -> SparseColMat<I, T>
pub fn into_dyn(self) -> SparseColMat<I, T>
see [SparseColMatRef::as_dyn]
Sourcepub fn as_ref(&self) -> SparseColMatRef<'_, I, T, Rows, Cols>
pub fn as_ref(&self) -> SparseColMatRef<'_, I, T, Rows, Cols>
see [SparseColMatRef::as_ref]
Sourcepub fn transpose(&self) -> SparseRowMatRef<'_, I, T, Cols, Rows>
pub fn transpose(&self) -> SparseRowMatRef<'_, I, T, Cols, Rows>
see [SparseColMatRef::transpose]
Sourcepub fn transpose_mut(&mut self) -> SparseRowMatMut<'_, I, T, Cols, Rows>
pub fn transpose_mut(&mut self) -> SparseRowMatMut<'_, I, T, Cols, Rows>
see [SparseColMatRef::transpose]
Sourcepub fn into_transpose(self) -> SparseRowMat<I, T, Cols, Rows>
pub fn into_transpose(self) -> SparseRowMat<I, T, Cols, Rows>
see [SparseColMatRef::transpose]
Sourcepub fn conjugate(&self) -> SparseColMatRef<'_, I, T::Conj, Rows, Cols>where
T: Conjugate,
pub fn conjugate(&self) -> SparseColMatRef<'_, I, T::Conj, Rows, Cols>where
T: Conjugate,
see [SparseColMatRef::conjugate]
Sourcepub fn conjugate_mut(&mut self) -> SparseColMatMut<'_, I, T::Conj, Rows, Cols>where
T: Conjugate,
pub fn conjugate_mut(&mut self) -> SparseColMatMut<'_, I, T::Conj, Rows, Cols>where
T: Conjugate,
see [SparseColMatRef::conjugate]
Sourcepub fn into_conjugate(self) -> SparseColMat<I, T::Conj, Rows, Cols>where
T: Conjugate,
pub fn into_conjugate(self) -> SparseColMat<I, T::Conj, Rows, Cols>where
T: Conjugate,
see [SparseColMatRef::conjugate]
Sourcepub fn adjoint(&self) -> SparseRowMatRef<'_, I, T::Conj, Cols, Rows>where
T: Conjugate,
pub fn adjoint(&self) -> SparseRowMatRef<'_, I, T::Conj, Cols, Rows>where
T: Conjugate,
see [SparseColMatRef::adjoint]
Sourcepub fn adjoint_mut(&mut self) -> SparseRowMatMut<'_, I, T::Conj, Cols, Rows>where
T: Conjugate,
pub fn adjoint_mut(&mut self) -> SparseRowMatMut<'_, I, T::Conj, Cols, Rows>where
T: Conjugate,
see [SparseColMatRef::adjoint]
Sourcepub fn into_adjoint(self) -> SparseRowMat<I, T::Conj, Cols, Rows>where
T: Conjugate,
pub fn into_adjoint(self) -> SparseRowMat<I, T::Conj, Cols, Rows>where
T: Conjugate,
see [SparseColMatRef::adjoint]
Sourcepub fn canonical(&self) -> SparseColMatRef<'_, I, T::Canonical, Rows, Cols>where
T: Conjugate,
pub fn canonical(&self) -> SparseColMatRef<'_, I, T::Canonical, Rows, Cols>where
T: Conjugate,
see [SparseColMatRef::canonical]
Sourcepub fn canonical_mut(
&mut self,
) -> SparseColMatMut<'_, I, T::Canonical, Rows, Cols>where
T: Conjugate,
pub fn canonical_mut(
&mut self,
) -> SparseColMatMut<'_, I, T::Canonical, Rows, Cols>where
T: Conjugate,
see [SparseColMatRef::canonical]
Sourcepub fn into_canonical(self) -> SparseColMat<I, T::Canonical, Rows, Cols>where
T: Conjugate,
pub fn into_canonical(self) -> SparseColMat<I, T::Canonical, Rows, Cols>where
T: Conjugate,
see [SparseColMatRef::canonical]
Sourcepub fn to_row_major(
&self,
) -> Result<SparseRowMat<I, T::Canonical, Rows, Cols>, FaerError>where
T: Conjugate,
pub fn to_row_major(
&self,
) -> Result<SparseRowMat<I, T::Canonical, Rows, Cols>, FaerError>where
T: Conjugate,
see [SparseColMatRef::to_row_major]
Sourcepub fn to_dense(&self) -> Mat<T::Canonical, Rows, Cols>where
T: Conjugate,
pub fn to_dense(&self) -> Mat<T::Canonical, Rows, Cols>where
T: Conjugate,
see [SparseColMatRef::to_dense]
Sourcepub fn new_from_argsort(
symbolic: SymbolicSparseColMat<I, Rows, Cols>,
argsort: &Argsort<I>,
val: &[T],
) -> Result<Self, FaerError>where
T: ComplexField,
pub fn new_from_argsort(
symbolic: SymbolicSparseColMat<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
Trait Implementations§
Source§impl<I: Index, T: ComplexField, ViewT: Conjugate<Canonical = T>> BiLinOp<T> for SparseColMat<I, ViewT>
impl<I: Index, T: ComplexField, ViewT: Conjugate<Canonical = T>> BiLinOp<T> for SparseColMat<I, ViewT>
Source§fn transpose_apply_scratch(&self, rhs_ncols: usize, par: ParShape) -> StackReq
fn transpose_apply_scratch(&self, rhs_ncols: usize, par: ParShape) -> StackReq
self to a matrix with rhs_ncols columnsSource§impl<I: Index, T: ComplexField, ViewT: Conjugate<Canonical = T>> BiPrecond<T> for SparseColMat<I, ViewT>
impl<I: Index, T: ComplexField, ViewT: Conjugate<Canonical = T>> BiPrecond<T> for SparseColMat<I, ViewT>
Source§fn transpose_apply_in_place_scratch(
&self,
rhs_ncols: usize,
par: ParShape,
) -> StackReq
fn transpose_apply_in_place_scratch( &self, rhs_ncols: usize, par: ParShape, ) -> StackReq
self to a matrix with rhs_ncols columns in placeSource§impl<I: Index, T: ComplexField, ViewT: Conjugate<Canonical = T>> LinOp<T> for SparseColMat<I, ViewT>
impl<I: Index, T: ComplexField, ViewT: Conjugate<Canonical = T>> LinOp<T> for SparseColMat<I, ViewT>
Source§fn apply_scratch(&self, rhs_ncols: usize, par: ParShape) -> StackReq
fn apply_scratch(&self, rhs_ncols: usize, par: ParShape) -> 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 SparseColMat<I, ViewT>
impl<I: Index, T: ComplexField, ViewT: Conjugate<Canonical = T>> Precond<T> for SparseColMat<I, ViewT>
Source§fn apply_in_place_scratch(&self, rhs_ncols: usize, par: ParShape) -> StackReq
fn apply_in_place_scratch(&self, rhs_ncols: usize, par: ParShape) -> StackReq
self or the conjugate
of self to a matrix with rhs_ncols columns in place