Struct faer_core::Mat

source ·
#[repr(C)]
pub struct Mat<E: Entity> { /* private fields */ }
Expand description

Heap allocated resizable matrix, similar to a 2D Vec.

Note

The memory layout of Mat is guaranteed to be column-major, meaning that it has a row stride of 1, and an unspecified column stride that can be queried with Mat::col_stride.

This implies that while each individual column is stored contiguously in memory, the matrix as a whole may not necessarily be contiguous. The implementation may add padding at the end of each column when overaligning each column can provide a performance gain.

Let us consider a 3×4 matrix

 0 │ 3 │ 6 │  9
───┼───┼───┼───
 1 │ 4 │ 7 │ 10
───┼───┼───┼───
 2 │ 5 │ 8 │ 11

The memory representation of the data held by such a matrix could look like the following:

0 1 2 X 3 4 5 X 6 7 8 X 9 10 11 X

where X represents padding elements.

Implementations§

source§

impl<E: Entity> Mat<E>

source

pub fn new() -> Self

source

pub fn with_capacity(row_capacity: usize, col_capacity: usize) -> Self

Returns a new matrix with dimensions (0, 0), with enough capacity to hold a maximum of row_capacity rows and col_capacity columns without reallocating. If either is 0, the matrix will not allocate.

Panics

The function panics if the total capacity in bytes exceeds isize::MAX.

source

pub fn from_fn( nrows: usize, ncols: usize, f: impl FnMut(usize, usize) -> E ) -> Self

Returns a new matrix with dimensions (nrows, ncols), filled with the provided function.

Panics

The function panics if the total capacity in bytes exceeds isize::MAX.

source

pub fn zeros(nrows: usize, ncols: usize) -> Self
where E: ComplexField,

Returns a new matrix with dimensions (nrows, ncols), filled with zeros.

Panics

The function panics if the total capacity in bytes exceeds isize::MAX.

source

pub fn identity(nrows: usize, ncols: usize) -> Self
where E: ComplexField,

Returns a new matrix with dimensions (nrows, ncols), filled with zeros, except the main diagonal which is filled with ones.

Panics

The function panics if the total capacity in bytes exceeds isize::MAX.

source

pub unsafe fn set_dims(&mut self, nrows: usize, ncols: usize)

Set the dimensions of the matrix.

Safety

The behavior is undefined if any of the following conditions are violated:

  • nrows < self.row_capacity().
  • ncols < self.col_capacity().
  • The elements that were previously out of bounds but are now in bounds must be initialized.
source

pub fn as_ptr(&self) -> GroupFor<E, *const E::Unit>

Returns a pointer to the data of the matrix.

source

pub fn as_mut_ptr(&mut self) -> GroupFor<E, *mut E::Unit>

Returns a mutable pointer to the data of the matrix.

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 row_capacity(&self) -> usize

Returns the row capacity, that is, the number of rows that the matrix is able to hold without needing to reallocate, excluding column insertions.

source

pub fn col_capacity(&self) -> usize

Returns the column capacity, that is, the number of columns that the matrix is able to hold without needing to reallocate, excluding row insertions.

source

pub fn row_stride(&self) -> isize

Returns the offset between the first elements of two successive rows in the matrix. Always returns 1 since the matrix is column major.

source

pub fn col_stride(&self) -> isize

Returns the offset between the first elements of two successive columns in the matrix.

source

pub fn reserve_exact(&mut self, row_capacity: usize, col_capacity: usize)

Reserves the minimum capacity for row_capacity rows and col_capacity columns without reallocating. Does nothing if the capacity is already sufficient.

Panics

The function panics if the new total capacity in bytes exceeds isize::MAX.

source

pub fn resize_with( &mut self, new_nrows: usize, new_ncols: usize, f: impl FnMut(usize, usize) -> E )

Resizes the matrix in-place so that the new dimensions are (new_nrows, new_ncols). New elements are created with the given function f, so that elements at indices (i, j) are created by calling f(i, j).

source

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

Returns a reference to a slice over the column at the given index.

source

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

Returns a mutable reference to a slice over the column at the given index.

source

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

Returns a view over the matrix.

