Struct faer::sparse::SparseRowMat
source · pub struct SparseRowMat<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> SparseRowMat<I, E>
impl<I: Index, E: Entity> SparseRowMat<I, E>
sourcepub fn new(
symbolic: SymbolicSparseRowMat<I>,
values: GroupFor<E, Vec<E::Unit>>
) -> Self
pub fn new( symbolic: SymbolicSparseRowMat<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.col_indices()
.
sourcepub fn to_owned(&self) -> Result<SparseRowMat<I, E::Canonical>, FaerError>
pub fn to_owned(&self) -> Result<SparseRowMat<I, E::Canonical>, FaerError>
Copies self
into a newly allocated matrix.
§Note
Allows unsorted matrices, producing an unsorted output.
sourcepub fn to_sorted(&self) -> Result<SparseRowMat<I, E::Canonical>, FaerError>
pub fn to_sorted(&self) -> Result<SparseRowMat<I, E::Canonical>, FaerError>
Copies self
into a newly allocated matrix with sorted indices.
§Note
Allows unsorted matrices, producing a sorted output.
sourcepub fn to_col_major(&self) -> Result<SparseColMat<I, E::Canonical>, FaerError>
pub fn to_col_major(&self) -> Result<SparseColMat<I, E::Canonical>, FaerError>
Copies self
into a newly allocated matrix, with column-major order.
§Note
Allows unsorted matrices, producing a sorted output.
sourcepub fn sort_indices(&mut self)
pub fn sort_indices(&mut self)
sourcepub fn parts(&self) -> (SymbolicSparseRowMatRef<'_, I>, GroupFor<E, &[E::Unit]>)
pub fn parts(&self) -> (SymbolicSparseRowMatRef<'_, I>, GroupFor<E, &[E::Unit]>)
Decomposes the matrix into the symbolic part and the numerical values.
sourcepub fn parts_mut(
&mut self
) -> (SymbolicSparseRowMatRef<'_, I>, GroupFor<E, &mut [E::Unit]>)
pub fn parts_mut( &mut self ) -> (SymbolicSparseRowMatRef<'_, I>, GroupFor<E, &mut [E::Unit]>)
Decomposes the matrix into the symbolic part and the numerical values.
sourcepub fn into_parts(self) -> (SymbolicSparseRowMat<I>, GroupFor<E, Vec<E::Unit>>)
pub fn into_parts(self) -> (SymbolicSparseRowMat<I>, GroupFor<E, Vec<E::Unit>>)
Decomposes the matrix into the symbolic part and the numerical values. Decomposes the matrix into the symbolic part and the numerical values.
sourcepub fn as_ref(&self) -> SparseRowMatRef<'_, I, E>
pub fn as_ref(&self) -> SparseRowMatRef<'_, I, E>
Returns a view over self
.
sourcepub fn as_mut(&mut self) -> SparseRowMatMut<'_, I, E>
pub fn as_mut(&mut self) -> SparseRowMatMut<'_, I, E>
Returns a mutable view over self
.
Note that the symbolic structure cannot be changed through this view.
sourcepub fn values(&self) -> GroupFor<E, &[E::Unit]>
pub fn values(&self) -> GroupFor<E, &[E::Unit]>
Returns a slice over the numerical values of the matrix.
sourcepub fn values_mut(&mut self) -> GroupFor<E, &mut [E::Unit]>
pub fn values_mut(&mut self) -> GroupFor<E, &mut [E::Unit]>
Returns a mutable slice over the numerical values of the matrix.
sourcepub fn transpose(&self) -> SparseColMatRef<'_, I, E>
pub fn transpose(&self) -> SparseColMatRef<'_, I, E>
Returns a view over the transpose of self
in column-major format.
sourcepub fn transpose_mut(&mut self) -> SparseColMatMut<'_, I, E>
pub fn transpose_mut(&mut self) -> SparseColMatMut<'_, I, E>
Returns a view over the transpose of self
in column-major format.
sourcepub fn conjugate(&self) -> SparseRowMatRef<'_, I, E::Conj>where
E: Conjugate,
pub fn conjugate(&self) -> SparseRowMatRef<'_, I, E::Conj>where
E: Conjugate,
Returns a view over the conjugate of self
.
sourcepub fn conjugate_mut(&mut self) -> SparseRowMatMut<'_, I, E::Conj>where
E: Conjugate,
pub fn conjugate_mut(&mut self) -> SparseRowMatMut<'_, I, E::Conj>where
E: Conjugate,
Returns a view over the conjugate of self
.
sourcepub fn adjoint(&self) -> SparseColMatRef<'_, I, E::Conj>where
E: Conjugate,
pub fn adjoint(&self) -> SparseColMatRef<'_, I, E::Conj>where
E: Conjugate,
Returns a view over the conjugate transpose of self
.
sourcepub fn adjoint_mut(&mut self) -> SparseColMatMut<'_, I, E::Conj>where
E: Conjugate,
pub fn adjoint_mut(&mut self) -> SparseColMatMut<'_, I, E::Conj>where
E: Conjugate,
Returns a view over the conjugate transpose of self
.
sourcepub fn canonicalize(&self) -> (SparseRowMatRef<'_, I, E::Canonical>, Conj)where
E: Conjugate,
pub fn canonicalize(&self) -> (SparseRowMatRef<'_, 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.
sourcepub fn canonicalize_mut(
&mut self
) -> (SparseRowMatMut<'_, I, E::Canonical>, Conj)where
E: Conjugate,
pub fn canonicalize_mut(
&mut self
) -> (SparseRowMatMut<'_, 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.
sourcepub fn fill_from_order_and_values(
&mut self,
order: &ValuesOrder<I>,
values: GroupFor<E, &[E::Unit]>,
mode: FillMode
)where
E: ComplexField,
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.
sourcepub fn into_transpose(self) -> SparseColMat<I, E>
pub fn into_transpose(self) -> SparseColMat<I, E>
Returns the transpose of self
in column-major format.
§Note
Allows unsorted matrices, producing an unsorted output.
sourcepub fn into_conjugate(self) -> SparseRowMat<I, E::Conj>where
E: Conjugate,
pub fn into_conjugate(self) -> SparseRowMat<I, E::Conj>where
E: Conjugate,
Returns the conjugate of self
.
sourcepub fn into_adjoint(self) -> SparseColMat<I, E::Conj>where
E: Conjugate,
pub fn into_adjoint(self) -> SparseColMat<I, E::Conj>where
E: Conjugate,
Returns a view over the conjugate transpose of self
.
sourcepub fn compute_nnz(&self) -> usize
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.
sourcepub fn nnz_per_row(&self) -> Option<&[I]>
pub fn nnz_per_row(&self) -> Option<&[I]>
Returns the count of non-zeros per column of the matrix.
sourcepub fn col_indices(&self) -> &[I]
pub fn col_indices(&self) -> &[I]
Returns the column indices.
sourcepub fn col_indices_of_row_raw(&self, i: usize) -> &[I]
pub fn col_indices_of_row_raw(&self, i: usize) -> &[I]
sourcepub fn col_indices_of_row(
&self,
i: usize
) -> impl '_ + ExactSizeIterator + DoubleEndedIterator<Item = usize>
pub fn col_indices_of_row( &self, i: usize ) -> impl '_ + ExactSizeIterator + DoubleEndedIterator<Item = usize>
sourcepub fn values_of_row(&self, i: usize) -> GroupFor<E, &[E::Unit]>
pub fn values_of_row(&self, i: usize) -> GroupFor<E, &[E::Unit]>
sourcepub fn values_of_row_mut(&mut self, i: usize) -> GroupFor<E, &mut [E::Unit]>
pub fn values_of_row_mut(&mut self, i: usize) -> GroupFor<E, &mut [E::Unit]>
sourcepub fn symbolic(&self) -> SymbolicSparseRowMatRef<'_, I>
pub fn symbolic(&self) -> SymbolicSparseRowMatRef<'_, I>
Returns the symbolic structure of the matrix.
sourcepub fn row_range(&self, i: usize) -> Range<usize> ⓘ
pub fn row_range(&self, i: usize) -> Range<usize> ⓘ
Returns the range that the row i
occupies in self.col_indices()
.
§Panics
Panics if i >= self.nrows()
.
sourcepub unsafe fn row_range_unchecked(&self, i: usize) -> Range<usize> ⓘ
pub unsafe fn row_range_unchecked(&self, i: usize) -> Range<usize> ⓘ
Returns the range that the row i
occupies in self.col_indices()
.
§Safety
The behavior is undefined if i >= self.nrows()
.
sourcepub fn get(&self, row: usize, col: usize) -> Option<GroupFor<E, &E::Unit>>
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()
.
sourcepub fn get_mut(
&mut self,
row: usize,
col: usize
) -> Option<GroupFor<E, &mut E::Unit>>
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§impl<I: Index, E: ComplexField> SparseRowMat<I, E>
impl<I: Index, E: ComplexField> SparseRowMat<I, E>
sourcepub fn new_from_order_and_values(
symbolic: SymbolicSparseRowMat<I>,
order: &ValuesOrder<I>,
values: GroupFor<E, &[E::Unit]>
) -> Result<Self, FaerError>
pub fn new_from_order_and_values( symbolic: SymbolicSparseRowMat<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.
sourcepub fn try_new_from_triplets(
nrows: usize,
ncols: usize,
triplets: &[(I, I, E)]
) -> Result<Self, CreationError>
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)
.
sourcepub fn try_new_from_nonnegative_triplets(
nrows: usize,
ncols: usize,
triplets: &[(I::Signed, I::Signed, E)]
) -> Result<Self, CreationError>
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> SparseRowMat<I, E>
impl<I: Index, E: ComplexField> SparseRowMat<I, E>
sourcepub fn sp_solve_lower_triangular_in_place(&self, rhs: impl ColBatchMut<E>)
pub fn sp_solve_lower_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 row.
sourcepub fn sp_solve_upper_triangular_in_place(&self, rhs: impl ColBatchMut<E>)
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 first stored element in each row.
sourcepub fn sp_solve_unit_lower_triangular_in_place(&self, rhs: impl ColBatchMut<E>)
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 last stored element in each row.
sourcepub fn sp_solve_unit_upper_triangular_in_place(&self, rhs: impl ColBatchMut<E>)
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 first stored element in each row.
sourcepub fn sp_cholesky(&self, side: Side) -> Result<Cholesky<I, E>, CholeskyError>
pub fn sp_cholesky(&self, side: Side) -> Result<Cholesky<I, E>, CholeskyError>
Returns the Cholesky decomposition of self
. Only the provided side is accessed.
Trait Implementations§
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<&SparseRowMat<I, RhsE>> for &SparseRowMat<I, LhsE>
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<&SparseRowMat<I, RhsE>> for &SparseRowMat<I, LhsE>
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
+
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<&SparseRowMat<I, RhsE>> for &SparseRowMatMut<'_, I, LhsE>
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<&SparseRowMat<I, RhsE>> for &SparseRowMatMut<'_, I, LhsE>
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
+
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<&SparseRowMat<I, RhsE>> for &SparseRowMatRef<'_, I, LhsE>
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<&SparseRowMat<I, RhsE>> for &SparseRowMatRef<'_, I, LhsE>
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
+
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<&SparseRowMat<I, RhsE>> for SparseRowMat<I, LhsE>
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<&SparseRowMat<I, RhsE>> for SparseRowMat<I, LhsE>
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
+
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<&SparseRowMat<I, RhsE>> for SparseRowMatMut<'_, I, LhsE>
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<&SparseRowMat<I, RhsE>> for SparseRowMatMut<'_, I, LhsE>
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
+
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<&SparseRowMat<I, RhsE>> for SparseRowMatRef<'_, I, LhsE>
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<&SparseRowMat<I, RhsE>> for SparseRowMatRef<'_, I, LhsE>
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
+
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<&SparseRowMatMut<'_, I, RhsE>> for &SparseRowMat<I, LhsE>
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<&SparseRowMatMut<'_, I, RhsE>> for &SparseRowMat<I, LhsE>
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
+
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<&SparseRowMatMut<'_, I, RhsE>> for SparseRowMat<I, LhsE>
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<&SparseRowMatMut<'_, I, RhsE>> for SparseRowMat<I, LhsE>
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
+
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<&SparseRowMatRef<'_, I, RhsE>> for &SparseRowMat<I, LhsE>
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<&SparseRowMatRef<'_, I, RhsE>> for &SparseRowMat<I, LhsE>
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
+
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<&SparseRowMatRef<'_, I, RhsE>> for SparseRowMat<I, LhsE>
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<&SparseRowMatRef<'_, I, RhsE>> for SparseRowMat<I, LhsE>
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
+
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<SparseRowMat<I, RhsE>> for &SparseRowMat<I, LhsE>
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<SparseRowMat<I, RhsE>> for &SparseRowMat<I, LhsE>
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
+
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<SparseRowMat<I, RhsE>> for &SparseRowMatMut<'_, I, LhsE>
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<SparseRowMat<I, RhsE>> for &SparseRowMatMut<'_, I, LhsE>
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
+
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<SparseRowMat<I, RhsE>> for &SparseRowMatRef<'_, I, LhsE>
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<SparseRowMat<I, RhsE>> for &SparseRowMatRef<'_, I, LhsE>
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
+
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<SparseRowMat<I, RhsE>> for SparseRowMat<I, LhsE>
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<SparseRowMat<I, RhsE>> for SparseRowMat<I, LhsE>
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
+
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<SparseRowMat<I, RhsE>> for SparseRowMatMut<'_, I, LhsE>
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<SparseRowMat<I, RhsE>> for SparseRowMatMut<'_, I, LhsE>
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
+
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<SparseRowMat<I, RhsE>> for SparseRowMatRef<'_, I, LhsE>
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<SparseRowMat<I, RhsE>> for SparseRowMatRef<'_, I, LhsE>
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
+
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<SparseRowMatMut<'_, I, RhsE>> for &SparseRowMat<I, LhsE>
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<SparseRowMatMut<'_, I, RhsE>> for &SparseRowMat<I, LhsE>
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
+
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<SparseRowMatMut<'_, I, RhsE>> for SparseRowMat<I, LhsE>
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<SparseRowMatMut<'_, I, RhsE>> for SparseRowMat<I, LhsE>
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
+
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<SparseRowMatRef<'_, I, RhsE>> for &SparseRowMat<I, LhsE>
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<SparseRowMatRef<'_, I, RhsE>> for &SparseRowMat<I, LhsE>
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
+
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<SparseRowMatRef<'_, I, RhsE>> for SparseRowMat<I, LhsE>
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Add<SparseRowMatRef<'_, I, RhsE>> for SparseRowMat<I, LhsE>
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
+
operator.source§impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> AddAssign<&SparseRowMat<I, RhsE>> for SparseRowMat<I, LhsE>
impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> AddAssign<&SparseRowMat<I, RhsE>> for SparseRowMat<I, LhsE>
source§fn add_assign(&mut self, other: &SparseRowMat<I, RhsE>)
fn add_assign(&mut self, other: &SparseRowMat<I, RhsE>)
+=
operation. Read moresource§impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> AddAssign<&SparseRowMat<I, RhsE>> for SparseRowMatMut<'_, I, LhsE>
impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> AddAssign<&SparseRowMat<I, RhsE>> for SparseRowMatMut<'_, I, LhsE>
source§fn add_assign(&mut self, other: &SparseRowMat<I, RhsE>)
fn add_assign(&mut self, other: &SparseRowMat<I, RhsE>)
+=
operation. Read moresource§impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> AddAssign<&SparseRowMatMut<'_, I, RhsE>> for SparseRowMat<I, LhsE>
impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> AddAssign<&SparseRowMatMut<'_, I, RhsE>> for SparseRowMat<I, LhsE>
source§fn add_assign(&mut self, other: &SparseRowMatMut<'_, I, RhsE>)
fn add_assign(&mut self, other: &SparseRowMatMut<'_, I, RhsE>)
+=
operation. Read moresource§impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> AddAssign<&SparseRowMatRef<'_, I, RhsE>> for SparseRowMat<I, LhsE>
impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> AddAssign<&SparseRowMatRef<'_, I, RhsE>> for SparseRowMat<I, LhsE>
source§fn add_assign(&mut self, other: &SparseRowMatRef<'_, I, RhsE>)
fn add_assign(&mut self, other: &SparseRowMatRef<'_, I, RhsE>)
+=
operation. Read moresource§impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> AddAssign<SparseRowMat<I, RhsE>> for SparseRowMat<I, LhsE>
impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> AddAssign<SparseRowMat<I, RhsE>> for SparseRowMat<I, LhsE>
source§fn add_assign(&mut self, other: SparseRowMat<I, RhsE>)
fn add_assign(&mut self, other: SparseRowMat<I, RhsE>)
+=
operation. Read moresource§impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> AddAssign<SparseRowMat<I, RhsE>> for SparseRowMatMut<'_, I, LhsE>
impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> AddAssign<SparseRowMat<I, RhsE>> for SparseRowMatMut<'_, I, LhsE>
source§fn add_assign(&mut self, other: SparseRowMat<I, RhsE>)
fn add_assign(&mut self, other: SparseRowMat<I, RhsE>)
+=
operation. Read moresource§impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> AddAssign<SparseRowMatMut<'_, I, RhsE>> for SparseRowMat<I, LhsE>
impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> AddAssign<SparseRowMatMut<'_, I, RhsE>> for SparseRowMat<I, LhsE>
source§fn add_assign(&mut self, other: SparseRowMatMut<'_, I, RhsE>)
fn add_assign(&mut self, other: SparseRowMatMut<'_, I, RhsE>)
+=
operation. Read moresource§impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> AddAssign<SparseRowMatRef<'_, I, RhsE>> for SparseRowMat<I, LhsE>
impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> AddAssign<SparseRowMatRef<'_, I, RhsE>> for SparseRowMat<I, LhsE>
source§fn add_assign(&mut self, other: SparseRowMatRef<'_, I, RhsE>)
fn add_assign(&mut self, other: SparseRowMatRef<'_, I, RhsE>)
+=
operation. Read moresource§impl<E: ComplexField, I: Index, ViewE: Conjugate<Canonical = E>> BiLinOp<E> for SparseRowMat<I, ViewE>
Available on crate feature unstable
only.
impl<E: ComplexField, I: Index, ViewE: Conjugate<Canonical = E>> BiLinOp<E> for SparseRowMat<I, ViewE>
unstable
only.source§fn transpose_apply_req(
&self,
rhs_ncols: usize,
parallelism: Parallelism<'_>
) -> Result<StackReq, SizeOverflow>
fn transpose_apply_req( &self, rhs_ncols: usize, parallelism: Parallelism<'_> ) -> Result<StackReq, SizeOverflow>
self
to a matrix with rhs_ncols
columns.source§fn transpose_apply(
&self,
out: MatMut<'_, E>,
rhs: MatRef<'_, E>,
parallelism: Parallelism<'_>,
stack: PodStack<'_>
)
fn transpose_apply( &self, out: MatMut<'_, E>, rhs: MatRef<'_, E>, parallelism: Parallelism<'_>, stack: PodStack<'_> )
self
to rhs
, and stores the result in out
.source§fn adjoint_apply(
&self,
out: MatMut<'_, E>,
rhs: MatRef<'_, E>,
parallelism: Parallelism<'_>,
stack: PodStack<'_>
)
fn adjoint_apply( &self, out: MatMut<'_, E>, rhs: MatRef<'_, E>, parallelism: Parallelism<'_>, stack: PodStack<'_> )
self
to rhs
, and stores the result in out
.source§impl<E: ComplexField, I: Index, ViewE: Conjugate<Canonical = E>> BiPrecond<E> for SparseRowMat<I, ViewE>
Available on crate feature unstable
only.
impl<E: ComplexField, I: Index, ViewE: Conjugate<Canonical = E>> BiPrecond<E> for SparseRowMat<I, ViewE>
unstable
only.source§fn transpose_apply_in_place_req(
&self,
rhs_ncols: usize,
parallelism: Parallelism<'_>
) -> Result<StackReq, SizeOverflow>
fn transpose_apply_in_place_req( &self, rhs_ncols: usize, parallelism: Parallelism<'_> ) -> Result<StackReq, SizeOverflow>
self
to a matrix with rhs_ncols
columns in place.source§fn transpose_apply_in_place(
&self,
rhs: MatMut<'_, E>,
parallelism: Parallelism<'_>,
stack: PodStack<'_>
)
fn transpose_apply_in_place( &self, rhs: MatMut<'_, E>, parallelism: Parallelism<'_>, stack: PodStack<'_> )
self
to rhs
, and stores the result in rhs
.source§fn adjoint_apply_in_place(
&self,
rhs: MatMut<'_, E>,
parallelism: Parallelism<'_>,
stack: PodStack<'_>
)
fn adjoint_apply_in_place( &self, rhs: MatMut<'_, E>, parallelism: Parallelism<'_>, stack: PodStack<'_> )
self
to rhs
, and stores the result in rhs
.source§impl<I: Clone + Index, E: Clone + Entity> Clone for SparseRowMat<I, E>
impl<I: Clone + Index, E: Clone + Entity> Clone for SparseRowMat<I, E>
source§fn clone(&self) -> SparseRowMat<I, E>
fn clone(&self) -> SparseRowMat<I, E>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl<I: Index, E: SimpleEntity> Index<(usize, usize)> for SparseRowMat<I, E>
impl<I: Index, E: SimpleEntity> Index<(usize, usize)> for SparseRowMat<I, E>
source§impl<I: Index, E: SimpleEntity> IndexMut<(usize, usize)> for SparseRowMat<I, E>
impl<I: Index, E: SimpleEntity> IndexMut<(usize, usize)> for SparseRowMat<I, E>
source§impl<E: ComplexField, I: Index, ViewE: Conjugate<Canonical = E>> LinOp<E> for SparseRowMat<I, ViewE>
Available on crate feature unstable
only.
impl<E: ComplexField, I: Index, ViewE: Conjugate<Canonical = E>> LinOp<E> for SparseRowMat<I, ViewE>
unstable
only.source§fn apply_req(
&self,
rhs_ncols: usize,
parallelism: Parallelism<'_>
) -> Result<StackReq, SizeOverflow>
fn apply_req( &self, rhs_ncols: usize, parallelism: Parallelism<'_> ) -> Result<StackReq, SizeOverflow>
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<'_>
)
fn apply( &self, out: MatMut<'_, E>, rhs: MatRef<'_, E>, parallelism: Parallelism<'_>, stack: PodStack<'_> )
self
to rhs
, and stores the result in out
.source§fn conj_apply(
&self,
out: MatMut<'_, E>,
rhs: MatRef<'_, E>,
parallelism: Parallelism<'_>,
stack: PodStack<'_>
)
fn conj_apply( &self, out: MatMut<'_, E>, rhs: MatRef<'_, E>, parallelism: Parallelism<'_>, stack: PodStack<'_> )
self
to rhs
, and stores the result in out
.source§impl<I: Index, E: Entity> Matrix<E> for SparseRowMat<I, E>
Available on crate feature std
only.
impl<I: Index, E: Entity> Matrix<E> for SparseRowMat<I, E>
std
only.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&Col<RhsE>> for &SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&Col<RhsE>> for &SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&Col<RhsE>> for SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&Col<RhsE>> for SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&ColMut<'_, RhsE>> for &SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&ColMut<'_, RhsE>> for &SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&ColMut<'_, RhsE>> for SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&ColMut<'_, RhsE>> for SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&ColRef<'_, RhsE>> for &SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&ColRef<'_, RhsE>> for &SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&ColRef<'_, RhsE>> for SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&ColRef<'_, RhsE>> for SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&Mat<RhsE>> for &SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&Mat<RhsE>> for &SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&Mat<RhsE>> for SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&Mat<RhsE>> for SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&MatMut<'_, RhsE>> for &SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&MatMut<'_, RhsE>> for &SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&MatMut<'_, RhsE>> for SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&MatMut<'_, RhsE>> for SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&MatRef<'_, RhsE>> for &SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&MatRef<'_, RhsE>> for &SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&MatRef<'_, RhsE>> for SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&MatRef<'_, RhsE>> for SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMat<I, RhsE>> for &Mat<LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMat<I, RhsE>> for &Mat<LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMat<I, RhsE>> for &MatMut<'_, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMat<I, RhsE>> for &MatMut<'_, LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMat<I, RhsE>> for &MatRef<'_, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMat<I, RhsE>> for &MatRef<'_, LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMat<I, RhsE>> for &Row<LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMat<I, RhsE>> for &Row<LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMat<I, RhsE>> for &RowMut<'_, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMat<I, RhsE>> for &RowMut<'_, LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMat<I, RhsE>> for &RowRef<'_, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMat<I, RhsE>> for &RowRef<'_, LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMat<I, RhsE>> for &SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMat<I, RhsE>> for &SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
*
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMat<I, RhsE>> for &SparseRowMatMut<'_, I, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMat<I, RhsE>> for &SparseRowMatMut<'_, I, LhsE>where
E::Canonical: ComplexField,
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
*
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMat<I, RhsE>> for &SparseRowMatRef<'_, I, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMat<I, RhsE>> for &SparseRowMatRef<'_, I, LhsE>where
E::Canonical: ComplexField,
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
*
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMat<I, RhsE>> for Mat<LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMat<I, RhsE>> for Mat<LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMat<I, RhsE>> for MatMut<'_, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMat<I, RhsE>> for MatMut<'_, LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMat<I, RhsE>> for MatRef<'_, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMat<I, RhsE>> for MatRef<'_, LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMat<I, RhsE>> for Row<LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMat<I, RhsE>> for Row<LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMat<I, RhsE>> for RowMut<'_, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMat<I, RhsE>> for RowMut<'_, LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMat<I, RhsE>> for RowRef<'_, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMat<I, RhsE>> for RowRef<'_, LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMat<I, RhsE>> for Scale<LhsE>
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMat<I, RhsE>> for Scale<LhsE>
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
*
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMat<I, RhsE>> for SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMat<I, RhsE>> for SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
*
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMat<I, RhsE>> for SparseRowMatMut<'_, I, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMat<I, RhsE>> for SparseRowMatMut<'_, I, LhsE>where
E::Canonical: ComplexField,
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
*
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMat<I, RhsE>> for SparseRowMatRef<'_, I, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMat<I, RhsE>> for SparseRowMatRef<'_, I, LhsE>where
E::Canonical: ComplexField,
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
*
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMatMut<'_, I, RhsE>> for &SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMatMut<'_, I, RhsE>> for &SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
*
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMatMut<'_, I, RhsE>> for SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMatMut<'_, I, RhsE>> for SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
*
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMatRef<'_, I, RhsE>> for &SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMatRef<'_, I, RhsE>> for &SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
*
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMatRef<'_, I, RhsE>> for SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<&SparseRowMatRef<'_, I, RhsE>> for SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
*
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<Col<RhsE>> for &SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<Col<RhsE>> for &SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<Col<RhsE>> for SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<Col<RhsE>> for SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<ColMut<'_, RhsE>> for &SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<ColMut<'_, RhsE>> for &SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<ColMut<'_, RhsE>> for SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<ColMut<'_, RhsE>> for SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<ColRef<'_, RhsE>> for &SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<ColRef<'_, RhsE>> for &SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<ColRef<'_, RhsE>> for SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<ColRef<'_, RhsE>> for SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<Mat<RhsE>> for &SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<Mat<RhsE>> for &SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<Mat<RhsE>> for SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<Mat<RhsE>> for SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<MatMut<'_, RhsE>> for &SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<MatMut<'_, RhsE>> for &SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<MatMut<'_, RhsE>> for SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<MatMut<'_, RhsE>> for SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<MatRef<'_, RhsE>> for &SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<MatRef<'_, RhsE>> for &SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<MatRef<'_, RhsE>> for SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<MatRef<'_, RhsE>> for SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<Scale<RhsE>> for &SparseRowMat<I, LhsE>
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<Scale<RhsE>> for &SparseRowMat<I, LhsE>
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<Scale<RhsE>> for SparseRowMat<I, LhsE>
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<Scale<RhsE>> for SparseRowMat<I, LhsE>
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMat<I, RhsE>> for &Mat<LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMat<I, RhsE>> for &Mat<LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMat<I, RhsE>> for &MatMut<'_, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMat<I, RhsE>> for &MatMut<'_, LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMat<I, RhsE>> for &MatRef<'_, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMat<I, RhsE>> for &MatRef<'_, LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMat<I, RhsE>> for &Row<LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMat<I, RhsE>> for &Row<LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMat<I, RhsE>> for &RowMut<'_, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMat<I, RhsE>> for &RowMut<'_, LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMat<I, RhsE>> for &RowRef<'_, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMat<I, RhsE>> for &RowRef<'_, LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMat<I, RhsE>> for &SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMat<I, RhsE>> for &SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
*
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMat<I, RhsE>> for &SparseRowMatMut<'_, I, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMat<I, RhsE>> for &SparseRowMatMut<'_, I, LhsE>where
E::Canonical: ComplexField,
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
*
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMat<I, RhsE>> for &SparseRowMatRef<'_, I, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMat<I, RhsE>> for &SparseRowMatRef<'_, I, LhsE>where
E::Canonical: ComplexField,
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
*
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMat<I, RhsE>> for Mat<LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMat<I, RhsE>> for Mat<LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMat<I, RhsE>> for MatMut<'_, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMat<I, RhsE>> for MatMut<'_, LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMat<I, RhsE>> for MatRef<'_, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMat<I, RhsE>> for MatRef<'_, LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMat<I, RhsE>> for Row<LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMat<I, RhsE>> for Row<LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMat<I, RhsE>> for RowMut<'_, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMat<I, RhsE>> for RowMut<'_, LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMat<I, RhsE>> for RowRef<'_, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMat<I, RhsE>> for RowRef<'_, LhsE>where
E::Canonical: ComplexField,
source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMat<I, RhsE>> for Scale<LhsE>
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMat<I, RhsE>> for Scale<LhsE>
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
*
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMat<I, RhsE>> for SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMat<I, RhsE>> for SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
*
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMat<I, RhsE>> for SparseRowMatMut<'_, I, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMat<I, RhsE>> for SparseRowMatMut<'_, I, LhsE>where
E::Canonical: ComplexField,
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
*
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMat<I, RhsE>> for SparseRowMatRef<'_, I, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMat<I, RhsE>> for SparseRowMatRef<'_, I, LhsE>where
E::Canonical: ComplexField,
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
*
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMatMut<'_, I, RhsE>> for &SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMatMut<'_, I, RhsE>> for &SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
*
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMatMut<'_, I, RhsE>> for SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMatMut<'_, I, RhsE>> for SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
*
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMatRef<'_, I, RhsE>> for &SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMatRef<'_, I, RhsE>> for &SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
*
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMatRef<'_, I, RhsE>> for SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Mul<SparseRowMatRef<'_, I, RhsE>> for SparseRowMat<I, LhsE>where
E::Canonical: ComplexField,
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
*
operator.source§impl<I: Index, E: Conjugate> Neg for &SparseRowMat<I, E>where
E::Canonical: ComplexField,
impl<I: Index, E: Conjugate> Neg for &SparseRowMat<I, E>where
E::Canonical: ComplexField,
source§impl<I: Index, E: Conjugate> Neg for SparseRowMat<I, E>where
E::Canonical: ComplexField,
impl<I: Index, E: Conjugate> Neg for SparseRowMat<I, E>where
E::Canonical: ComplexField,
source§impl<I: Index, LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> PartialEq<SparseRowMat<I, RhsE>> for SparseRowMat<I, LhsE>
impl<I: Index, LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> PartialEq<SparseRowMat<I, RhsE>> for SparseRowMat<I, LhsE>
source§fn eq(&self, other: &SparseRowMat<I, RhsE>) -> bool
fn eq(&self, other: &SparseRowMat<I, RhsE>) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl<I: Index, LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> PartialEq<SparseRowMat<I, RhsE>> for SparseRowMatMut<'_, I, LhsE>
impl<I: Index, LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> PartialEq<SparseRowMat<I, RhsE>> for SparseRowMatMut<'_, I, LhsE>
source§fn eq(&self, other: &SparseRowMat<I, RhsE>) -> bool
fn eq(&self, other: &SparseRowMat<I, RhsE>) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl<I: Index, LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> PartialEq<SparseRowMat<I, RhsE>> for SparseRowMatRef<'_, I, LhsE>
impl<I: Index, LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> PartialEq<SparseRowMat<I, RhsE>> for SparseRowMatRef<'_, I, LhsE>
source§fn eq(&self, other: &SparseRowMat<I, RhsE>) -> bool
fn eq(&self, other: &SparseRowMat<I, RhsE>) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl<I: Index, LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> PartialEq<SparseRowMatMut<'_, I, RhsE>> for SparseRowMat<I, LhsE>
impl<I: Index, LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> PartialEq<SparseRowMatMut<'_, I, RhsE>> for SparseRowMat<I, LhsE>
source§fn eq(&self, other: &SparseRowMatMut<'_, I, RhsE>) -> bool
fn eq(&self, other: &SparseRowMatMut<'_, I, RhsE>) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl<I: Index, LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> PartialEq<SparseRowMatRef<'_, I, RhsE>> for SparseRowMat<I, LhsE>
impl<I: Index, LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> PartialEq<SparseRowMatRef<'_, I, RhsE>> for SparseRowMat<I, LhsE>
source§fn eq(&self, other: &SparseRowMatRef<'_, I, RhsE>) -> bool
fn eq(&self, other: &SparseRowMatRef<'_, I, RhsE>) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl<E: ComplexField, I: Index, ViewE: Conjugate<Canonical = E>> Precond<E> for SparseRowMat<I, ViewE>
Available on crate feature unstable
only.
impl<E: ComplexField, I: Index, ViewE: Conjugate<Canonical = E>> Precond<E> for SparseRowMat<I, ViewE>
unstable
only.source§fn apply_in_place_req(
&self,
rhs_ncols: usize,
parallelism: Parallelism<'_>
) -> Result<StackReq, SizeOverflow>
fn apply_in_place_req( &self, rhs_ncols: usize, parallelism: Parallelism<'_> ) -> Result<StackReq, SizeOverflow>
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<'_>
)
fn apply_in_place( &self, rhs: MatMut<'_, E>, parallelism: Parallelism<'_>, stack: PodStack<'_> )
self
to rhs
, and stores the result in rhs
.source§fn conj_apply_in_place(
&self,
rhs: MatMut<'_, E>,
parallelism: Parallelism<'_>,
stack: PodStack<'_>
)
fn conj_apply_in_place( &self, rhs: MatMut<'_, E>, parallelism: Parallelism<'_>, stack: PodStack<'_> )
self
to rhs
, and stores the result in rhs
.source§impl<I: Index, E: Entity> SparseAccess<E> for SparseRowMat<I, E>
Available on crate feature std
only.
impl<I: Index, E: Entity> SparseAccess<E> for SparseRowMat<I, E>
std
only.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<&SparseRowMat<I, RhsE>> for &SparseRowMat<I, LhsE>
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<&SparseRowMat<I, RhsE>> for &SparseRowMat<I, LhsE>
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
-
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<&SparseRowMat<I, RhsE>> for &SparseRowMatMut<'_, I, LhsE>
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<&SparseRowMat<I, RhsE>> for &SparseRowMatMut<'_, I, LhsE>
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
-
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<&SparseRowMat<I, RhsE>> for &SparseRowMatRef<'_, I, LhsE>
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<&SparseRowMat<I, RhsE>> for &SparseRowMatRef<'_, I, LhsE>
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
-
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<&SparseRowMat<I, RhsE>> for SparseRowMat<I, LhsE>
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<&SparseRowMat<I, RhsE>> for SparseRowMat<I, LhsE>
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
-
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<&SparseRowMat<I, RhsE>> for SparseRowMatMut<'_, I, LhsE>
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<&SparseRowMat<I, RhsE>> for SparseRowMatMut<'_, I, LhsE>
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
-
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<&SparseRowMat<I, RhsE>> for SparseRowMatRef<'_, I, LhsE>
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<&SparseRowMat<I, RhsE>> for SparseRowMatRef<'_, I, LhsE>
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
-
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<&SparseRowMatMut<'_, I, RhsE>> for &SparseRowMat<I, LhsE>
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<&SparseRowMatMut<'_, I, RhsE>> for &SparseRowMat<I, LhsE>
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
-
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<&SparseRowMatMut<'_, I, RhsE>> for SparseRowMat<I, LhsE>
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<&SparseRowMatMut<'_, I, RhsE>> for SparseRowMat<I, LhsE>
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
-
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<&SparseRowMatRef<'_, I, RhsE>> for &SparseRowMat<I, LhsE>
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<&SparseRowMatRef<'_, I, RhsE>> for &SparseRowMat<I, LhsE>
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
-
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<&SparseRowMatRef<'_, I, RhsE>> for SparseRowMat<I, LhsE>
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<&SparseRowMatRef<'_, I, RhsE>> for SparseRowMat<I, LhsE>
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
-
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<SparseRowMat<I, RhsE>> for &SparseRowMat<I, LhsE>
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<SparseRowMat<I, RhsE>> for &SparseRowMat<I, LhsE>
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
-
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<SparseRowMat<I, RhsE>> for &SparseRowMatMut<'_, I, LhsE>
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<SparseRowMat<I, RhsE>> for &SparseRowMatMut<'_, I, LhsE>
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
-
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<SparseRowMat<I, RhsE>> for &SparseRowMatRef<'_, I, LhsE>
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<SparseRowMat<I, RhsE>> for &SparseRowMatRef<'_, I, LhsE>
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
-
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<SparseRowMat<I, RhsE>> for SparseRowMat<I, LhsE>
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<SparseRowMat<I, RhsE>> for SparseRowMat<I, LhsE>
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
-
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<SparseRowMat<I, RhsE>> for SparseRowMatMut<'_, I, LhsE>
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<SparseRowMat<I, RhsE>> for SparseRowMatMut<'_, I, LhsE>
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
-
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<SparseRowMat<I, RhsE>> for SparseRowMatRef<'_, I, LhsE>
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<SparseRowMat<I, RhsE>> for SparseRowMatRef<'_, I, LhsE>
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
-
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<SparseRowMatMut<'_, I, RhsE>> for &SparseRowMat<I, LhsE>
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<SparseRowMatMut<'_, I, RhsE>> for &SparseRowMat<I, LhsE>
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
-
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<SparseRowMatMut<'_, I, RhsE>> for SparseRowMat<I, LhsE>
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<SparseRowMatMut<'_, I, RhsE>> for SparseRowMat<I, LhsE>
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
-
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<SparseRowMatRef<'_, I, RhsE>> for &SparseRowMat<I, LhsE>
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<SparseRowMatRef<'_, I, RhsE>> for &SparseRowMat<I, LhsE>
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
-
operator.source§impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<SparseRowMatRef<'_, I, RhsE>> for SparseRowMat<I, LhsE>
impl<I: Index, E: ComplexField, LhsE: Conjugate<Canonical = E>, RhsE: Conjugate<Canonical = E>> Sub<SparseRowMatRef<'_, I, RhsE>> for SparseRowMat<I, LhsE>
§type Output = SparseRowMat<I, E>
type Output = SparseRowMat<I, E>
-
operator.source§impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> SubAssign<&SparseRowMat<I, RhsE>> for SparseRowMat<I, LhsE>
impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> SubAssign<&SparseRowMat<I, RhsE>> for SparseRowMat<I, LhsE>
source§fn sub_assign(&mut self, other: &SparseRowMat<I, RhsE>)
fn sub_assign(&mut self, other: &SparseRowMat<I, RhsE>)
-=
operation. Read moresource§impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> SubAssign<&SparseRowMat<I, RhsE>> for SparseRowMatMut<'_, I, LhsE>
impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> SubAssign<&SparseRowMat<I, RhsE>> for SparseRowMatMut<'_, I, LhsE>
source§fn sub_assign(&mut self, other: &SparseRowMat<I, RhsE>)
fn sub_assign(&mut self, other: &SparseRowMat<I, RhsE>)
-=
operation. Read moresource§impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> SubAssign<&SparseRowMatMut<'_, I, RhsE>> for SparseRowMat<I, LhsE>
impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> SubAssign<&SparseRowMatMut<'_, I, RhsE>> for SparseRowMat<I, LhsE>
source§fn sub_assign(&mut self, other: &SparseRowMatMut<'_, I, RhsE>)
fn sub_assign(&mut self, other: &SparseRowMatMut<'_, I, RhsE>)
-=
operation. Read moresource§impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> SubAssign<&SparseRowMatRef<'_, I, RhsE>> for SparseRowMat<I, LhsE>
impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> SubAssign<&SparseRowMatRef<'_, I, RhsE>> for SparseRowMat<I, LhsE>
source§fn sub_assign(&mut self, other: &SparseRowMatRef<'_, I, RhsE>)
fn sub_assign(&mut self, other: &SparseRowMatRef<'_, I, RhsE>)
-=
operation. Read moresource§impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> SubAssign<SparseRowMat<I, RhsE>> for SparseRowMat<I, LhsE>
impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> SubAssign<SparseRowMat<I, RhsE>> for SparseRowMat<I, LhsE>
source§fn sub_assign(&mut self, other: SparseRowMat<I, RhsE>)
fn sub_assign(&mut self, other: SparseRowMat<I, RhsE>)
-=
operation. Read moresource§impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> SubAssign<SparseRowMat<I, RhsE>> for SparseRowMatMut<'_, I, LhsE>
impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> SubAssign<SparseRowMat<I, RhsE>> for SparseRowMatMut<'_, I, LhsE>
source§fn sub_assign(&mut self, other: SparseRowMat<I, RhsE>)
fn sub_assign(&mut self, other: SparseRowMat<I, RhsE>)
-=
operation. Read moresource§impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> SubAssign<SparseRowMatMut<'_, I, RhsE>> for SparseRowMat<I, LhsE>
impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> SubAssign<SparseRowMatMut<'_, I, RhsE>> for SparseRowMat<I, LhsE>
source§fn sub_assign(&mut self, other: SparseRowMatMut<'_, I, RhsE>)
fn sub_assign(&mut self, other: SparseRowMatMut<'_, I, RhsE>)
-=
operation. Read moresource§impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> SubAssign<SparseRowMatRef<'_, I, RhsE>> for SparseRowMat<I, LhsE>
impl<I: Index, LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> SubAssign<SparseRowMatRef<'_, I, RhsE>> for SparseRowMat<I, LhsE>
source§fn sub_assign(&mut self, other: SparseRowMatRef<'_, I, RhsE>)
fn sub_assign(&mut self, other: SparseRowMatRef<'_, I, RhsE>)
-=
operation. Read moreAuto Trait Implementations§
impl<I, E> Freeze for SparseRowMat<I, E>
impl<I, E> RefUnwindSafe for SparseRowMat<I, E>where
<<E as Entity>::Group as ForType>::FaerOf<Vec<<E as Entity>::Unit>>: RefUnwindSafe,
I: RefUnwindSafe,
impl<I, E> Send for SparseRowMat<I, E>
impl<I, E> Sync for SparseRowMat<I, E>
impl<I, E> Unpin for SparseRowMat<I, E>
impl<I, E> UnwindSafe for SparseRowMat<I, E>where
<<E as Entity>::Group as ForType>::FaerOf<Vec<<E as Entity>::Unit>>: UnwindSafe,
I: 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
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>
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>
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