pub struct SpMat<R> { /* private fields */ }Implementations§
Source§impl<R> SpMat<R>
impl<R> SpMat<R>
pub fn data(&self) -> (&[usize], &[usize], &[R])
pub fn disassemble(self) -> (Vec<usize>, Vec<usize>, Vec<R>)
pub fn zero(shape: (usize, usize)) -> Self
pub fn is_zero(&self) -> boolwhere
R: Zero,
pub fn id(n: usize) -> Self
pub fn is_id(&self) -> bool
pub fn is_triang(&self, t: TriangularType) -> boolwhere
R: Zero,
pub fn iter(&self) -> impl Iterator<Item = (usize, usize, &R)>
pub fn iter_nz(&self) -> impl Iterator<Item = (usize, usize, &R)>where
R: Zero,
pub fn into_dense(self) -> Mat<R>
pub fn nnz(&self) -> usize
pub fn density(&self) -> f64
pub fn redundancy(&self) -> f64where
R: Zero,
pub fn mean_weight(&self) -> f64
Source§impl<R> SpMat<R>
impl<R> SpMat<R>
pub fn from_entries<T>(shape: (usize, usize), entries: T) -> Self
pub fn from_col_vecs<I>(nrows: usize, vecs: I) -> Selfwhere
I: IntoIterator<Item = SpVec<R>>,
pub fn from_dense_data<I>(shape: (usize, usize), data: I) -> Selfwhere
I: IntoIterator<Item = R>,
pub fn col_vec(&self, j: usize) -> SpVec<R>
pub fn transpose(&self) -> Self
pub fn extract<F>(&self, shape: (usize, usize), f: F) -> SpMat<R>
pub fn permute(&self, p: PermView<'_>, q: PermView<'_>) -> SpMat<R>
pub fn permute_rows(&self, p: PermView<'_>) -> SpMat<R>
pub fn permute_cols(&self, q: PermView<'_>) -> SpMat<R>
pub fn submat(&self, rows: Range<usize>, cols: Range<usize>) -> SpMat<R>
pub fn submat_rows(&self, rows: Range<usize>) -> SpMat<R>
pub fn submat_cols(&self, cols: Range<usize>) -> SpMat<R>
pub fn divide4(&self, point: (usize, usize)) -> [SpMat<R>; 4]
pub fn combine_blocks(blocks: [&SpMat<R>; 4]) -> SpMat<R>
pub fn concat(&self, b: &Self) -> Self
pub fn stack(&self, b: &Self) -> Self
pub fn extend_cols(&mut self, b: Self)
pub fn from_row_perm(p: PermView<'_>) -> Selfwhere
R: One,
pub fn from_col_perm(p: PermView<'_>) -> Selfwhere
R: One,
Trait Implementations§
Source§impl<'a, 'b, R> Add for SpMat<R>where
R: Scalar + ClosedAddAssign + ClosedSubAssign + ClosedMulAssign + Zero + One + Neg<Output = R>,
impl<'a, 'b, R> Add for SpMat<R>where
R: Scalar + ClosedAddAssign + ClosedSubAssign + ClosedMulAssign + Zero + One + Neg<Output = R>,
Source§impl<'a, 'b, R> Add<&'b SpMat<R>> for &'a SpMat<R>where
R: Scalar + ClosedAddAssign + ClosedSubAssign + ClosedMulAssign + Zero + One + Neg<Output = R>,
impl<'a, 'b, R> Add<&'b SpMat<R>> for &'a SpMat<R>where
R: Scalar + ClosedAddAssign + ClosedSubAssign + ClosedMulAssign + Zero + One + Neg<Output = R>,
Source§impl<'a, 'b, R> Add<&'b SpMat<R>> for SpMat<R>where
R: Scalar + ClosedAddAssign + ClosedSubAssign + ClosedMulAssign + Zero + One + Neg<Output = R>,
impl<'a, 'b, R> Add<&'b SpMat<R>> for SpMat<R>where
R: Scalar + ClosedAddAssign + ClosedSubAssign + ClosedMulAssign + Zero + One + Neg<Output = R>,
Source§impl<'a, 'b, R> Add<SpMat<R>> for &'a SpMat<R>where
R: Scalar + ClosedAddAssign + ClosedSubAssign + ClosedMulAssign + Zero + One + Neg<Output = R>,
impl<'a, 'b, R> Add<SpMat<R>> for &'a SpMat<R>where
R: Scalar + ClosedAddAssign + ClosedSubAssign + ClosedMulAssign + Zero + One + Neg<Output = R>,
Source§impl<'a, 'b, R> AddAssign for SpMat<R>where
R: Scalar + ClosedAddAssign + ClosedSubAssign + ClosedMulAssign + Zero + One + Neg<Output = R>,
impl<'a, 'b, R> AddAssign for SpMat<R>where
R: Scalar + ClosedAddAssign + ClosedSubAssign + ClosedMulAssign + Zero + One + Neg<Output = R>,
Source§fn add_assign(&mut self, rhs: SpMat<R>)
fn add_assign(&mut self, rhs: SpMat<R>)
Performs the
+= operation. Read moreSource§impl<'a, 'b, R> AddAssign<&'b SpMat<R>> for SpMat<R>where
R: Scalar + ClosedAddAssign + ClosedSubAssign + ClosedMulAssign + Zero + One + Neg<Output = R>,
impl<'a, 'b, R> AddAssign<&'b SpMat<R>> for SpMat<R>where
R: Scalar + ClosedAddAssign + ClosedSubAssign + ClosedMulAssign + Zero + One + Neg<Output = R>,
Source§fn add_assign(&mut self, rhs: &'b SpMat<R>)
fn add_assign(&mut self, rhs: &'b SpMat<R>)
Performs the
+= operation. Read moreimpl<R: Eq> Eq for SpMat<R>
Source§impl<'a, 'b, R> Mul for SpMat<R>where
R: Scalar + ClosedAddAssign + ClosedSubAssign + ClosedMulAssign + Zero + One + Neg<Output = R>,
impl<'a, 'b, R> Mul for SpMat<R>where
R: Scalar + ClosedAddAssign + ClosedSubAssign + ClosedMulAssign + Zero + One + Neg<Output = R>,
Source§impl<'a, 'b, R> Mul<&'b SpMat<R>> for &'a SpMat<R>where
R: Scalar + ClosedAddAssign + ClosedSubAssign + ClosedMulAssign + Zero + One + Neg<Output = R>,
impl<'a, 'b, R> Mul<&'b SpMat<R>> for &'a SpMat<R>where
R: Scalar + ClosedAddAssign + ClosedSubAssign + ClosedMulAssign + Zero + One + Neg<Output = R>,
Source§impl<'a, 'b, R> Mul<&'b SpMat<R>> for SpMat<R>where
R: Scalar + ClosedAddAssign + ClosedSubAssign + ClosedMulAssign + Zero + One + Neg<Output = R>,
impl<'a, 'b, R> Mul<&'b SpMat<R>> for SpMat<R>where
R: Scalar + ClosedAddAssign + ClosedSubAssign + ClosedMulAssign + Zero + One + Neg<Output = R>,
Source§impl<'a, 'b, R> Mul<SpMat<R>> for &'a SpMat<R>where
R: Scalar + ClosedAddAssign + ClosedSubAssign + ClosedMulAssign + Zero + One + Neg<Output = R>,
impl<'a, 'b, R> Mul<SpMat<R>> for &'a SpMat<R>where
R: Scalar + ClosedAddAssign + ClosedSubAssign + ClosedMulAssign + Zero + One + Neg<Output = R>,
Source§impl<'a, 'b, R> MulAssign for SpMat<R>where
R: Scalar + ClosedAddAssign + ClosedSubAssign + ClosedMulAssign + Zero + One + Neg<Output = R>,
impl<'a, 'b, R> MulAssign for SpMat<R>where
R: Scalar + ClosedAddAssign + ClosedSubAssign + ClosedMulAssign + Zero + One + Neg<Output = R>,
Source§fn mul_assign(&mut self, rhs: SpMat<R>)
fn mul_assign(&mut self, rhs: SpMat<R>)
Performs the
*= operation. Read moreSource§impl<'a, 'b, R> MulAssign<&'b SpMat<R>> for SpMat<R>where
R: Scalar + ClosedAddAssign + ClosedSubAssign + ClosedMulAssign + Zero + One + Neg<Output = R>,
impl<'a, 'b, R> MulAssign<&'b SpMat<R>> for SpMat<R>where
R: Scalar + ClosedAddAssign + ClosedSubAssign + ClosedMulAssign + Zero + One + Neg<Output = R>,
Source§fn mul_assign(&mut self, rhs: &'b SpMat<R>)
fn mul_assign(&mut self, rhs: &'b SpMat<R>)
Performs the
*= operation. Read moreimpl<R> StructuralPartialEq for SpMat<R>
Source§impl<'a, 'b, R> Sub for SpMat<R>where
R: Scalar + ClosedAddAssign + ClosedSubAssign + ClosedMulAssign + Zero + One + Neg<Output = R>,
impl<'a, 'b, R> Sub for SpMat<R>where
R: Scalar + ClosedAddAssign + ClosedSubAssign + ClosedMulAssign + Zero + One + Neg<Output = R>,
Source§impl<'a, 'b, R> Sub<&'b SpMat<R>> for &'a SpMat<R>where
R: Scalar + ClosedAddAssign + ClosedSubAssign + ClosedMulAssign + Zero + One + Neg<Output = R>,
impl<'a, 'b, R> Sub<&'b SpMat<R>> for &'a SpMat<R>where
R: Scalar + ClosedAddAssign + ClosedSubAssign + ClosedMulAssign + Zero + One + Neg<Output = R>,
Source§impl<'a, 'b, R> Sub<&'b SpMat<R>> for SpMat<R>where
R: Scalar + ClosedAddAssign + ClosedSubAssign + ClosedMulAssign + Zero + One + Neg<Output = R>,
impl<'a, 'b, R> Sub<&'b SpMat<R>> for SpMat<R>where
R: Scalar + ClosedAddAssign + ClosedSubAssign + ClosedMulAssign + Zero + One + Neg<Output = R>,
Source§impl<'a, 'b, R> Sub<SpMat<R>> for &'a SpMat<R>where
R: Scalar + ClosedAddAssign + ClosedSubAssign + ClosedMulAssign + Zero + One + Neg<Output = R>,
impl<'a, 'b, R> Sub<SpMat<R>> for &'a SpMat<R>where
R: Scalar + ClosedAddAssign + ClosedSubAssign + ClosedMulAssign + Zero + One + Neg<Output = R>,
Source§impl<'a, 'b, R> SubAssign for SpMat<R>where
R: Scalar + ClosedAddAssign + ClosedSubAssign + ClosedMulAssign + Zero + One + Neg<Output = R>,
impl<'a, 'b, R> SubAssign for SpMat<R>where
R: Scalar + ClosedAddAssign + ClosedSubAssign + ClosedMulAssign + Zero + One + Neg<Output = R>,
Source§fn sub_assign(&mut self, rhs: SpMat<R>)
fn sub_assign(&mut self, rhs: SpMat<R>)
Performs the
-= operation. Read moreSource§impl<'a, 'b, R> SubAssign<&'b SpMat<R>> for SpMat<R>where
R: Scalar + ClosedAddAssign + ClosedSubAssign + ClosedMulAssign + Zero + One + Neg<Output = R>,
impl<'a, 'b, R> SubAssign<&'b SpMat<R>> for SpMat<R>where
R: Scalar + ClosedAddAssign + ClosedSubAssign + ClosedMulAssign + Zero + One + Neg<Output = R>,
Source§fn sub_assign(&mut self, rhs: &'b SpMat<R>)
fn sub_assign(&mut self, rhs: &'b SpMat<R>)
Performs the
-= operation. Read moreAuto Trait Implementations§
impl<R> Freeze for SpMat<R>
impl<R> RefUnwindSafe for SpMat<R>where
R: RefUnwindSafe,
impl<R> Send for SpMat<R>where
R: Send,
impl<R> Sync for SpMat<R>where
R: Sync,
impl<R> Unpin for SpMat<R>where
R: Unpin,
impl<R> UnsafeUnpin for SpMat<R>
impl<R> UnwindSafe for SpMat<R>where
R: 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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T, Right> ClosedAdd<Right> for T
impl<T, Right> ClosedAdd<Right> for T
impl<T, Right> ClosedAddAssign<Right> for T
impl<T, Right> ClosedMul<Right> for T
impl<T, Right> ClosedMul<Right> for T
impl<T, Right> ClosedMulAssign<Right> for T
impl<T> ClosedNeg for Twhere
T: Neg<Output = T>,
impl<T> ClosedNeg for Twhere
T: Neg<Output = T>,
impl<T, Right> ClosedSub<Right> for T
impl<T, Right> ClosedSub<Right> for T
impl<T, Right> ClosedSubAssign<Right> for T
impl<T> ElemBase for T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
impl<T> Scalar for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§unsafe fn to_subset_unchecked(&self) -> SS
unsafe fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.