source

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

Returns a mutable view over the matrix.

source

pub unsafe fn get_unchecked<RowRange, ColRange>( &self, row: RowRange, col: ColRange ) -> <MatRef<'_, E> as MatIndex<RowRange, ColRange>>::Target
where for<'a> MatRef<'a, E>: MatIndex<RowRange, ColRange>,

Returns references to the element at the given indices, or submatrices if either row or col is a range.

Note

The values pointed to by the references are expected to be initialized, even if the pointed-to value is not read, otherwise the behavior is undefined.

Safety

The behavior is undefined if any of the following conditions are violated:

  • row must be contained in [0, self.nrows()).
  • col must be contained in [0, self.ncols()).
source

pub fn get<RowRange, ColRange>( &self, row: RowRange, col: ColRange ) -> <MatRef<'_, E> as MatIndex<RowRange, ColRange>>::Target
where for<'a> MatRef<'a, E>: MatIndex<RowRange, ColRange>,

Returns references to the element at the given indices, or submatrices if either row or col is a range, with bound checks.

Note

The values pointed to by the references are expected to be initialized, even if the pointed-to value is not read, otherwise the behavior is undefined.

Panics

The function panics if any of the following conditions are violated:

  • row must be contained in [0, self.nrows()).
  • col must be contained in [0, self.ncols()).
source

pub unsafe fn get_mut_unchecked<RowRange, ColRange>( &mut self, row: RowRange, col: ColRange ) -> <MatMut<'_, E> as MatIndex<RowRange, ColRange>>::Target
where for<'a> MatMut<'a, E>: MatIndex<RowRange, ColRange>,

Returns mutable references to the element at the given indices, or submatrices if either row or col is a range.

Note

The values pointed to by the references are expected to be initialized, even if the pointed-to value is not read, otherwise the behavior is undefined.

Safety

The behavior is undefined if any of the following conditions are violated:

  • row must be contained in [0, self.nrows()).
  • col must be contained in [0, self.ncols()).
source

pub fn get_mut<RowRange, ColRange>( &mut self, row: RowRange, col: ColRange ) -> <MatMut<'_, E> as MatIndex<RowRange, ColRange>>::Target
where for<'a> MatMut<'a, E>: MatIndex<RowRange, ColRange>,

Returns mutable references to the element at the given indices, or submatrices if either row or col is a range, with bound checks.

Note

The values pointed to by the references are expected to be initialized, even if the pointed-to value is not read, otherwise the behavior is undefined.

Panics

The function panics if any of the following conditions are violated:

  • row must be contained in [0, self.nrows()).
  • col must be contained in [0, self.ncols()).
source

pub unsafe fn read_unchecked(&self, row: usize, col: usize) -> E

Reads the value of the element at the given indices.

Safety

The behavior is undefined if any of the following conditions are violated:

  • row < self.nrows().
  • col < self.ncols().
source

pub fn read(&self, row: usize, col: usize) -> E

Reads the value of the element at the given indices, with bound checks.

Panics

The function panics if any of the following conditions are violated:

  • row < self.nrows().
  • col < self.ncols().
source

pub unsafe fn write_unchecked(&mut self, row: usize, col: usize, value: E)

Writes the value to the element at the given indices.

Safety

The behavior is undefined if any of the following conditions are violated:

  • row < self.nrows().
  • col < self.ncols().
source

pub fn write(&mut self, row: usize, col: usize, value: E)

Writes the value to the element at the given indices, with bound checks.

Panics

The function panics if any of the following conditions are violated:

  • row < self.nrows().
  • col < self.ncols().
source

pub fn clone_from(&mut self, other: impl AsMatRef<E>)

Copies the values from other into self.

source

pub fn fill_zeros(&mut self)
where E: ComplexField,

Fills the elements of self with zeros.

source

pub fn fill(&mut self, constant: E)

Fills the elements of self with copies of constant.

source

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

Returns a view over the transpose of self.

source

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

Returns a view over the conjugate of self.

source

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

Returns a view over the conjugate transpose of self.

source

pub fn to_owned(&self) -> Mat<E::Canonical>
where E: Conjugate,

