Struct faer::sparse::SparseColMat

source ·
pub struct SparseColMat<I: Index, E: Entity> { /* private fields */ }
Expand description

Sparse matrix in column-major format, either compressed or uncompressed.

Implementations§

source§

impl<I: Index, E: Entity> SparseColMat<I, E>

source

pub fn new( symbolic: SymbolicSparseColMat<I>, values: GroupFor<E, Vec<E::Unit>> ) -> Self

Creates a new sparse matrix view.

§Panics

Panics if the length of values is not equal to the length of symbolic.row_indices().

source

pub fn nrows(&self) -> usize

Returns the number of rows of the matrix.

source

pub fn ncols(&self) -> usize

Returns the number of columns of the matrix.

source

pub fn shape(&self) -> (usize, usize)

Returns the number of rows and columns of the matrix.

source

pub fn to_owned(&self) -> Result<SparseColMat<I, E::Canonical>, FaerError>

Copies self into a newly allocated matrix.

§Note

Allows unsorted matrices, producing an unsorted output.

source

pub fn to_sorted(&self) -> Result<SparseColMat<I, E::Canonical>, FaerError>

Copies self into a newly allocated matrix with sorted indices.

§Note

Allows unsorted matrices, producing a sorted output.

source

pub fn to_dense(&self) -> Mat<E::Canonical>

Copies self into a newly allocated dense matrix

source

pub fn to_row_major(&self) -> Result<SparseRowMat<I, E::Canonical>, FaerError>

Copies self into a newly allocated matrix, with row-major order.

§Note

Allows unsorted matrices, producing a sorted output.

source

pub fn sort_indices(&mut self)

Sorts the row indices in each column of the matrix in-place.

§Note

Allows unsorted matrices.

source