Returns an owning Mat of the data

source

pub fn has_nan(&self) -> bool
where E: ComplexField,

Returns true if any of the elements is NaN, otherwise returns false.

source

pub fn is_all_finite(&self) -> bool
where E: ComplexField,

Returns true if all of the elements are finite, otherwise returns false.

source

pub fn col_chunks( &self, chunk_size: usize ) -> impl '_ + DoubleEndedIterator<Item = MatRef<'_, E>>

Returns an iterator that provides successive chunks of the columns of a view over this matrix, with each having at most chunk_size columns.

If the number of columns is a multiple of chunk_size, then all chunks have chunk_size columns.

source

pub fn col_chunks_mut( &mut self, chunk_size: usize ) -> impl '_ + DoubleEndedIterator<Item = MatMut<'_, E>>

Returns an iterator that provides successive chunks of the columns of a mutable view over this matrix, with each having at most chunk_size columns.

If the number of columns is a multiple of chunk_size, then all chunks have chunk_size columns.

source

pub fn par_col_chunks( &self, chunk_size: usize ) -> impl '_ + IndexedParallelIterator<Item = MatRef<'_, E>>

Returns a parallel iterator that provides successive chunks of the columns of a view over this matrix, with each having at most chunk_size columns.

If the number of columns is a multiple of chunk_size, then all chunks have chunk_size columns.

Only available with the rayon feature.

source

pub fn par_col_chunks_mut( &mut self, chunk_size: usize ) -> impl '_ + IndexedParallelIterator<Item = MatMut<'_, E>>

Returns a parallel iterator that provides successive chunks of the columns of a mutable view over this matrix, with each having at most chunk_size columns.

If the number of columns is a multiple of chunk_size, then all chunks have chunk_size columns.

Only available with the rayon feature.

source

pub fn row_chunks( &self, chunk_size: usize ) -> impl '_ + DoubleEndedIterator<Item = MatRef<'_, E>>

Returns an iterator that provides successive chunks of the rows of a view over this matrix, with each having at most chunk_size rows.

If the number of rows is a multiple of chunk_size, then all chunks have chunk_size rows.

source

pub fn row_chunks_mut( &mut self, chunk_size: usize ) -> impl '_ + DoubleEndedIterator<Item = MatMut<'_, E>>

Returns an iterator that provides successive chunks of the rows of a mutable view over this matrix, with each having at most chunk_size rows.

If the number of rows is a multiple of chunk_size, then all chunks have chunk_size rows.

source

pub fn par_row_chunks( &self, chunk_size: usize ) -> impl '_ + IndexedParallelIterator<Item = MatRef<'_, E>>

Returns a parallel iterator that provides successive chunks of the rows of a view over this matrix, with each having at most chunk_size rows.

If the number of rows is a multiple of chunk_size, then all chunks have chunk_size rows.

Only available with the rayon feature.

source

pub fn par_row_chunks_mut( &mut self, chunk_size: usize ) -> impl '_ + IndexedParallelIterator<Item = MatMut<'_, E>>

Returns a parallel iterator that provides successive chunks of the rows of a mutable view over this matrix, with each having at most chunk_size rows.

If the number of rows is a multiple of chunk_size, then all chunks have chunk_size rows.

Only available with the rayon feature.

Trait Implementations§

source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Add<&Mat<RhsE>> for &Mat<LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the + operator.
source§

fn add(self, rhs: &Mat<RhsE>) -> Self::Output

Performs the + operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Add<&Mat<RhsE>> for &MatMut<'_, LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the + operator.
source§

fn add(self, rhs: &Mat<RhsE>) -> Self::Output

Performs the + operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Add<&Mat<RhsE>> for &MatRef<'_, LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the + operator.
source§

fn add(self, rhs: &Mat<RhsE>) -> Self::Output

Performs the + operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Add<&Mat<RhsE>> for Mat<LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the + operator.
source§

fn add(self, rhs: &Mat<RhsE>) -> Self::Output

Performs the + operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Add<&Mat<RhsE>> for MatMut<'_, LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the + operator.
source§

fn add(self, rhs: &Mat<RhsE>) -> Self::Output

Performs the + operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Add<&Mat<RhsE>> for MatRef<'_, LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the + operator.
source§

fn add(self, rhs: &Mat<RhsE>) -> Self::Output

Performs the + operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Add<&MatMut<'_, RhsE>> for &Mat<LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the + operator.
source§

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

Performs the + operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Add<&MatMut<'_, RhsE>> for Mat<LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the + operator.
source§

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

Performs the + operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Add<&MatRef<'_, RhsE>> for &Mat<LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the + operator.
source§

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

Performs the + operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Add<&MatRef<'_, RhsE>> for Mat<LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the + operator.
source§

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

Performs the + operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Add<Mat<RhsE>> for &Mat<LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Mat<RhsE>) -> Self::Output

Performs the + operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Add<Mat<RhsE>> for &MatMut<'_, LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Mat<RhsE>) -> Self::Output

Performs the + operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Add<Mat<RhsE>> for &MatRef<'_, LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Mat<RhsE>) -> Self::Output

Performs the + operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Add<Mat<RhsE>> for Mat<LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Mat<RhsE>) -> Self::Output

Performs the + operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Add<Mat<RhsE>> for MatMut<'_, LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Mat<RhsE>) -> Self::Output

Performs the + operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Add<Mat<RhsE>> for MatRef<'_, LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Mat<RhsE>) -> Self::Output

Performs the + operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Add<MatMut<'_, RhsE>> for &Mat<LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the + operator.
source§