pub fn parts(&self) -> (SymbolicSparseColMatRef<'_, I>, GroupFor<E, &[E::Unit]>)

Decomposes the matrix into the symbolic part and the numerical values.

source

pub fn parts_mut( &mut self ) -> (SymbolicSparseColMatRef<'_, I>, GroupFor<E, &mut [E::Unit]>)

Decomposes the matrix into the symbolic part and the numerical values.

source

pub fn into_parts(self) -> (SymbolicSparseColMat<I>, GroupFor<E, Vec<E::Unit>>)

Decomposes the matrix into the symbolic part and the numerical values.

source

pub fn as_ref(&self) -> SparseColMatRef<'_, I, E>

Returns a view over self.

source

pub fn as_mut(&mut self) -> SparseColMatMut<'_, I, E>

Returns a mutable view over self.

Note that the symbolic structure cannot be changed through this view.

source

pub fn values(&self) -> GroupFor<E, &[E::Unit]>

Returns a slice over the numerical values of the matrix.

source

pub fn values_mut(&mut self) -> GroupFor<E, &mut [E::Unit]>

Returns a mutable slice over the numerical values of the matrix.

source

pub fn transpose(&self) -> SparseRowMatRef<'_, I, E>

Returns a view over the transpose of self in row-major format.

source

pub fn transpose_mut(&mut self) -> SparseRowMatMut<'_, I, E>

Returns a view over the transpose of self in row-major format.

source

pub fn conjugate(&self) -> SparseColMatRef<'_, I, E::Conj>
where E: Conjugate,

Returns a view over the conjugate of self.

source

pub fn conjugate_mut(&mut self) -> SparseColMatMut<'_, I, E::Conj>
where E: Conjugate,

Returns a view over the conjugate of self.

source

pub fn adjoint(&self) -> SparseRowMatRef<'_, I, E::Conj>
where E: Conjugate,

Returns a view over the conjugate transpose of self.

source

pub fn adjoint_mut(&mut self) -> SparseRowMatMut<'_, I, E::Conj>
where E: Conjugate,

Returns a view over the conjugate transpose of self.

source

pub fn canonicalize(&self) -> (SparseColMatRef<'_, I, E::Canonical>, Conj)
where E: Conjugate,

Returns a view over the canonical representation of self, and whether it needs to be conjugated or not.

source

pub fn canonicalize_mut( &mut self ) -> (SparseColMatMut<'_, I, E::Canonical>, Conj)
where E: Conjugate,

Returns a view over the canonical representation of self, and whether it needs to be conjugated or not.

source

pub fn fill_from_order_and_values( &mut self, order: &ValuesOrder<I>, values: GroupFor<E, &[E::Unit]>, mode: FillMode )
where E: ComplexField,

Fill the matrix from a previously created value order. The provided values must correspond to the same indices that were provided in the function call from which the order was created.

§Note

The symbolic structure is not changed.

source

pub fn into_transpose(self) -> SparseRowMat<I, E>

Returns the transpose of self in row-major format.

§Note

Allows unsorted matrices, producing an unsorted output.

source

pub fn into_conjugate(self) -> SparseColMat<I, E::Conj>
where E: Conjugate,

Returns the conjugate of self.

source

pub fn into_adjoint(self) -> SparseRowMat<I, E::Conj>
where E: Conjugate,

Returns a view over the conjugate transpose of self.

source

pub fn compute_nnz(&self) -> usize

Returns the number of symbolic non-zeros in the matrix.

The value is guaranteed to be less than I::Signed::MAX.

§Note

Allows unsorted matrices, but the output is a count of all the entries, including the duplicate ones.

source

pub fn col_ptrs(&self) -> &[I]

Returns the column pointers.

source

pub fn nnz_per_col(&self) -> Option<&[I]>

Returns the count of non-zeros per column of the matrix.

source

pub fn row_indices(&self) -> &[I]

Returns the row indices.

source

pub fn row_indices_of_col_raw(&self, j: usize) -> &[I]

Returns the row indices of column j.

§Panics

Panics if j >= self.ncols().

source

pub fn row_indices_of_col( &self, j: usize ) -> impl '_ + ExactSizeIterator + DoubleEndedIterator<Item = usize>

Returns the row indices of column j.

§Panics

Panics if j >= self.ncols().

source

pub fn values_of_col(&self, j: usize) -> GroupFor<E, &[E::Unit]>

Returns the numerical values of column j of the matrix.

§Panics:

Panics if j >= ncols.

source

pub fn values_of_col_mut(&mut self, j: usize) -> GroupFor<E, &mut [E::Unit]>

Returns the numerical values of column j of the matrix.

§Panics:

Panics if j >= ncols.

source

pub fn symbolic(&self) -> SymbolicSparseColMatRef<'_, I>

Returns the symbolic structure of the matrix.

source

pub fn col_range(&self, j: usize) -> Range<usize>

Returns the range that the column j occupies in self.row_indices().

§Panics

Panics if j >= self.ncols().

source

pub unsafe fn col_range_unchecked(&self, j: usize) -> Range<usize>

Returns the range that the column j occupies in self.row_indices().

§Safety

The behavior is undefined if j >= self.ncols().

source

pub fn get(&self, row: usize, col: usize) -> Option<GroupFor<E, &E::Unit>>

Returns a reference to the value at the given index, or None if the symbolic structure doesn’t contain it, or contains multiple values with the given index.

§Panics

Panics if row >= self.nrows().
Panics if col >= self.ncols().

source

pub fn get_mut( &mut self, row: usize, col: usize ) -> Option<GroupFor<E, &mut E::Unit>>

Returns a reference to the value at the given index, or None if the symbolic structure doesn’t contain it, or contains multiple values with the given index.

§Panics

Panics if row >= self.nrows().
Panics if col >= self.ncols().

source

pub fn get_all(&self, row: usize, col: usize) -> GroupFor<E, &[E::Unit]>

Returns a reference to a slice containing the values at the given index using a binary search.

§Panics

Panics if row >= self.nrows().
Panics if col >= self.ncols().

source

pub fn get_all_mut( &mut self, row: usize, col: usize ) -> GroupFor<E, &mut [E::Unit]>

Returns a mutable reference to a slice containing the values at the given index using a binary search.

§Panics

Panics if row >= self.nrows().
Panics if col >= self.ncols().

source§

impl<I: Index, E: ComplexField> SparseColMat<I, E>

source

pub fn new_from_order_and_values( symbolic: SymbolicSparseColMat<I>, order: &ValuesOrder<I>, values: GroupFor<E, &[E::Unit]> ) -> Result<Self, FaerError>

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.

source

pub fn try_new_from_triplets( nrows: usize, ncols: usize, triplets: &[(I, I, E)] ) -> Result<Self, CreationError>

Create a new matrix from triplets (row, col, value).

source

pub fn try_new_from_nonnegative_triplets( nrows: usize, ncols: usize, triplets: &[(I::Signed, I::Signed, E)] ) -> Result<Self, CreationError>

Create a new matrix from triplets (row, col, value). Negative indices are ignored.

source§

impl<I: Index, E: ComplexField> SparseColMat<I, E>

source

pub fn sp_solve_lower_triangular_in_place(&self, rhs: impl ColBatchMut<E>)

Assuming self is a lower triangular matrix, solves the equation self * X = rhs, and stores the result in rhs.

§Note

The matrix indices need not be sorted, but the diagonal element is assumed to be the first stored element in each column.

source

pub fn sp_solve_upper_triangular_in_place(&self, rhs: impl ColBatchMut<E>)

Assuming self is an upper triangular matrix, solves the equation self * X = rhs, and stores the result in rhs.

§Note

The matrix indices need not be sorted, but the diagonal element is assumed to be the last stored element in each column.

source

pub fn sp_solve_unit_lower_triangular_in_place(&self, rhs: impl ColBatchMut<E>)

Assuming self is a unit lower triangular matrix, solves the equation self * X = rhs, and stores the result in rhs.

§Note

The matrix indices need not be sorted, but the diagonal element is assumed to be the first stored element in each column.

source

pub fn sp_solve_unit_upper_triangular_in_place(&self, rhs: impl ColBatchMut<E>)

Assuming self is a unit upper triangular matrix, solves the equation self * X = rhs, and stores the result in rhs.

§Note

The matrix indices need not be sorted, but the diagonal element is assumed to be the last stored element in each column.

source

pub fn sp_cholesky(&self, side: Side) -> Result<Cholesky<I, E>, CholeskyError>

Returns the Cholesky decomposition of self. Only the provided side is accessed.

source

pub fn sp_lu(&self) -> Result<Lu<I, E>, LuError>

Returns the LU decomposition of self with partial (row) pivoting.

source

pub fn sp_qr(&self) -> Result<Qr<I, E>, FaerError>

Returns the QR decomposition of self.

Trait Implementations§

source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<&SparseColMat<I, RhsE>> for &SparseColMat<I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the + operator.
source§

fn add(self, other: &SparseColMat<I, RhsE>) -> Self::Output

Performs the + operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<&SparseColMat<I, RhsE>> for &SparseColMatMut<'_, I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the + operator.
source§

fn add(self, other: &SparseColMat<I, RhsE>) -> Self::Output

Performs the + operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<&SparseColMat<I, RhsE>> for &SparseColMatRef<'_, I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the + operator.
source§

fn add(self, other: &SparseColMat<I, RhsE>) -> Self::Output

Performs the + operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<&SparseColMat<I, RhsE>> for SparseColMat<I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the + operator.
source§

fn add(self, other: &SparseColMat<I, RhsE>) -> Self::Output

Performs the + operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<&SparseColMat<I, RhsE>> for SparseColMatMut<'_, I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the + operator.
source§

fn add(self, other: &SparseColMat<I, RhsE>) -> Self::Output

Performs the + operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<&SparseColMat<I, RhsE>> for SparseColMatRef<'_, I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the + operator.
source§

fn add(self, other: &SparseColMat<I, RhsE>) -> Self::Output

Performs the + operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<&SparseColMatMut<'_, I, RhsE>> for &SparseColMat<I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the + operator.
source§

fn add(self, other: &SparseColMatMut<'_, I, RhsE>) -> Self::Output

Performs the + operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<&SparseColMatMut<'_, I, RhsE>> for SparseColMat<I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the + operator.
source§

fn add(self, other: &SparseColMatMut<'_, I, RhsE>) -> Self::Output

Performs the + operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<&SparseColMatRef<'_, I, RhsE>> for &SparseColMat<I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the + operator.
source§

fn add(self, other: &SparseColMatRef<'_, I, RhsE>) -> Self::Output

Performs the + operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<&SparseColMatRef<'_, I, RhsE>> for SparseColMat<I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the + operator.
source§

fn add(self, other: &SparseColMatRef<'_, I, RhsE>) -> Self::Output

Performs the + operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<SparseColMat<I, RhsE>> for &SparseColMat<I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the + operator.
source§

fn add(self, other: SparseColMat<I, RhsE>) -> Self::Output

Performs the + operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<SparseColMat<I, RhsE>> for &SparseColMatMut<'_, I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the + operator.
source§

fn add(self, other: SparseColMat<I, RhsE>) -> Self::Output

Performs the + operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<SparseColMat<I, RhsE>> for &SparseColMatRef<'_, I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the + operator.
source§

fn add(self, other: SparseColMat<I, RhsE>) -> Self::Output

Performs the + operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<SparseColMat<I, RhsE>> for SparseColMat<I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the + operator.
source§

fn add(self, other: SparseColMat<I, RhsE>) -> Self::Output

Performs the + operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<SparseColMat<I, RhsE>> for SparseColMatMut<'_, I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the + operator.
source§

fn add(self, other: SparseColMat<I, RhsE>) -> Self::Output

Performs the + operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<SparseColMat<I, RhsE>> for SparseColMatRef<'_, I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the + operator.
source§

fn add(self, other: SparseColMat<I, RhsE>) -> Self::Output

Performs the + operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<SparseColMatMut<'_, I, RhsE>> for &SparseColMat<I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the + operator.
source§

fn add(self, other: SparseColMatMut<'_, I, RhsE>) -> Self::Output

Performs the + operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<SparseColMatMut<'_, I, RhsE>> for SparseColMat<I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the + operator.
source§

fn add(self, other: SparseColMatMut<'_, I, RhsE>) -> Self::Output

Performs the + operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<SparseColMatRef<'_, I, RhsE>> for &SparseColMat<I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the + operator.
source§

fn add(self, other: SparseColMatRef<'_, I, RhsE>) -> Self::Output

Performs the + operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<SparseColMatRef<'_, I, RhsE>> for SparseColMat<I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the + operator.
source§

fn add(self, other: SparseColMatRef<'_, I, RhsE>) -> Self::Output

Performs the + operation. Read more
source§

impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> AddAssign<&SparseColMat<I, RhsE>> for SparseColMat<I, LhsE>

source§

fn add_assign(&mut self, other: &SparseColMat<I, RhsE>)

Performs the += operation. Read more
source§

impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> AddAssign<&SparseColMat<I, RhsE>> for SparseColMatMut<'_, I, LhsE>

source§

fn add_assign(&mut self, other: &SparseColMat<I, RhsE>)

Performs the += operation. Read more
source§

impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> AddAssign<&SparseColMatMut<'_, I, RhsE>> for SparseColMat<I, LhsE>

source§

fn add_assign(&mut self, other: &SparseColMatMut<'_, I, RhsE>)

Performs the += operation. Read more
source§

impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> AddAssign<&SparseColMatRef<'_, I, RhsE>> for SparseColMat<I, LhsE>

source§

fn add_assign(&mut self, other: &SparseColMatRef<'_, I, RhsE>)

Performs the += operation. Read more
source§

impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> AddAssign<SparseColMat<I, RhsE>> for SparseColMat<I, LhsE>

source§

fn add_assign(&mut self, other: SparseColMat<I, RhsE>)

Performs the += operation. Read more
source§

impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> AddAssign<SparseColMat<I, RhsE>> for SparseColMatMut<'_, I, LhsE>

source§

fn add_assign(&mut self, other: SparseColMat<I, RhsE>)

Performs the += operation. Read more
source§

impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> AddAssign<SparseColMatMut<'_, I, RhsE>> for SparseColMat<I, LhsE>

source§

fn add_assign(&mut self, other: SparseColMatMut<'_, I, RhsE>)

Performs the += operation. Read more
source§

impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> AddAssign<SparseColMatRef<'_, I, RhsE>> for SparseColMat<I, LhsE>

source§

fn add_assign(&mut self, other: SparseColMatRef<'_, I, RhsE>)

Performs the += operation. Read more
source§

impl<E: ComplexField, I: Index, ViewE: Conjugate<Canonical = E>> BiLinOp<E> for SparseColMat<I, ViewE>

Available on crate feature unstable only.
source§

fn transpose_apply_req( &self, rhs_ncols: usize, parallelism: Parallelism<'_> ) -> Result<StackReq, SizeOverflow>

Computes the workspace size and alignment required to apply the transpose or adjoint of self to a matrix with rhs_ncols columns.
source§

fn transpose_apply( &self, out: MatMut<'_, E>, rhs: MatRef<'_, E>, parallelism: Parallelism<'_>, stack: PodStack<'_> )

Applies the transpose of self to rhs, and stores the result in out.
source§

fn adjoint_apply( &self, out: MatMut<'_, E>, rhs: MatRef<'_, E>, parallelism: Parallelism<'_>, stack: PodStack<'_> )

Applies the adjoint of self to rhs, and stores the result in out.
source§

impl<E: ComplexField, I: Index, ViewE: Conjugate<Canonical = E>> BiPrecond<E> for SparseColMat<I, ViewE>

Available on crate feature unstable only.
source§

fn transpose_apply_in_place_req( &self, rhs_ncols: usize, parallelism: Parallelism<'_> ) -> Result<StackReq, SizeOverflow>

Computes the workspace size and alignment required to apply the transpose or adjoint of self to a matrix with rhs_ncols columns in place.
source§

fn transpose_apply_in_place( &self, rhs: MatMut<'_, E>, parallelism: Parallelism<'_>, stack: PodStack<'_> )

Applies the transpose of self to rhs, and stores the result in rhs.
source§

fn adjoint_apply_in_place( &self, rhs: MatMut<'_, E>, parallelism: Parallelism<'_>, stack: PodStack<'_> )

Applies the adjoint of self to rhs, and stores the result in rhs.
source§

impl<I: Clone + Index, E: Clone + Entity> Clone for SparseColMat<I, E>

source§

fn clone(&self) -> SparseColMat<I, E>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<I: Index, E: Entity> Debug for SparseColMat<I, E>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<I: Index, E: SimpleEntity> Index<(usize, usize)> for SparseColMat<I, E>

§

type Output = E

The returned type after indexing.
source§

fn index(&self, (row, col): (usize, usize)) -> &Self::Output

Performs the indexing (container[index]) operation. Read more
source§

impl<I: Index, E: SimpleEntity> IndexMut<(usize, usize)> for SparseColMat<I, E>

source§

fn index_mut(&mut self, (row, col): (usize, usize)) -> &mut Self::Output

Performs the mutable indexing (container[index]) operation. Read more
source§

impl<E: ComplexField, I: Index, ViewE: Conjugate<Canonical = E>> LinOp<E> for SparseColMat<I, ViewE>

Available on crate feature unstable only.
source§

fn nrows(&self) -> usize

Output dimension of the operator.
source§

fn ncols(&self) -> usize

Input dimension of the operator.
source§

fn apply_req( &self, rhs_ncols: usize, parallelism: Parallelism<'_> ) -> Result<StackReq, SizeOverflow>

Computes the workspace size and alignment required to apply self or the conjugate of self to a matrix with rhs_ncols columns.
source§

fn apply( &self, out: MatMut<'_, E>, rhs: MatRef<'_, E>, parallelism: Parallelism<'_>, stack: PodStack<'_> )

Applies self to rhs, and stores the result in out.
source§

fn conj_apply( &self, out: MatMut<'_, E>, rhs: MatRef<'_, E>, parallelism: Parallelism<'_>, stack: PodStack<'_> )

Applies the conjugate of self to rhs, and stores the result in out.
source§

impl<I: Index, E: Entity> Matrix<E> for SparseColMat<I, E>

Available on crate feature std only.
source§

fn rows(&self) -> usize

source§

fn cols(&self) -> usize

source§

fn access(&self) -> Access<'_, E>

Expose dense or sparse access to the matrix.
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&Col<RhsE>> for &SparseColMat<I, LhsE>

§

type Output = Col<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: &Col<RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&Col<RhsE>> for SparseColMat<I, LhsE>

§

type Output = Col<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: &Col<RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&ColMut<'_, RhsE>> for &SparseColMat<I, LhsE>

§

type Output = Col<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: &ColMut<'_, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&ColMut<'_, RhsE>> for SparseColMat<I, LhsE>

§

type Output = Col<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: &ColMut<'_, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&ColRef<'_, RhsE>> for &SparseColMat<I, LhsE>

§

type Output = Col<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: &ColRef<'_, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&ColRef<'_, RhsE>> for SparseColMat<I, LhsE>

§

type Output = Col<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: &ColRef<'_, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&Mat<RhsE>> for &SparseColMat<I, LhsE>

§

type Output = Mat<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: &Mat<RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&Mat<RhsE>> for SparseColMat<I, LhsE>

§

type Output = Mat<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: &Mat<RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&MatMut<'_, RhsE>> for &SparseColMat<I, LhsE>

§

type Output = Mat<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: &MatMut<'_, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&MatMut<'_, RhsE>> for SparseColMat<I, LhsE>

§

type Output = Mat<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: &MatMut<'_, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&MatRef<'_, RhsE>> for &SparseColMat<I, LhsE>

§

type Output = Mat<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: &MatRef<'_, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&MatRef<'_, RhsE>> for SparseColMat<I, LhsE>

§

type Output = Mat<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: &MatRef<'_, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseColMat<I, RhsE>> for &Mat<LhsE>

§

type Output = Mat<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: &SparseColMat<I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseColMat<I, RhsE>> for &MatMut<'_, LhsE>

§

type Output = Mat<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: &SparseColMat<I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseColMat<I, RhsE>> for &MatRef<'_, LhsE>

§

type Output = Mat<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: &SparseColMat<I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseColMat<I, RhsE>> for &Row<LhsE>

§

type Output = Row<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: &SparseColMat<I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseColMat<I, RhsE>> for &RowMut<'_, LhsE>

§

type Output = Row<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: &SparseColMat<I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseColMat<I, RhsE>> for &RowRef<'_, LhsE>

§

type Output = Row<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: &SparseColMat<I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseColMat<I, RhsE>> for &SparseColMat<I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the * operator.
source§

fn mul(self, other: &SparseColMat<I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseColMat<I, RhsE>> for &SparseColMatMut<'_, I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the * operator.
source§

fn mul(self, other: &SparseColMat<I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseColMat<I, RhsE>> for &SparseColMatRef<'_, I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the * operator.
source§

fn mul(self, other: &SparseColMat<I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseColMat<I, RhsE>> for Mat<LhsE>

§

type Output = Mat<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: &SparseColMat<I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseColMat<I, RhsE>> for MatMut<'_, LhsE>

§

type Output = Mat<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: &SparseColMat<I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseColMat<I, RhsE>> for MatRef<'_, LhsE>

§

type Output = Mat<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: &SparseColMat<I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseColMat<I, RhsE>> for Row<LhsE>

§

type Output = Row<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: &SparseColMat<I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseColMat<I, RhsE>> for RowMut<'_, LhsE>

§

type Output = Row<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: &SparseColMat<I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseColMat<I, RhsE>> for RowRef<'_, LhsE>

§

type Output = Row<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: &SparseColMat<I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseColMat<I, RhsE>> for Scale<LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the * operator.
source§

fn mul(self, other: &SparseColMat<I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseColMat<I, RhsE>> for SparseColMat<I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the * operator.
source§

fn mul(self, other: &SparseColMat<I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseColMat<I, RhsE>> for SparseColMatMut<'_, I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the * operator.
source§

fn mul(self, other: &SparseColMat<I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseColMat<I, RhsE>> for SparseColMatRef<'_, I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the * operator.
source§

fn mul(self, other: &SparseColMat<I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseColMatMut<'_, I, RhsE>> for &SparseColMat<I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the * operator.
source§

fn mul(self, other: &SparseColMatMut<'_, I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseColMatMut<'_, I, RhsE>> for SparseColMat<I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the * operator.
source§

fn mul(self, other: &SparseColMatMut<'_, I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseColMatRef<'_, I, RhsE>> for &SparseColMat<I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the * operator.
source§

fn mul(self, other: &SparseColMatRef<'_, I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseColMatRef<'_, I, RhsE>> for SparseColMat<I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the * operator.
source§

fn mul(self, other: &SparseColMatRef<'_, I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<Col<RhsE>> for &SparseColMat<I, LhsE>

§

type Output = Col<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: Col<RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<Col<RhsE>> for SparseColMat<I, LhsE>

§

type Output = Col<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: Col<RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<ColMut<'_, RhsE>> for &SparseColMat<I, LhsE>

§

type Output = Col<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: ColMut<'_, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<ColMut<'_, RhsE>> for SparseColMat<I, LhsE>

§

type Output = Col<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: ColMut<'_, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<ColRef<'_, RhsE>> for &SparseColMat<I, LhsE>

§

type Output = Col<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: ColRef<'_, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<ColRef<'_, RhsE>> for SparseColMat<I, LhsE>

§

type Output = Col<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: ColRef<'_, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<Mat<RhsE>> for &SparseColMat<I, LhsE>

§

type Output = Mat<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: Mat<RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<Mat<RhsE>> for SparseColMat<I, LhsE>

§

type Output = Mat<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: Mat<RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<MatMut<'_, RhsE>> for &SparseColMat<I, LhsE>

§

type Output = Mat<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: MatMut<'_, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<MatMut<'_, RhsE>> for SparseColMat<I, LhsE>

§

type Output = Mat<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: MatMut<'_, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<MatRef<'_, RhsE>> for &SparseColMat<I, LhsE>

§

type Output = Mat<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: MatRef<'_, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<MatRef<'_, RhsE>> for SparseColMat<I, LhsE>

§

type Output = Mat<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: MatRef<'_, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<Scale<RhsE>> for &SparseColMat<I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the * operator.
source§

fn mul(self, other: Scale<RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<Scale<RhsE>> for SparseColMat<I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the * operator.
source§

fn mul(self, other: Scale<RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseColMat<I, RhsE>> for &Mat<LhsE>

§

type Output = Mat<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: SparseColMat<I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseColMat<I, RhsE>> for &MatMut<'_, LhsE>

§

type Output = Mat<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: SparseColMat<I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseColMat<I, RhsE>> for &MatRef<'_, LhsE>

§

type Output = Mat<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: SparseColMat<I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseColMat<I, RhsE>> for &Row<LhsE>

§

type Output = Row<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: SparseColMat<I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseColMat<I, RhsE>> for &RowMut<'_, LhsE>

§

type Output = Row<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: SparseColMat<I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseColMat<I, RhsE>> for &RowRef<'_, LhsE>

§

type Output = Row<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: SparseColMat<I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseColMat<I, RhsE>> for &SparseColMat<I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the * operator.
source§

fn mul(self, other: SparseColMat<I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseColMat<I, RhsE>> for &SparseColMatMut<'_, I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the * operator.
source§

fn mul(self, other: SparseColMat<I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseColMat<I, RhsE>> for &SparseColMatRef<'_, I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the * operator.
source§

fn mul(self, other: SparseColMat<I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseColMat<I, RhsE>> for Mat<LhsE>

§

type Output = Mat<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: SparseColMat<I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseColMat<I, RhsE>> for MatMut<'_, LhsE>

§

type Output = Mat<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: SparseColMat<I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseColMat<I, RhsE>> for MatRef<'_, LhsE>

§

type Output = Mat<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: SparseColMat<I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseColMat<I, RhsE>> for Row<LhsE>

§

type Output = Row<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: SparseColMat<I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseColMat<I, RhsE>> for RowMut<'_, LhsE>

§

type Output = Row<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: SparseColMat<I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseColMat<I, RhsE>> for RowRef<'_, LhsE>

§

type Output = Row<E>

The resulting type after applying the * operator.
source§

fn mul(self, other: SparseColMat<I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseColMat<I, RhsE>> for Scale<LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the * operator.
source§

fn mul(self, other: SparseColMat<I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseColMat<I, RhsE>> for SparseColMat<I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the * operator.
source§

fn mul(self, other: SparseColMat<I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseColMat<I, RhsE>> for SparseColMatMut<'_, I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the * operator.
source§

fn mul(self, other: SparseColMat<I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseColMat<I, RhsE>> for SparseColMatRef<'_, I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the * operator.
source§

fn mul(self, other: SparseColMat<I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseColMatMut<'_, I, RhsE>> for &SparseColMat<I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the * operator.
source§

fn mul(self, other: SparseColMatMut<'_, I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseColMatMut<'_, I, RhsE>> for SparseColMat<I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the * operator.
source§

fn mul(self, other: SparseColMatMut<'_, I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseColMatRef<'_, I, RhsE>> for &SparseColMat<I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the * operator.
source§

fn mul(self, other: SparseColMatRef<'_, I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseColMatRef<'_, I, RhsE>> for SparseColMat<I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the * operator.
source§

fn mul(self, other: SparseColMatRef<'_, I, RhsE>) -> Self::Output

Performs the * operation. Read more
source§

impl<I: Index, E: Conjugate> Neg for &SparseColMat<I, E>

§

type Output = SparseColMat<I, <E as Conjugate>::Canonical>

The resulting type after applying the - operator.
source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
source§

impl<I: Index, E: Conjugate> Neg for SparseColMat<I, E>

§

type Output = SparseColMat<I, <E as Conjugate>::Canonical>

The resulting type after applying the - operator.
source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
source§

impl<I: Index, LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> PartialEq<SparseColMat<I, RhsE>> for SparseColMat<I, LhsE>

source§

fn eq(&self, other: &SparseColMat<I, RhsE>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<I: Index, LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> PartialEq<SparseColMat<I, RhsE>> for SparseColMatMut<'_, I, LhsE>

source§

fn eq(&self, other: &SparseColMat<I, RhsE>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<I: Index, LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> PartialEq<SparseColMat<I, RhsE>> for SparseColMatRef<'_, I, LhsE>

source§

fn eq(&self, other: &SparseColMat<I, RhsE>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<I: Index, LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> PartialEq<SparseColMatMut<'_, I, RhsE>> for SparseColMat<I, LhsE>

source§

fn eq(&self, other: &SparseColMatMut<'_, I, RhsE>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<I: Index, LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> PartialEq<SparseColMatRef<'_, I, RhsE>> for SparseColMat<I, LhsE>

source§

fn eq(&self, other: &SparseColMatRef<'_, I, RhsE>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<E: ComplexField, I: Index, ViewE: Conjugate<Canonical = E>> Precond<E> for SparseColMat<I, ViewE>

Available on crate feature unstable only.
source§

fn apply_in_place_req( &self, rhs_ncols: usize, parallelism: Parallelism<'_> ) -> Result<StackReq, SizeOverflow>

Computes the workspace size and alignment required to apply self or the conjugate of self to a matrix with rhs_ncols columns in place.
source§

fn apply_in_place( &self, rhs: MatMut<'_, E>, parallelism: Parallelism<'_>, stack: PodStack<'_> )

Applies self to rhs, and stores the result in rhs.
source§

fn conj_apply_in_place( &self, rhs: MatMut<'_, E>, parallelism: Parallelism<'_>, stack: PodStack<'_> )

Applies the conjugate of self to rhs, and stores the result in rhs.
source§

impl<I: Index, E: Entity> SparseAccess<E> for SparseColMat<I, E>

Available on crate feature std only.
source§

fn nnz(&self) -> usize

Number of non-zero elements in the matrix.
source§

fn fetch_triplets(&self) -> Vec<(usize, usize, E)>

Retrieve the triplets that identify the coefficients of the sparse matrix.
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<&SparseColMat<I, RhsE>> for &SparseColMat<I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the - operator.
source§

fn sub(self, other: &SparseColMat<I, RhsE>) -> Self::Output

Performs the - operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<&SparseColMat<I, RhsE>> for &SparseColMatMut<'_, I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the - operator.
source§

fn sub(self, other: &SparseColMat<I, RhsE>) -> Self::Output

Performs the - operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<&SparseColMat<I, RhsE>> for &SparseColMatRef<'_, I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the - operator.
source§

fn sub(self, other: &SparseColMat<I, RhsE>) -> Self::Output

Performs the - operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<&SparseColMat<I, RhsE>> for SparseColMat<I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the - operator.
source§

fn sub(self, other: &SparseColMat<I, RhsE>) -> Self::Output

Performs the - operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<&SparseColMat<I, RhsE>> for SparseColMatMut<'_, I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the - operator.
source§

fn sub(self, other: &SparseColMat<I, RhsE>) -> Self::Output

Performs the - operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<&SparseColMat<I, RhsE>> for SparseColMatRef<'_, I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the - operator.
source§

fn sub(self, other: &SparseColMat<I, RhsE>) -> Self::Output

Performs the - operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<&SparseColMatMut<'_, I, RhsE>> for &SparseColMat<I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the - operator.
source§

fn sub(self, other: &SparseColMatMut<'_, I, RhsE>) -> Self::Output

Performs the - operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<&SparseColMatMut<'_, I, RhsE>> for SparseColMat<I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the - operator.
source§

fn sub(self, other: &SparseColMatMut<'_, I, RhsE>) -> Self::Output

Performs the - operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<&SparseColMatRef<'_, I, RhsE>> for &SparseColMat<I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the - operator.
source§

fn sub(self, other: &SparseColMatRef<'_, I, RhsE>) -> Self::Output

Performs the - operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<&SparseColMatRef<'_, I, RhsE>> for SparseColMat<I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the - operator.
source§

fn sub(self, other: &SparseColMatRef<'_, I, RhsE>) -> Self::Output

Performs the - operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<SparseColMat<I, RhsE>> for &SparseColMat<I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the - operator.
source§

fn sub(self, other: SparseColMat<I, RhsE>) -> Self::Output

Performs the - operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<SparseColMat<I, RhsE>> for &SparseColMatMut<'_, I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the - operator.
source§

fn sub(self, other: SparseColMat<I, RhsE>) -> Self::Output

Performs the - operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<SparseColMat<I, RhsE>> for &SparseColMatRef<'_, I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the - operator.
source§

fn sub(self, other: SparseColMat<I, RhsE>) -> Self::Output

Performs the - operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<SparseColMat<I, RhsE>> for SparseColMat<I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the - operator.
source§

fn sub(self, other: SparseColMat<I, RhsE>) -> Self::Output

Performs the - operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<SparseColMat<I, RhsE>> for SparseColMatMut<'_, I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the - operator.
source§

fn sub(self, other: SparseColMat<I, RhsE>) -> Self::Output

Performs the - operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<SparseColMat<I, RhsE>> for SparseColMatRef<'_, I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the - operator.
source§

fn sub(self, other: SparseColMat<I, RhsE>) -> Self::Output

Performs the - operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<SparseColMatMut<'_, I, RhsE>> for &SparseColMat<I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the - operator.
source§

fn sub(self, other: SparseColMatMut<'_, I, RhsE>) -> Self::Output

Performs the - operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<SparseColMatMut<'_, I, RhsE>> for SparseColMat<I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the - operator.
source§

fn sub(self, other: SparseColMatMut<'_, I, RhsE>) -> Self::Output

Performs the - operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<SparseColMatRef<'_, I, RhsE>> for &SparseColMat<I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the - operator.
source§

fn sub(self, other: SparseColMatRef<'_, I, RhsE>) -> Self::Output

Performs the - operation. Read more
source§

impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<SparseColMatRef<'_, I, RhsE>> for SparseColMat<I, LhsE>

§

type Output = SparseColMat<I, E>

The resulting type after applying the - operator.
source§

fn sub(self, other: SparseColMatRef<'_, I, RhsE>) -> Self::Output

Performs the - operation. Read more
source§

impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> SubAssign<&SparseColMat<I, RhsE>> for SparseColMat<I, LhsE>

source§

fn sub_assign(&mut self, other: &SparseColMat<I, RhsE>)

Performs the -= operation. Read more
source§

impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> SubAssign<&SparseColMat<I, RhsE>> for SparseColMatMut<'_, I, LhsE>

source§

fn sub_assign(&mut self, other: &SparseColMat<I, RhsE>)

Performs the -= operation. Read more
source§

impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> SubAssign<&SparseColMatMut<'_, I, RhsE>> for SparseColMat<I, LhsE>

source§

fn sub_assign(&mut self, other: &SparseColMatMut<'_, I, RhsE>)

Performs the -= operation. Read more
source§

impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> SubAssign<&SparseColMatRef<'_, I, RhsE>> for SparseColMat<I, LhsE>

source§

fn sub_assign(&mut self, other: &SparseColMatRef<'_, I, RhsE>)

Performs the -= operation. Read more
source§

impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> SubAssign<SparseColMat<I, RhsE>> for SparseColMat<I, LhsE>

source§

fn sub_assign(&mut self, other: SparseColMat<I, RhsE>)

Performs the -= operation. Read more
source§

impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> SubAssign<SparseColMat<I, RhsE>> for SparseColMatMut<'_, I, LhsE>

source§

fn sub_assign(&mut self, other: SparseColMat<I, RhsE>)

Performs the -= operation. Read more
source§

impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> SubAssign<SparseColMatMut<'_, I, RhsE>> for SparseColMat<I, LhsE>

source§

fn sub_assign(&mut self, other: SparseColMatMut<'_, I, RhsE>)

Performs the -= operation. Read more
source§

impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> SubAssign<SparseColMatRef<'_, I, RhsE>> for SparseColMat<I, LhsE>

source§

fn sub_assign(&mut self, other: SparseColMatRef<'_, I, RhsE>)

Performs the -= operation. Read more

Auto Trait Implementations§

§

impl<I, E> Freeze for SparseColMat<I, E>
where <<E as Entity>::Group as ForType>::FaerOf<Vec<<E as Entity>::Unit>>: Freeze,

§

impl<I, E> RefUnwindSafe for SparseColMat<I, E>
where <<E as Entity>::Group as ForType>::FaerOf<Vec<<E as Entity>::Unit>>: RefUnwindSafe, I: RefUnwindSafe,

§

impl<I, E> Send for SparseColMat<I, E>

§

impl<I, E> Sync for SparseColMat<I, E>

§

impl<I, E> Unpin for SparseColMat<I, E>
where <<E as Entity>::Group as ForType>::FaerOf<Vec<<E as Entity>::Unit>>: Unpin, I: Unpin,

§

impl<I, E> UnwindSafe for SparseColMat<I, E>
where <<E as Entity>::Group as ForType>::FaerOf<Vec<<E as Entity>::Unit>>: UnwindSafe, I: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoEither for T

source§

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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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 more
source§

impl<T> Pointable for T

source§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.