fn add(self, rhs: MatMut<'_, RhsE>) -> Self::Output

Performs the + operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Add<MatMut<'_, RhsE>> for Mat<LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the + operator.
source§

fn add(self, rhs: MatMut<'_, RhsE>) -> Self::Output

Performs the + operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Add<MatRef<'_, RhsE>> for &Mat<LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the + operator.
source§

fn add(self, rhs: MatRef<'_, RhsE>) -> Self::Output

Performs the + operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Add<MatRef<'_, RhsE>> for Mat<LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the + operator.
source§

fn add(self, rhs: MatRef<'_, RhsE>) -> Self::Output

Performs the + operation. Read more
source§

impl<LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> AddAssign<&Mat<RhsE>> for Mat<LhsE>

source§

fn add_assign(&mut self, rhs: &Mat<RhsE>)

Performs the += operation. Read more
source§

impl<LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> AddAssign<&Mat<RhsE>> for MatMut<'_, LhsE>

source§

fn add_assign(&mut self, rhs: &Mat<RhsE>)

Performs the += operation. Read more
source§

impl<LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> AddAssign<&MatMut<'_, RhsE>> for Mat<LhsE>

source§

fn add_assign(&mut self, rhs: &MatMut<'_, RhsE>)

Performs the += operation. Read more
source§

impl<LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> AddAssign<&MatRef<'_, RhsE>> for Mat<LhsE>

source§

fn add_assign(&mut self, rhs: &MatRef<'_, RhsE>)

Performs the += operation. Read more
source§

impl<LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> AddAssign<Mat<RhsE>> for Mat<LhsE>

source§

fn add_assign(&mut self, rhs: Mat<RhsE>)

Performs the += operation. Read more
source§

impl<LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> AddAssign<Mat<RhsE>> for MatMut<'_, LhsE>

source§

fn add_assign(&mut self, rhs: Mat<RhsE>)

Performs the += operation. Read more
source§

impl<LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> AddAssign<MatMut<'_, RhsE>> for Mat<LhsE>

source§

fn add_assign(&mut self, rhs: MatMut<'_, RhsE>)

Performs the += operation. Read more
source§

impl<LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> AddAssign<MatRef<'_, RhsE>> for Mat<LhsE>

source§

fn add_assign(&mut self, rhs: MatRef<'_, RhsE>)

Performs the += operation. Read more
source§

impl<E: Entity> AsMatMut<E> for &mut Mat<E>

source§

fn as_mat_mut(&mut self) -> MatMut<'_, E>

source§

impl<E: Entity> AsMatMut<E> for Mat<E>

source§

fn as_mat_mut(&mut self) -> MatMut<'_, E>

source§

impl<E: Entity> AsMatRef<E> for &Mat<E>

source§

fn as_mat_ref(&self) -> MatRef<'_, E>

source§

impl<E: Entity> AsMatRef<E> for Mat<E>

source§

fn as_mat_ref(&self) -> MatRef<'_, E>

source§

impl<E: Entity> Clone for Mat<E>

source§

fn clone(&self) -> Self

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<E: Entity> Debug for Mat<E>

source§

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

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

impl<E: Entity> Default for Mat<E>

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<E: Entity> DenseAccess<E> for Mat<E>

source§

fn fetch_single(&self, row: usize, col: usize) -> E

source§

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

§

type Output = E

The returned type after indexing.
source§

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

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

impl<E: SimpleEntity> IndexMut<(usize, usize)> for Mat<E>

source§

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

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

impl<E: Entity> Matrix<E> for Mat<E>

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<E: ComplexField, MatE: Conjugate<Canonical = E>> Mul<&Mat<MatE>> for Scale<E>

§

type Output = Mat<E>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: &Mat<MatE>) -> Self::Output

Performs the * operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Mul<&Mat<RhsE>> for &Mat<LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the * operator.
source§

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

Performs the * operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Mul<&Mat<RhsE>> for &MatMut<'_, LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the * operator.
source§

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

Performs the * operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Mul<&Mat<RhsE>> for &MatRef<'_, LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the * operator.
source§

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

Performs the * operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Mul<&Mat<RhsE>> for Mat<LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the * operator.
source§

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

Performs the * operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Mul<&Mat<RhsE>> for MatMut<'_, LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the * operator.
source§

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

Performs the * operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Mul<&Mat<RhsE>> for MatRef<'_, LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the * operator.
source§

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

Performs the * operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Mul<&MatMut<'_, RhsE>> for &Mat<LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the * operator.
source§

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

Performs the * operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Mul<&MatMut<'_, RhsE>> for Mat<LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the * operator.
source§

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

Performs the * operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Mul<&MatRef<'_, RhsE>> for &Mat<LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the * operator.
source§

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

Performs the * operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Mul<&MatRef<'_, RhsE>> for Mat<LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the * operator.
source§

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

Performs the * operation. Read more
source§

impl<E: ComplexField, MatE: Conjugate<Canonical = E>> Mul<Mat<MatE>> for Scale<E>

§

type Output = Mat<E>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Mat<MatE>) -> Self::Output

Performs the * operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Mul<Mat<RhsE>> for &Mat<LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the * operator.
source§

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

Performs the * operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Mul<Mat<RhsE>> for &MatMut<'_, LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the * operator.
source§

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

Performs the * operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Mul<Mat<RhsE>> for &MatRef<'_, LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the * operator.
source§

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

Performs the * operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Mul<Mat<RhsE>> for Mat<LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the * operator.
source§

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

Performs the * operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Mul<Mat<RhsE>> for MatMut<'_, LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the * operator.
source§

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

Performs the * operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Mul<Mat<RhsE>> for MatRef<'_, LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the * operator.
source§

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

Performs the * operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Mul<MatMut<'_, RhsE>> for &Mat<LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the * operator.
source§

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

Performs the * operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Mul<MatMut<'_, RhsE>> for Mat<LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the * operator.
source§

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

Performs the * operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Mul<MatRef<'_, RhsE>> for &Mat<LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the * operator.
source§

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

Performs the * operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Mul<MatRef<'_, RhsE>> for Mat<LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the * operator.
source§

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

Performs the * operation. Read more
source§

impl<E: ComplexField, MatE: Conjugate<Canonical = E>> Mul<Scale<E>> for &Mat<MatE>

§

type Output = Mat<E>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Scale<E>) -> Self::Output

Performs the * operation. Read more
source§

impl<E: ComplexField, MatE: Conjugate<Canonical = E>> Mul<Scale<E>> for Mat<MatE>

§

type Output = Mat<E>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Scale<E>) -> Self::Output

Performs the * operation. Read more
source§

impl<E: ComplexField> MulAssign<Scale<E>> for Mat<E>

source§

fn mul_assign(&mut self, rhs: Scale<E>)

Performs the *= operation. Read more
source§

impl<E: Conjugate> Neg for &Mat<E>

§

type Output = Mat<<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<E: Conjugate> Neg for Mat<E>

§

type Output = Mat<<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<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> PartialEq<&Mat<RhsE>> for Mat<LhsE>
where LhsE::Canonical: ComplexField,

source§

fn eq(&self, rhs: &&Mat<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<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> PartialEq<&Mat<RhsE>> for MatMut<'_, LhsE>
where LhsE::Canonical: ComplexField,

source§

fn eq(&self, rhs: &&Mat<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<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> PartialEq<&Mat<RhsE>> for MatRef<'_, LhsE>
where LhsE::Canonical: ComplexField,

source§

fn eq(&self, rhs: &&Mat<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<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> PartialEq<&MatMut<'_, RhsE>> for Mat<LhsE>
where LhsE::Canonical: ComplexField,

source§

fn eq(&self, rhs: &&MatMut<'_, 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<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> PartialEq<&MatRef<'_, RhsE>> for Mat<LhsE>
where LhsE::Canonical: ComplexField,

source§

fn eq(&self, rhs: &&MatRef<'_, 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<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> PartialEq<Mat<RhsE>> for &Mat<LhsE>
where LhsE::Canonical: ComplexField,

source§

fn eq(&self, rhs: &Mat<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<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> PartialEq<Mat<RhsE>> for &MatMut<'_, LhsE>
where LhsE::Canonical: ComplexField,

source§

fn eq(&self, rhs: &Mat<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<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> PartialEq<Mat<RhsE>> for &MatRef<'_, LhsE>
where LhsE::Canonical: ComplexField,

source§

fn eq(&self, rhs: &Mat<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<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> PartialEq<Mat<RhsE>> for Mat<LhsE>
where LhsE::Canonical: ComplexField,

source§

fn eq(&self, rhs: &Mat<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<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> PartialEq<Mat<RhsE>> for MatMut<'_, LhsE>
where LhsE::Canonical: ComplexField,

source§

fn eq(&self, rhs: &Mat<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<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> PartialEq<Mat<RhsE>> for MatRef<'_, LhsE>
where LhsE::Canonical: ComplexField,

source§

fn eq(&self, rhs: &Mat<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<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> PartialEq<MatMut<'_, RhsE>> for &Mat<LhsE>
where LhsE::Canonical: ComplexField,

source§

fn eq(&self, rhs: &MatMut<'_, 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<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> PartialEq<MatMut<'_, RhsE>> for Mat<LhsE>
where LhsE::Canonical: ComplexField,

source§

fn eq(&self, rhs: &MatMut<'_, 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<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> PartialEq<MatRef<'_, RhsE>> for &Mat<LhsE>
where LhsE::Canonical: ComplexField,

source§

fn eq(&self, rhs: &MatRef<'_, 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<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> PartialEq<MatRef<'_, RhsE>> for Mat<LhsE>
where LhsE::Canonical: ComplexField,

source§

fn eq(&self, rhs: &MatRef<'_, 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<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Sub<&Mat<RhsE>> for &Mat<LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: &Mat<RhsE>) -> Self::Output

Performs the - operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Sub<&Mat<RhsE>> for &MatMut<'_, LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: &Mat<RhsE>) -> Self::Output

Performs the - operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Sub<&Mat<RhsE>> for &MatRef<'_, LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: &Mat<RhsE>) -> Self::Output

Performs the - operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Sub<&Mat<RhsE>> for Mat<LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: &Mat<RhsE>) -> Self::Output

Performs the - operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Sub<&Mat<RhsE>> for MatMut<'_, LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: &Mat<RhsE>) -> Self::Output

Performs the - operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Sub<&Mat<RhsE>> for MatRef<'_, LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: &Mat<RhsE>) -> Self::Output

Performs the - operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Sub<&MatMut<'_, RhsE>> for &Mat<LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the - operator.
source§

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

Performs the - operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Sub<&MatMut<'_, RhsE>> for Mat<LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the - operator.
source§

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

Performs the - operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Sub<&MatRef<'_, RhsE>> for &Mat<LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the - operator.
source§

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

Performs the - operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Sub<&MatRef<'_, RhsE>> for Mat<LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the - operator.
source§

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

Performs the - operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Sub<Mat<RhsE>> for &Mat<LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Mat<RhsE>) -> Self::Output

Performs the - operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Sub<Mat<RhsE>> for &MatMut<'_, LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Mat<RhsE>) -> Self::Output

Performs the - operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Sub<Mat<RhsE>> for &MatRef<'_, LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Mat<RhsE>) -> Self::Output

Performs the - operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Sub<Mat<RhsE>> for Mat<LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Mat<RhsE>) -> Self::Output

Performs the - operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Sub<Mat<RhsE>> for MatMut<'_, LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Mat<RhsE>) -> Self::Output

Performs the - operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Sub<Mat<RhsE>> for MatRef<'_, LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Mat<RhsE>) -> Self::Output

Performs the - operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Sub<MatMut<'_, RhsE>> for &Mat<LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: MatMut<'_, RhsE>) -> Self::Output

Performs the - operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Sub<MatMut<'_, RhsE>> for Mat<LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: MatMut<'_, RhsE>) -> Self::Output

Performs the - operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Sub<MatRef<'_, RhsE>> for &Mat<LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: MatRef<'_, RhsE>) -> Self::Output

Performs the - operation. Read more
source§

impl<LhsE: Conjugate, RhsE: Conjugate<Canonical = LhsE::Canonical>> Sub<MatRef<'_, RhsE>> for Mat<LhsE>
where LhsE::Canonical: ComplexField,

§

type Output = Mat<<LhsE as Conjugate>::Canonical>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: MatRef<'_, RhsE>) -> Self::Output

Performs the - operation. Read more
source§

impl<LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> SubAssign<&Mat<RhsE>> for Mat<LhsE>

source§

fn sub_assign(&mut self, rhs: &Mat<RhsE>)

Performs the -= operation. Read more
source§

impl<LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> SubAssign<&Mat<RhsE>> for MatMut<'_, LhsE>

source§

fn sub_assign(&mut self, rhs: &Mat<RhsE>)

Performs the -= operation. Read more
source§

impl<LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> SubAssign<&MatMut<'_, RhsE>> for Mat<LhsE>

source§

fn sub_assign(&mut self, rhs: &MatMut<'_, RhsE>)

Performs the -= operation. Read more
source§

impl<LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> SubAssign<&MatRef<'_, RhsE>> for Mat<LhsE>

source§

fn sub_assign(&mut self, rhs: &MatRef<'_, RhsE>)

Performs the -= operation. Read more
source§

impl<LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> SubAssign<Mat<RhsE>> for Mat<LhsE>

source§

fn sub_assign(&mut self, rhs: Mat<RhsE>)

Performs the -= operation. Read more
source§

impl<LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> SubAssign<Mat<RhsE>> for MatMut<'_, LhsE>

source§

fn sub_assign(&mut self, rhs: Mat<RhsE>)

Performs the -= operation. Read more
source§

impl<LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> SubAssign<MatMut<'_, RhsE>> for Mat<LhsE>

source§

fn sub_assign(&mut self, rhs: MatMut<'_, RhsE>)

Performs the -= operation. Read more
source§

impl<LhsE: ComplexField, RhsE: Conjugate<Canonical = LhsE>> SubAssign<MatRef<'_, RhsE>> for Mat<LhsE>

source§

fn sub_assign(&mut self, rhs: MatRef<'_, RhsE>)

Performs the -= operation. Read more
source§

impl<E: Entity> Send for Mat<E>

source§

impl<E: Entity> Sync for Mat<E>

Auto Trait Implementations§

§

impl<E> RefUnwindSafe for Mat<E>

§

impl<E> Unpin for Mat<E>
where <<E as Entity>::Group as ForCopyType>::FaerOfCopy<NonNull<<E as Entity>::Unit>>: Unpin,

§

impl<E> UnwindSafe for Mat<E>

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.

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

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.