Struct faer_core::Matrix

source ·
pub struct Matrix<M> { /* private fields */ }
Expand description

Generic matrix container.

Implementations§

source§

impl<I, E: Entity> Matrix<PermOwn<I, E>>

source

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

source

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

source§

impl<I: Index, E: Entity> Matrix<PermOwn<I, E>>

source

pub fn new_checked(forward: Box<[I]>, inverse: Box<[I]>) -> Self

Creates a new permutation, by checking the validity of the inputs.

Panics

The function panics if any of the following conditions are violated: forward and inverse must have the same length which must be less than or equal to I::Signed::MAX, be valid permutations, and be inverse permutations of each other.

source

pub unsafe fn new_unchecked(forward: Box<[I]>, inverse: Box<[I]>) -> Self

Creates a new permutation reference, without checking the validity of the inputs.

Safety

forward and inverse must have the same length which must be less than or equal to I::Signed::MAX, be valid permutations, and be inverse permutations of each other.

source

pub fn into_arrays(self) -> (Box<[I]>, Box<[I]>)

Returns the permutation as an array.

source

pub fn len(&self) -> usize

source

pub fn inverse(self) -> Self

Returns the inverse permutation.

source

pub fn cast<T: Entity>(self) -> Permutation<I, T>

source§

impl<'a, I: Index, E: Entity> Matrix<PermRef<'a, I, E>>

source

pub fn new_checked(forward: &'a [I], inverse: &'a [I]) -> Self

Creates a new permutation reference, by checking the validity of the inputs.

Panics

The function panics if any of the following conditions are violated: forward and inverse must have the same length which must be less than or equal to I::Signed::MAX, be valid permutations, and be inverse permutations of each other.

source

pub unsafe fn new_unchecked(forward: &'a [I], inverse: &'a [I]) -> Self

Creates a new permutation reference, without checking the validity of the inputs.

Safety

forward and inverse must have the same length which must be less than or equal to I::Signed::MAX, be valid permutations, and be inverse permutations of each other.

source

pub fn into_arrays(self) -> (&'a [I], &'a [I])

Returns the permutation as an array.

source

pub fn len(&self) -> usize

source

pub fn inverse(self) -> Self

Returns the inverse permutation.

source

pub fn cast<T: Entity>(self) -> PermutationRef<'a, I, T>

source

pub fn canonicalize(self) -> PermutationRef<'a, I::FixedWidth, E>

source

pub fn uncanonicalize<J: Index>(self) -> PermutationRef<'a, J, E>

source§

impl<'a, I: Index, E: Entity> Matrix<PermMut<'a, I, E>>

source

pub fn new_checked(forward: &'a mut [I], inverse: &'a mut [I]) -> Self

Creates a new permutation mutable reference, by checking the validity of the inputs.

Panics

The function panics if any of the following conditions are violated: forward and inverse must have the same length which must be less than or equal to I::Signed::MAX, be valid permutations, and be inverse permutations of each other.

source

pub unsafe fn new_unchecked(forward: &'a mut [I], inverse: &'a mut [I]) -> Self

Creates a new permutation mutable reference, without checking the validity of the inputs.

Safety

forward and inverse must have the same length which must be less than or equal to I::Signed::MAX, be valid permutations, and be inverse permutations of each other.

source

pub unsafe fn into_arrays(self) -> (&'a mut [I], &'a mut [I])

Returns the permutation as an array.

Safety

The behavior is undefined if the arrays are no longer inverse permutations of each other by the end of lifetime 'a.

source

pub fn len(&self) -> usize

source

pub fn inverse(self) -> Self

Returns the inverse permutation.

source

pub fn cast<T: Entity>(self) -> PermutationMut<'a, I, T>

source

pub fn canonicalize(self) -> PermutationMut<'a, I::FixedWidth, E>

source

pub fn uncanonicalize<J: Index>(self) -> PermutationMut<'a, J, E>

source§

impl<E: Entity> Matrix<Scale<E>>

source

pub fn new(value: E) -> Self

source

pub fn value(self) -> E

source§

impl<'a, E: Entity> Matrix<DiagRef<'a, E>>

source

pub fn into_column_vector(self) -> ColRef<'a, E>

👎Deprecated: replaced by Matrix<DiagRef<’_, E>>::column_vector
source

pub fn column_vector(self) -> ColRef<'a, E>

source§

impl<'a, E: Entity> Matrix<DiagMut<'a, E>>

source

pub fn into_column_vector(self) -> ColMut<'a, E>

👎Deprecated: replaced by Matrix<DiagRef<’_, E>>::column_vector_mut
source

pub fn column_vector_mut(self) -> ColMut<'a, E>

source§

impl<E: Entity> Matrix<DiagOwn<E>>

source

pub fn into_column_vector(self) -> Col<E>

source

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

source

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

source§

impl<'a, E: Entity> Matrix<DenseColRef<'a, E>>

source

pub fn nrows(&self) -> usize

source

pub fn ncols(&self) -> usize

source

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

Returns pointers to the matrix data.

source

pub fn row_stride(&self) -> isize

Returns the row stride of the matrix, specified in number of elements, not in bytes.

source

pub fn as_2d(self) -> MatRef<'a, E>

source

pub fn ptr_at(self, row: usize) -> GroupFor<E, *const E::Unit>

Returns raw pointers to the element at the given index.

source

pub unsafe fn ptr_inbounds_at(self, row: usize) -> GroupFor<E, *const E::Unit>

Returns raw pointers to the element at the given index, assuming the provided index is within the size of the vector.

Safety

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

  • row < self.nrows().
source

pub unsafe fn split_at_unchecked(self, row: usize) -> (Self, Self)

Splits the column vector at the given index into two parts and returns an array of each subvector, in the following order:

  • top.
  • bottom.
Safety

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

  • row <= self.nrows().
source

pub unsafe fn split_at(self, row: usize) -> (Self, Self)

Splits the column vector at the given index into two parts and returns an array of each subvector, in the following order:

  • top.
  • bottom.
Panics

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

  • row <= self.nrows().
source

pub unsafe fn get_unchecked<RowRange>( self, row: RowRange ) -> <Self as ColIndex<RowRange>>::Targetwhere Self: ColIndex<RowRange>,

Returns references to the element at the given index, or subvector if row 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()).
source

pub fn get<RowRange>( self, row: RowRange ) -> <Self as ColIndex<RowRange>>::Targetwhere Self: ColIndex<RowRange>,

Returns references to the element at the given index, or subvector if row 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()).
source

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

Reads the value of the element at the given index.

Safety

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

  • row < self.nrows().
source

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

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

Panics

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

  • row < self.nrows().
source

pub fn transpose(self) -> RowRef<'a, E>

Returns a view over the transpose of self.

source

pub fn conjugate(self) -> ColRef<'a, E::Conj>where E: Conjugate,

Returns a view over the conjugate of self.

source

pub fn adjoint(self) -> RowRef<'a, E::Conj>where E: Conjugate,

Returns a view over the conjugate transpose of self.

source

pub fn canonicalize(self) -> (ColRef<'a, E::Canonical>, Conj)where E: Conjugate,

Returns a view over the canonical representation of self, as well as a flag declaring whether self is implicitly conjugated or not.

source

pub fn reverse_rows(self) -> Self

Returns a view over the self, with the rows in reversed order.

source

pub unsafe fn subrows_unchecked(self, row_start: usize, nrows: usize) -> Self

Returns a view over the subvector starting at row row_start, and with number of rows nrows.

Safety

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

  • row_start <= self.nrows().
  • nrows <= self.nrows() - row_start.
source

pub fn subrows(self, row_start: usize, nrows: usize) -> Self

Returns a view over the subvector starting at row row_start, and with number of rows nrows.

Safety

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

  • row_start <= self.nrows().
  • nrows <= self.nrows() - row_start.
source

pub fn column_vector_as_diagonal(self) -> Matrix<DiagRef<'a, E>>

Given a matrix with a single column, returns an object that interprets the column as a diagonal matrix, whoes diagonal elements are values in the column.

source

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

Returns an owning Col of the data.

source

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

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

source

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

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

source

pub fn norm_max(&self) -> E::Realwhere E: ComplexField,

Returns the maximum norm of self.

source

pub fn norm_l2(&self) -> E::Realwhere E: ComplexField,

Returns the L2 norm of self.

source

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

Returns a view over the matrix.

source§

impl<'a, E: Entity> Matrix<DenseColMut<'a, E>>

source

pub fn nrows(&self) -> usize

source

pub fn ncols(&self) -> usize

source

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

Returns pointers to the matrix data.

source

pub fn row_stride(&self) -> isize

Returns the row stride of the matrix, specified in number of elements, not in bytes.

source

pub fn as_2d_mut(self) -> MatMut<'a, E>

source

pub fn ptr_at_mut(self, row: usize) -> GroupFor<E, *mut E::Unit>

Returns raw pointers to the element at the given index.

source

pub unsafe fn ptr_inbounds_at_mut(self, row: usize) -> GroupFor<E, *mut E::Unit>

Returns raw pointers to the element at the given index, assuming the provided index is within the size of the vector.

Safety

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

  • row < self.nrows().
source

pub unsafe fn split_at_mut_unchecked(self, row: usize) -> (Self, Self)

Splits the column vector at the given index into two parts and returns an array of each subvector, in the following order:

  • top.
  • bottom.
Safety

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

  • row <= self.nrows().
source

pub fn split_at_mut(self, row: usize) -> (Self, Self)

Splits the column vector at the given index into two parts and returns an array of each subvector, in the following order:

  • top.
  • bottom.
Panics

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

  • row <= self.nrows().
source

pub unsafe fn get_unchecked_mut<RowRange>( self, row: RowRange ) -> <Self as ColIndex<RowRange>>::Targetwhere Self: ColIndex<RowRange>,

Returns references to the element at the given index, or subvector if row 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()).
source

pub fn get_mut<RowRange>( self, row: RowRange ) -> <Self as ColIndex<RowRange>>::Targetwhere Self: ColIndex<RowRange>,

Returns references to the element at the given index, or subvector if row 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()).
source

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

Reads the value of the element at the given index.

Safety

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

  • row < self.nrows().
source

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

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

Panics

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

  • row < self.nrows().
source

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

Writes the value to the element at the given index.

Safety

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

  • row < self.nrows().
source

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

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

Panics

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

  • row < self.nrows().
source

pub fn copy_from(&mut self, other: impl AsColRef<E>)

Copies the values from other into self.

Panics

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

  • self.nrows() == other.nrows().
  • self.ncols() == other.ncols().
source

pub fn fill_zero(&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_mut(self) -> RowMut<'a, E>

Returns a view over the transpose of self.

source

pub fn conjugate_mut(self) -> ColMut<'a, E::Conj>where E: Conjugate,

Returns a view over the conjugate of self.

source

pub fn adjoint_mut(self) -> RowMut<'a, E::Conj>where E: Conjugate,

Returns a view over the conjugate transpose of self.

source

pub fn canonicalize_mut(self) -> (ColMut<'a, E::Canonical>, Conj)where E: Conjugate,

Returns a view over the canonical representation of self, as well as a flag declaring whether self is implicitly conjugated or not.

source

pub fn reverse_rows_mut(self) -> Self

Returns a view over the self, with the rows in reversed order.

source

pub unsafe fn subrows_mut_unchecked( self, row_start: usize, nrows: usize ) -> Self

Returns a view over the subvector starting at row row_start, and with number of rows nrows.

Safety

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

  • row_start <= self.nrows().
  • nrows <= self.nrows() - row_start.
source

pub fn subrows_mut(self, row_start: usize, nrows: usize) -> Self

Returns a view over the subvector starting at row row_start, and with number of rows nrows.

Safety

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

  • row_start <= self.nrows().
  • nrows <= self.nrows() - row_start.
source

pub fn column_vector_as_diagonal(self) -> Matrix<DiagMut<'a, E>>

Given a matrix with a single column, returns an object that interprets the column as a diagonal matrix, whoes diagonal elements are values in the column.

source

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

Returns an owning Col of the data.

source

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

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

source

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

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

source

pub fn norm_max(&self) -> E::Realwhere E: ComplexField,

Returns the maximum norm of self.

source

pub fn norm_l2(&self) -> E::Realwhere E: ComplexField,

Returns the L2 norm of self.

source

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

Returns a view over the matrix.

source§

impl<'a, E: Entity> Matrix<DenseRowRef<'a, E>>

source

pub fn nrows(&self) -> usize

source

pub fn ncols(&self) -> usize

source

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

Returns pointers to the matrix data.

source

pub fn col_stride(&self) -> isize

Returns the column stride of the matrix, specified in number of elements, not in bytes.

source

pub fn as_2d(self) -> MatRef<'a, E>

source

pub fn ptr_at(self, col: usize) -> GroupFor<E, *const E::Unit>

Returns raw pointers to the element at the given index.

source

pub unsafe fn ptr_inbounds_at(self, col: usize) -> GroupFor<E, *const E::Unit>

Returns raw pointers to the element at the given index, assuming the provided index is within the size of the vector.

Safety

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

  • col < self.ncols().
source

pub unsafe fn split_at_unchecked(self, col: usize) -> (Self, Self)

Splits the column vector at the given index into two parts and returns an array of each subvector, in the following order:

  • left.
  • right.
Safety

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

  • col <= self.ncols().
source

pub unsafe fn split_at(self, col: usize) -> (Self, Self)

Splits the column vector at the given index into two parts and returns an array of each subvector, in the following order:

  • top.
  • bottom.
Panics

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

  • col <= self.ncols().
source

pub unsafe fn get_unchecked<ColRange>( self, col: ColRange ) -> <Self as RowIndex<ColRange>>::Targetwhere Self: RowIndex<ColRange>,

Returns references to the element at the given index, or subvector if row 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:

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

pub fn get<ColRange>( self, col: ColRange ) -> <Self as RowIndex<ColRange>>::Targetwhere Self: RowIndex<ColRange>,

Returns references to the element at the given index, or subvector if 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:

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

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

Reads the value of the element at the given index.

Safety

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

  • col < self.ncols().
source

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

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

Panics

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

  • col < self.ncols().
source

pub fn transpose(self) -> ColRef<'a, E>

Returns a view over the transpose of self.

source

pub fn conjugate(self) -> RowRef<'a, E::Conj>where E: Conjugate,

Returns a view over the conjugate of self.

source

pub fn adjoint(self) -> ColRef<'a, E::Conj>where E: Conjugate,

Returns a view over the conjugate transpose of self.

source

pub fn canonicalize(self) -> (RowRef<'a, E::Canonical>, Conj)where E: Conjugate,

Returns a view over the canonical representation of self, as well as a flag declaring whether self is implicitly conjugated or not.

source

pub fn reverse_cols(self) -> Self

Returns a view over the self, with the columnss in reversed order.

source

pub unsafe fn subcols_unchecked(self, col_start: usize, ncols: usize) -> Self

Returns a view over the subvector starting at column col_start, and with number of columns ncols.

Safety

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

  • col_start <= self.ncols().
  • ncols <= self.ncols() - col_start.
source

pub fn subcols(self, col_start: usize, ncols: usize) -> Self

Returns a view over the subvector starting at col col_start, and with number of cols ncols.

Panics

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

  • col_start <= self.ncols().
  • ncols <= self.ncols() - col_start.
source

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

Returns an owning Row of the data.

source

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

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

source

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

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

source

pub fn norm_max(&self) -> E::Realwhere E: ComplexField,

Returns the maximum norm of self.

source

pub fn norm_l2(&self) -> E::Realwhere E: ComplexField,

Returns the L2 norm of self.

source

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

Returns a view over the matrix.

source§

impl<'a, E: Entity> Matrix<DenseRowMut<'a, E>>

source

pub fn nrows(&self) -> usize

source

pub fn ncols(&self) -> usize

source

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

Returns pointers to the matrix data.

source

pub fn col_stride(&self) -> isize

Returns the column stride of the matrix, specified in number of elements, not in bytes.

source

pub fn as_2d_mut(self) -> MatMut<'a, E>

source

pub fn ptr_at_mut(self, col: usize) -> GroupFor<E, *mut E::Unit>

Returns raw pointers to the element at the given index.

source

pub unsafe fn ptr_inbounds_at_mut(self, col: usize) -> GroupFor<E, *mut E::Unit>

Returns raw pointers to the element at the given index, assuming the provided index is within the size of the vector.

Safety

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

  • col < self.ncols().
source

pub unsafe fn split_at_mut_unchecked(self, col: usize) -> (Self, Self)

Splits the column vector at the given index into two parts and returns an array of each subvector, in the following order:

  • left.
  • right.
Safety

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

  • col <= self.ncols().
source

pub fn split_at_mut(self, col: usize) -> (Self, Self)

Splits the column vector at the given index into two parts and returns an array of each subvector, in the following order:

  • top.
  • bottom.
Panics

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

  • col <= self.ncols().
source

pub unsafe fn get_mut_unchecked<ColRange>( self, col: ColRange ) -> <Self as RowIndex<ColRange>>::Targetwhere Self: RowIndex<ColRange>,

Returns references to the element at the given index, or subvector if 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:

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

pub fn get_mut<ColRange>( self, col: ColRange ) -> <Self as RowIndex<ColRange>>::Targetwhere Self: RowIndex<ColRange>,

Returns references to the element at the given index, or subvector if 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:

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

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

Reads the value of the element at the given index.

Safety

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

  • col < self.ncols().
source

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

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

Panics

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

  • col < self.ncols().
source

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

Writes the value to the element at the given index.

Safety

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

  • col < self.ncols().
source

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

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

Panics

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

  • col < self.ncols().
source

pub fn copy_from(&mut self, other: impl AsRowRef<E>)

Copies the values from other into self.

Panics

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

  • self.ncols() == other.ncols().
source

pub fn fill_zero(&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_mut(self) -> ColMut<'a, E>

Returns a view over the transpose of self.

source

pub fn conjugate_mut(self) -> RowMut<'a, E::Conj>where E: Conjugate,

Returns a view over the conjugate of self.

source

pub fn adjoint_mut(self) -> ColMut<'a, E::Conj>where E: Conjugate,

Returns a view over the conjugate transpose of self.

source

pub fn canonicalize_mut(self) -> (RowMut<'a, E::Canonical>, Conj)where E: Conjugate,

Returns a view over the canonical representation of self, as well as a flag declaring whether self is implicitly conjugated or not.

source

pub fn reverse_cols_mut(self) -> Self

Returns a view over the self, with the columnss in reversed order.

source

pub unsafe fn subcols_mut_unchecked( self, col_start: usize, ncols: usize ) -> Self

Returns a view over the subvector starting at col col_start, and with number of columns ncols.

Safety

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

  • col_start <= self.ncols().
  • ncols <= self.ncols() - col_start.
source

pub fn subcols_mut(self, col_start: usize, ncols: usize) -> Self

Returns a view over the subvector starting at col col_start, and with number of columns ncols.

Safety

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

  • col_start <= self.ncols().
  • ncols <= self.ncols() - col_start.
source

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

Returns an owning Row of the data.

source

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

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

source

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

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

source

pub fn norm_max(&self) -> E::Realwhere E: ComplexField,

Returns the maximum norm of self.

source

pub fn norm_l2(&self) -> E::Realwhere E: ComplexField,

Returns the L2 norm of self.

source

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

Returns a view over the matrix.

source§

impl<'a, E: Entity> Matrix<DenseRef<'a, E>>

source

pub fn from_column_major_slice( slice: GroupFor<E, &'a [E::Unit]>, nrows: usize, ncols: usize ) -> Self

👎Deprecated: replaced by faer_core::mat::from_column_major_slice
source

pub fn from_row_major_slice( slice: GroupFor<E, &'a [E::Unit]>, nrows: usize, ncols: usize ) -> Self

👎Deprecated: replaced by faer_core::mat::from_row_major_slice
source

pub unsafe fn from_raw_parts( ptr: GroupFor<E, *const E::Unit>, nrows: usize, ncols: usize, row_stride: isize, col_stride: isize ) -> Self

👎Deprecated: replaced by faer_core::mat::from_raw_parts
source

pub fn nrows(&self) -> usize

source

pub fn ncols(&self) -> usize

source

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

Returns pointers to the matrix data.

source

pub fn row_stride(&self) -> isize

Returns the row stride of the matrix, specified in number of elements, not in bytes.

source

pub fn col_stride(&self) -> isize

Returns the column stride of the matrix, specified in number of elements, not in bytes.

source

pub fn ptr_at(self, row: usize, col: usize) -> GroupFor<E, *const E::Unit>

Returns raw pointers to the element at the given indices.

source

pub unsafe fn ptr_inbounds_at( self, row: usize, col: usize ) -> GroupFor<E, *const E::Unit>

Returns raw pointers to the element at the given indices, assuming the provided indices are within the matrix dimensions.

Safety

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

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

pub unsafe fn split_at_unchecked( self, row: usize, col: usize ) -> (Self, Self, Self, Self)

Splits the matrix horizontally and vertically at the given indices into four corners and returns an array of each submatrix, in the following order:

  • top left.
  • top right.
  • bottom left.
  • bottom right.
Safety

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

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

pub fn split_at(self, row: usize, col: usize) -> (Self, Self, Self, Self)

Splits the matrix horizontally and vertically at the given indices into four corners and returns an array of each submatrix, in the following order:

  • top left.
  • top right.
  • bottom left.
  • bottom right.
Panics

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

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

pub unsafe fn split_at_row_unchecked(self, row: usize) -> (Self, Self)

Splits the matrix horizontally at the given row into two parts and returns an array of each submatrix, in the following order:

  • top.
  • bottom.
Safety

The behavior is undefined if the following condition is violated:

  • row <= self.nrows().
source

pub fn split_at_row(self, row: usize) -> (Self, Self)

Splits the matrix horizontally at the given row into two parts and returns an array of each submatrix, in the following order:

  • top.
  • bottom.
Panics

The function panics if the following condition is violated:

  • row <= self.nrows().
source

pub unsafe fn split_at_col_unchecked(self, col: usize) -> (Self, Self)

Splits the matrix vertically at the given row into two parts and returns an array of each submatrix, in the following order:

  • left.
  • right.
Safety

The behavior is undefined if the following condition is violated:

  • col <= self.ncols().
source

pub fn split_at_col(self, col: usize) -> (Self, Self)

Splits the matrix vertically at the given row into two parts and returns an array of each submatrix, in the following order:

  • left.
  • right.
Panics

The function panics if the following condition is violated:

  • col <= self.ncols().
source

pub unsafe fn get_unchecked<RowRange, ColRange>( self, row: RowRange, col: ColRange ) -> <Self as MatIndex<RowRange, ColRange>>::Targetwhere Self: 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 ) -> <Self as MatIndex<RowRange, ColRange>>::Targetwhere Self: 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 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 fn transpose(self) -> Self

Returns a view over the transpose of self.

Example
use faer_core::mat;

let matrix = mat![[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]];
let view = matrix.as_ref();
let transpose = view.transpose();

let expected = mat![[1.0, 4.0], [2.0, 5.0], [3.0, 6.0]];
assert_eq!(expected.as_ref(), transpose);
source

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

Returns a view over the conjugate of self.

source

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

Returns a view over the conjugate transpose of self.

source

pub fn canonicalize(self) -> (MatRef<'a, E::Canonical>, Conj)where E: Conjugate,

Returns a view over the canonical representation of self, as well as a flag declaring whether self is implicitly conjugated or not.

source

pub fn reverse_rows(self) -> Self

Returns a view over the self, with the rows in reversed order.

Example
use faer_core::mat;

let matrix = mat![[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]];
let view = matrix.as_ref();
let reversed_rows = view.reverse_rows();

let expected = mat![[4.0, 5.0, 6.0], [1.0, 2.0, 3.0]];
assert_eq!(expected.as_ref(), reversed_rows);
source

pub fn reverse_cols(self) -> Self

Returns a view over the self, with the columns in reversed order.

Example
use faer_core::mat;

let matrix = mat![[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]];
let view = matrix.as_ref();
let reversed_cols = view.reverse_cols();

let expected = mat![[3.0, 2.0, 1.0], [6.0, 5.0, 4.0]];
assert_eq!(expected.as_ref(), reversed_cols);
source

pub fn reverse_rows_and_cols(self) -> Self

Returns a view over the self, with the rows and the columns in reversed order.

Example
use faer_core::mat;

let matrix = mat![[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]];
let view = matrix.as_ref();
let reversed = view.reverse_rows_and_cols();

let expected = mat![[6.0, 5.0, 4.0], [3.0, 2.0, 1.0]];
assert_eq!(expected.as_ref(), reversed);
source

pub unsafe fn submatrix_unchecked( self, row_start: usize, col_start: usize, nrows: usize, ncols: usize ) -> Self

Returns a view over the submatrix starting at indices (row_start, col_start), and with dimensions (nrows, ncols).

Safety

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

  • row_start <= self.nrows().
  • col_start <= self.ncols().
  • nrows <= self.nrows() - row_start.
  • ncols <= self.ncols() - col_start.
source

pub fn submatrix( self, row_start: usize, col_start: usize, nrows: usize, ncols: usize ) -> Self

Returns a view over the submatrix starting at indices (row_start, col_start), and with dimensions (nrows, ncols).

Panics

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

  • row_start <= self.nrows().
  • col_start <= self.ncols().
  • nrows <= self.nrows() - row_start.
  • ncols <= self.ncols() - col_start.
Example
use faer_core::mat;

let matrix = mat![
    [1.0, 5.0, 9.0],
    [2.0, 6.0, 10.0],
    [3.0, 7.0, 11.0],
    [4.0, 8.0, 12.0f64],
];

let view = matrix.as_ref();
let submatrix = view.submatrix(2, 1, 2, 2);

let expected = mat![[7.0, 11.0], [8.0, 12.0f64]];
assert_eq!(expected.as_ref(), submatrix);
source

pub unsafe fn subrows_unchecked(self, row_start: usize, nrows: usize) -> Self

Returns a view over the submatrix starting at row row_start, and with number of rows nrows.

Safety

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

  • row_start <= self.nrows().
  • nrows <= self.nrows() - row_start.
source

pub fn subrows(self, row_start: usize, nrows: usize) -> Self

Returns a view over the submatrix starting at row row_start, and with number of rows nrows.

Panics

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

  • row_start <= self.nrows().
  • nrows <= self.nrows() - row_start.
Example
use faer_core::mat;

let matrix = mat![
    [1.0, 5.0, 9.0],
    [2.0, 6.0, 10.0],
    [3.0, 7.0, 11.0],
    [4.0, 8.0, 12.0f64],
];

let view = matrix.as_ref();
let subrows = view.subrows(1, 2);

let expected = mat![[2.0, 6.0, 10.0], [3.0, 7.0, 11.0],];
assert_eq!(expected.as_ref(), subrows);
source

pub unsafe fn subcols_unchecked(self, col_start: usize, ncols: usize) -> Self

Returns a view over the submatrix starting at column col_start, and with number of columns ncols.

Safety

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

  • col_start <= self.ncols().
  • ncols <= self.ncols() - col_start.
source

pub fn subcols(self, col_start: usize, ncols: usize) -> Self

Returns a view over the submatrix starting at column col_start, and with number of columns ncols.

Panics

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

  • col_start <= self.ncols().
  • ncols <= self.ncols() - col_start.
Example
use faer_core::mat;

let matrix = mat![
    [1.0, 5.0, 9.0],
    [2.0, 6.0, 10.0],
    [3.0, 7.0, 11.0],
    [4.0, 8.0, 12.0f64],
];

let view = matrix.as_ref();
let subcols = view.subcols(2, 1);

let expected = mat![[9.0], [10.0], [11.0], [12.0f64]];
assert_eq!(expected.as_ref(), subcols);
source

pub unsafe fn row_unchecked(self, row_idx: usize) -> RowRef<'a, E>

Returns a view over the row at the given index.

Safety

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

  • row_idx < self.nrows().
source

pub fn row(self, row_idx: usize) -> RowRef<'a, E>

Returns a view over the row at the given index.

Panics

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

  • row_idx < self.nrows().
source

pub unsafe fn col_unchecked(self, col_idx: usize) -> ColRef<'a, E>

Returns a view over the column at the given index.

Safety

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

  • col_idx < self.ncols().
source

pub fn col(self, col_idx: usize) -> ColRef<'a, E>

Returns a view over the column at the given index.

Panics

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

  • col_idx < self.ncols().
source

pub fn column_vector_as_diagonal(self) -> Matrix<DiagRef<'a, E>>

Given a matrix with a single column, returns an object that interprets the column as a diagonal matrix, whoes diagonal elements are values in the column.

source

pub fn diagonal(self) -> Matrix<DiagRef<'a, E>>

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) -> boolwhere E: ComplexField,

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

source

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

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

source

pub fn norm_max(&self) -> E::Realwhere E: ComplexField,

Returns the maximum norm of self.

source

pub fn norm_l2(&self) -> E::Realwhere E: ComplexField,

Returns the L2 norm of self.

source

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

Returns a view over the matrix.

source

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

Returns an iterator that provides successive chunks of the columns of 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 into_col_chunks( self, chunk_size: usize ) -> impl 'a + DoubleEndedIterator<Item = MatRef<'a, E>>

👎Deprecated: replaced by MatRef::col_chunks
source

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

Returns an iterator that provides successive chunks of the rows of 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 into_row_chunks( self, chunk_size: usize ) -> impl 'a + DoubleEndedIterator<Item = MatRef<'a, E>>

👎Deprecated: replaced by MatRef::row_chunks
source

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

Returns a parallel iterator that provides successive chunks of the columns of 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 into_par_col_chunks( self, chunk_size: usize ) -> impl 'a + IndexedParallelIterator<Item = MatRef<'a, E>>

👎Deprecated: replaced by MatRef::par_col_chunks
source

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

Returns a parallel iterator that provides successive chunks of the rows of 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 into_par_row_chunks( self, chunk_size: usize ) -> impl 'a + IndexedParallelIterator<Item = MatRef<'a, E>>

👎Deprecated: replaced by MatRef::par_row_chunks

Returns a parallel iterator that provides successive chunks of the rows of 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§

impl<'a, E: Entity> Matrix<DenseMut<'a, E>>

source

pub fn from_column_major_slice( slice: GroupFor<E, &'a mut [E::Unit]>, nrows: usize, ncols: usize ) -> Self

👎Deprecated: replaced by faer_core::mat::from_column_major_slice_mut
source

pub fn from_row_major_slice( slice: GroupFor<E, &'a mut [E::Unit]>, nrows: usize, ncols: usize ) -> Self

👎Deprecated: replaced by faer_core::mat::from_row_major_slice_mut
source

pub unsafe fn from_raw_parts( ptr: GroupFor<E, *mut E::Unit>, nrows: usize, ncols: usize, row_stride: isize, col_stride: isize ) -> Self

👎Deprecated: replaced by faer_core::mat::from_raw_parts_mut
source

pub fn nrows(&self) -> usize

source

pub fn ncols(&self) -> usize

source

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

Returns pointers to the matrix data.

source

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

👎Deprecated: replaced by MatMut::as_ptr_mut
source

pub fn row_stride(&self) -> isize

Returns the row stride of the matrix, specified in number of elements, not in bytes.

source

pub fn col_stride(&self) -> isize

Returns the column stride of the matrix, specified in number of elements, not in bytes.

source

pub fn ptr_at_mut(self, row: usize, col: usize) -> GroupFor<E, *mut E::Unit>

Returns raw pointers to the element at the given indices.

source

pub fn ptr_at(self, row: usize, col: usize) -> GroupFor<E, *mut E::Unit>

👎Deprecated: replaced by MatMut::ptr_at_mut
source

pub unsafe fn ptr_inbounds_at_mut( self, row: usize, col: usize ) -> GroupFor<E, *mut E::Unit>

Returns raw pointers to the element at the given indices, assuming the provided indices are within the matrix dimensions.

Safety

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

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

pub unsafe fn ptr_inbounds_at( self, row: usize, col: usize ) -> GroupFor<E, *mut E::Unit>

👎Deprecated: replaced by MatMut::ptr_inbounds_at_mut
source

pub unsafe fn split_at_mut_unchecked( self, row: usize, col: usize ) -> (Self, Self, Self, Self)

Splits the matrix horizontally and vertically at the given indices into four corners and returns an array of each submatrix, in the following order:

  • top left.
  • top right.
  • bottom left.
  • bottom right.
Safety

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

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

pub fn split_at_mut(self, row: usize, col: usize) -> (Self, Self, Self, Self)

Splits the matrix horizontally and vertically at the given indices into four corners and returns an array of each submatrix, in the following order:

  • top left.
  • top right.
  • bottom left.
  • bottom right.
Panics

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

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

pub unsafe fn split_at_row_mut_unchecked(self, row: usize) -> (Self, Self)

Splits the matrix horizontally at the given row into two parts and returns an array of each submatrix, in the following order:

  • top.
  • bottom.
Safety

The behavior is undefined if the following condition is violated:

  • row <= self.nrows().
source

pub fn split_at_row_mut(self, row: usize) -> (Self, Self)

Splits the matrix horizontally at the given row into two parts and returns an array of each submatrix, in the following order:

  • top.
  • bottom.
Panics

The function panics if the following condition is violated:

  • row <= self.nrows().
source

pub unsafe fn split_at_col_mut_unchecked(self, col: usize) -> (Self, Self)

Splits the matrix vertically at the given row into two parts and returns an array of each submatrix, in the following order:

  • left.
  • right.
Safety

The behavior is undefined if the following condition is violated:

  • col <= self.ncols().
source

pub fn split_at_col_mut(self, col: usize) -> (Self, Self)

Splits the matrix vertically at the given row into two parts and returns an array of each submatrix, in the following order:

  • left.
  • right.
Panics

The function panics if the following condition is violated:

  • col <= self.ncols().
source

pub fn split_at(self, row: usize, col: usize) -> (Self, Self, Self, Self)

👎Deprecated: replaced by MatMut::split_at_mut
source

pub fn split_at_row(self, row: usize) -> (Self, Self)

👎Deprecated: replaced by MatMut::split_at_row_mut
source

pub fn split_at_col(self, col: usize) -> (Self, Self)

👎Deprecated: replaced by MatMut::split_at_col_mut
source

pub unsafe fn get_mut_unchecked<RowRange, ColRange>( self, row: RowRange, col: ColRange ) -> <Self as MatIndex<RowRange, ColRange>>::Targetwhere Self: 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 unsafe fn get_unchecked<RowRange, ColRange>( self, row: RowRange, col: ColRange ) -> <Self as MatIndex<RowRange, ColRange>>::Targetwhere Self: MatIndex<RowRange, ColRange>,

👎Deprecated: replaced by MatMut::get_mut_unchecked
source

pub fn get_mut<RowRange, ColRange>( self, row: RowRange, col: ColRange ) -> <Self as MatIndex<RowRange, ColRange>>::Targetwhere Self: 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 fn get<RowRange, ColRange>( self, row: RowRange, col: ColRange ) -> <Self as MatIndex<RowRange, ColRange>>::Targetwhere Self: MatIndex<RowRange, ColRange>,

👎Deprecated: replaced by MatMut::get_mut
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 copy_from_triangular_lower(&mut self, other: impl AsMatRef<E>)

Copies the values from the lower triangular part of other into the lower triangular part of self. The diagonal part is included.

Panics

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

  • self.nrows() == other.nrows().
  • self.ncols() == other.ncols().
  • self.nrows() == self.ncols().
source

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

Copies the values from the lower triangular part of other into the lower triangular part of self. The diagonal part is excluded.

Panics

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

  • self.nrows() == other.nrows().
  • self.ncols() == other.ncols().
  • self.nrows() == self.ncols().
source

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

Copies the values from the upper triangular part of other into the upper triangular part of self. The diagonal part is included.

Panics

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

  • self.nrows() == other.nrows().
  • self.ncols() == other.ncols().
  • self.nrows() == self.ncols().
source

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

Copies the values from the upper triangular part of other into the upper triangular part of self. The diagonal part is excluded.

Panics

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

  • self.nrows() == other.nrows().
  • self.ncols() == other.ncols().
  • self.nrows() == self.ncols().
source

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

Copies the values from other into self.

Panics

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

  • self.nrows() == other.nrows().
  • self.ncols() == other.ncols().
source

pub fn fill_zero(&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_mut(self) -> Self

Returns a view over the transpose of self.

Example
use faer_core::mat;

let mut matrix = mat![[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]];
let view = matrix.as_mut();
let transpose = view.transpose_mut();

let mut expected = mat![[1.0, 4.0], [2.0, 5.0], [3.0, 6.0]];
assert_eq!(expected.as_mut(), transpose);
source

pub fn transpose(self) -> Self

👎Deprecated: replaced by MatMut::transpose_mut
source

pub fn conjugate_mut(self) -> MatMut<'a, E::Conj>where E: Conjugate,

Returns a view over the conjugate of self.

source

pub fn conjugate(self) -> MatMut<'a, E::Conj>where E: Conjugate,

👎Deprecated: replaced by MatMut::conjugate_mut
source

pub fn adjoint_mut(self) -> MatMut<'a, E::Conj>where E: Conjugate,

Returns a view over the conjugate transpose of self.

source

pub fn adjoint(self) -> MatMut<'a, E::Conj>where E: Conjugate,

👎Deprecated: replaced by MatMut::adjoint_mut
source

pub fn canonicalize_mut(self) -> (MatMut<'a, E::Canonical>, Conj)where E: Conjugate,

Returns a view over the canonical representation of self, as well as a flag declaring whether self is implicitly conjugated or not.

source

pub fn canonicalize(self) -> (MatMut<'a, E::Canonical>, Conj)where E: Conjugate,

👎Deprecated: replaced by MatMut::canonicalize_mut
source

pub fn reverse_rows_mut(self) -> Self

Returns a view over the self, with the rows in reversed order.

Example
use faer_core::mat;

let mut matrix = mat![[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]];
let view = matrix.as_mut();
let reversed_rows = view.reverse_rows_mut();

let mut expected = mat![[4.0, 5.0, 6.0], [1.0, 2.0, 3.0]];
assert_eq!(expected.as_mut(), reversed_rows);
source

pub fn reverse_rows(self) -> Self

👎Deprecated: replaced by MatMut::reverse_rows_mut
source

pub fn reverse_cols_mut(self) -> Self

Returns a view over the self, with the columns in reversed order.

Example
use faer_core::mat;

let mut matrix = mat![[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]];
let view = matrix.as_mut();
let reversed_cols = view.reverse_cols_mut();

let mut expected = mat![[3.0, 2.0, 1.0], [6.0, 5.0, 4.0]];
assert_eq!(expected.as_mut(), reversed_cols);
source

pub fn reverse_cols(self) -> Self

👎Deprecated: replaced by MatMut::reverse_cols_mut
source

pub fn reverse_rows_and_cols_mut(self) -> Self

Returns a view over the self, with the rows and the columns in reversed order.

Example
use faer_core::mat;

let mut matrix = mat![[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]];
let view = matrix.as_mut();
let reversed = view.reverse_rows_and_cols_mut();

let mut expected = mat![[6.0, 5.0, 4.0], [3.0, 2.0, 1.0]];
assert_eq!(expected.as_mut(), reversed);
source

pub fn reverse_rows_and_cols(self) -> Self

👎Deprecated: replaced by MatMut::reverse_rows_and_cols_mut
source

pub fn submatrix_mut( self, row_start: usize, col_start: usize, nrows: usize, ncols: usize ) -> Self

Returns a view over the submatrix starting at indices (row_start, col_start), and with dimensions (nrows, ncols).

Panics

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

  • row_start <= self.nrows().
  • col_start <= self.ncols().
  • nrows <= self.nrows() - row_start.
  • ncols <= self.ncols() - col_start.
Example
use faer_core::mat;

let mut matrix = mat![
    [1.0, 5.0, 9.0],
    [2.0, 6.0, 10.0],
    [3.0, 7.0, 11.0],
    [4.0, 8.0, 12.0f64],
];

let view = matrix.as_mut();
let submatrix = view.submatrix_mut(2, 1, 2, 2);

let mut expected = mat![[7.0, 11.0], [8.0, 12.0f64]];
assert_eq!(expected.as_mut(), submatrix);
source

pub fn submatrix( self, row_start: usize, col_start: usize, nrows: usize, ncols: usize ) -> Self

👎Deprecated: replaced by MatMut::submatrix_mut
source

pub fn subrows_mut(self, row_start: usize, nrows: usize) -> Self

Returns a view over the submatrix starting at row row_start, and with number of rows nrows.

Panics

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

  • row_start <= self.nrows().
  • nrows <= self.nrows() - row_start.
Example
use faer_core::mat;

let mut matrix = mat![
    [1.0, 5.0, 9.0],
    [2.0, 6.0, 10.0],
    [3.0, 7.0, 11.0],
    [4.0, 8.0, 12.0f64],
];

let view = matrix.as_mut();
let subrows = view.subrows_mut(1, 2);

let mut expected = mat![[2.0, 6.0, 10.0], [3.0, 7.0, 11.0],];
assert_eq!(expected.as_mut(), subrows);
source

pub fn subrows(self, row_start: usize, nrows: usize) -> Self

👎Deprecated: replaced by MatMut::subrows_mut
source

pub fn subcols_mut(self, col_start: usize, ncols: usize) -> Self

Returns a view over the submatrix starting at column col_start, and with number of columns ncols.

Panics

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

  • col_start <= self.ncols().
  • ncols <= self.ncols() - col_start.
Example
use faer_core::mat;

let mut matrix = mat![
    [1.0, 5.0, 9.0],
    [2.0, 6.0, 10.0],
    [3.0, 7.0, 11.0],
    [4.0, 8.0, 12.0f64],
];

let view = matrix.as_mut();
let subcols = view.subcols_mut(2, 1);

let mut expected = mat![[9.0], [10.0], [11.0], [12.0f64]];
assert_eq!(expected.as_mut(), subcols);
source

pub fn subcols(self, col_start: usize, ncols: usize) -> Self

👎Deprecated: replaced by MatMut::subcols_mut
source

pub fn row_mut(self, row_idx: usize) -> RowMut<'a, E>

Returns a view over the row at the given index.

Panics

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

  • row_idx < self.nrows().
source

pub fn row(self, row_idx: usize) -> RowMut<'a, E>

👎Deprecated: replaced by MatMut::row_mut
source

pub fn col_mut(self, col_idx: usize) -> ColMut<'a, E>

Returns a view over the column at the given index.

Panics

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

  • col_idx < self.ncols().
source

pub fn col(self, col_idx: usize) -> ColMut<'a, E>

👎Deprecated: replaced by MatMut::col_mut
source

pub fn column_vector_as_diagonal_mut(self) -> Matrix<DiagMut<'a, E>>

Given a matrix with a single column, returns an object that interprets the column as a diagonal matrix, whoes diagonal elements are values in the column.

source

pub fn column_vector_as_diagonal(self) -> Matrix<DiagMut<'a, E>>

👎Deprecated: replaced by MatMut::column_vector_as_diagonal_mut
source

pub fn diagonal_mut(self) -> Matrix<DiagMut<'a, E>>

source

pub fn diagonal(self) -> Matrix<DiagMut<'a, E>>

👎Deprecated: replaced by MatMut::diagonal_mut
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) -> boolwhere E: ComplexField,

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

source

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

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

source

pub fn norm_max(&self) -> E::Realwhere E: ComplexField,

Returns the maximum norm of self.

source

pub fn norm_l2(&self) -> E::Realwhere E: ComplexField,

Returns the L2 norm of self.

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 fn col_chunks_mut( self, chunk_size: usize ) -> impl 'a + DoubleEndedIterator<Item = MatMut<'a, E>>

Returns an iterator that provides successive chunks of the columns of 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 into_col_chunks( self, chunk_size: usize ) -> impl 'a + DoubleEndedIterator<Item = MatMut<'a, E>>

👎Deprecated: replaced by MatMut::col_chunks_mut
source

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

Returns an iterator that provides successive chunks of the rows of 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 into_row_chunks( self, chunk_size: usize ) -> impl 'a + DoubleEndedIterator<Item = MatMut<'a, E>>

👎Deprecated: replaced by MatMut::row_chunks_mut
source

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

Returns a parallel iterator that provides successive chunks of the columns of 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 into_par_col_chunks( self, chunk_size: usize ) -> impl 'a + IndexedParallelIterator<Item = MatMut<'a, E>>

👎Deprecated: replaced by MatMut::par_col_chunks_mut
source

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

Returns a parallel iterator that provides successive chunks of the rows of 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 into_par_row_chunks( self, chunk_size: usize ) -> impl 'a + IndexedParallelIterator<Item = MatMut<'a, E>>

👎Deprecated: replaced by MatMut::par_row_chunks_mut
source§

impl<'a, E: RealField> Matrix<DenseRef<'a, Complex<E>>>

source

pub fn real_imag(self) -> Complex<MatRef<'a, E>>

source§

impl<'a, E: RealField> Matrix<DenseMut<'a, Complex<E>>>

source

pub fn real_imag_mut(self) -> Complex<MatMut<'a, E>>

source§

impl<E: Entity> Matrix<DenseColOwn<E>>

source

pub fn new() -> Self

source

pub fn with_capacity(row_capacity: usize) -> Self

Returns a new column vector with 0 rows, with enough capacity to hold a maximum of row_capacity rows columns without reallocating. If row_capacity is 0, the function will not allocate.

Panics

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

source

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

Returns a new matrix with number of rows nrows, filled with the provided function.

Panics

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

source

pub fn zeros(nrows: usize) -> Selfwhere E: ComplexField,

Returns a new matrix with number of rows nrows, filled with zeros.

Panics

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

source

pub fn nrows(&self) -> usize

source

pub fn ncols(&self) -> usize

source

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

Set the dimensions of the matrix.

Safety

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

  • nrows < self.row_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_ptr_mut(&mut self) -> GroupFor<E, *mut E::Unit>

Returns a mutable pointer to the data 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 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 reserve_exact(&mut self, row_capacity: usize)

Reserves the minimum capacity for row_capacity rows 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, f: impl FnMut(usize) -> E)

Resizes the vector in-place so that the new number of rows is new_nrows. New elements are created with the given function f, so that elements at index i are created by calling f(i).

source

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

Returns a reference to a slice over the column.

source

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

Returns a mutable reference to a slice over the column.

source

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

Returns a view over the vector.

source

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

Returns a mutable view over the vector.

source

pub unsafe fn get_unchecked<RowRange>( &self, row: RowRange ) -> <ColRef<'_, E> as ColIndex<RowRange>>::Targetwhere for<'a> ColRef<'a, E>: ColIndex<RowRange>,

Returns references to the element at the given index, or submatrices if row 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()).
source

pub fn get<RowRange>( &self, row: RowRange ) -> <ColRef<'_, E> as ColIndex<RowRange>>::Targetwhere for<'a> ColRef<'a, E>: ColIndex<RowRange>,

Returns references to the element at the given index, or submatrices if row 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()).
source

pub unsafe fn get_mut_unchecked<RowRange>( &mut self, row: RowRange ) -> <ColMut<'_, E> as ColIndex<RowRange>>::Targetwhere for<'a> ColMut<'a, E>: ColIndex<RowRange>,

Returns mutable references to the element at the given index, or submatrices if row 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()).
source

pub fn get_mut<RowRange>( &mut self, row: RowRange ) -> <ColMut<'_, E> as ColIndex<RowRange>>::Targetwhere for<'a> ColMut<'a, E>: ColIndex<RowRange>,

Returns mutable references to the element at the given index, or submatrices if row 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()).
source

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

Reads the value of the element at the given index.

Safety

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

  • row < self.nrows().
source

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

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

Panics

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

  • row < self.nrows().
source

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

Writes the value to the element at the given index.

Safety

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

  • row < self.nrows().
source

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

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

Panics

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

  • row < self.nrows().
source

pub fn copy_from(&mut self, other: impl AsColRef<E>)

Copies the values from other into self.

source

pub fn fill_zero(&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) -> RowRef<'_, E>

Returns a view over the transpose of self.

source

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

Returns a view over the conjugate of self.

source

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

Returns a view over the conjugate transpose of self.

source

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

Returns an owning Col of the data

source

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

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

source

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

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

source

pub fn norm_max(&self) -> E::Realwhere E: ComplexField,

Returns the maximum norm of self.

source

pub fn norm_l2(&self) -> E::Realwhere E: ComplexField,

Returns the L2 norm of self.

source§

impl<E: Entity> Matrix<DenseRowOwn<E>>

source

pub fn new() -> Self

source

pub fn with_capacity(col_capacity: usize) -> Self

Returns a new column vector with 0 columns, with enough capacity to hold a maximum of col_capacity columnss columns without reallocating. If col_capacity is 0, the function will not allocate.

Panics

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

source

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

Returns a new matrix with number of columns ncols, filled with the provided function.

Panics

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

source

pub fn zeros(ncols: usize) -> Selfwhere E: ComplexField,

Returns a new matrix with number of columns ncols, filled with zeros.

Panics

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

source

pub fn nrows(&self) -> usize

source

pub fn ncols(&self) -> usize

source

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

Set the dimensions of the matrix.

Safety

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

  • 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_ptr_mut(&mut self) -> GroupFor<E, *mut E::Unit>

Returns a mutable pointer to the data of the matrix.

source

pub fn col_capacity(&self) -> usize

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

source

pub fn col_stride(&self) -> isize

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

source

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

Reserves the minimum capacity for 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_ncols: usize, f: impl FnMut(usize) -> E)

Resizes the vector in-place so that the new number of columns is new_ncols. New elements are created with the given function f, so that elements at index i are created by calling f(i).

source

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

Returns a reference to a slice over the row.

source

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

Returns a mutable reference to a slice over the row.

source

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

Returns a view over the vector.

source

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

Returns a mutable view over the vector.

source

pub unsafe fn get_unchecked<ColRange>( &self, col: ColRange ) -> <RowRef<'_, E> as RowIndex<ColRange>>::Targetwhere for<'a> RowRef<'a, E>: RowIndex<ColRange>,

Returns references to the element at the given index, or submatrices if 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:

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

pub fn get<ColRange>( &self, col: ColRange ) -> <RowRef<'_, E> as RowIndex<ColRange>>::Targetwhere for<'a> RowRef<'a, E>: RowIndex<ColRange>,

Returns references to the element at the given index, or submatrices if 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:

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

pub unsafe fn get_mut_unchecked<ColRange>( &mut self, col: ColRange ) -> <RowMut<'_, E> as RowIndex<ColRange>>::Targetwhere for<'a> RowMut<'a, E>: RowIndex<ColRange>,

Returns mutable references to the element at the given index, or submatrices if 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:

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

pub fn get_mut<ColRange>( &mut self, col: ColRange ) -> <RowMut<'_, E> as RowIndex<ColRange>>::Targetwhere for<'a> RowMut<'a, E>: RowIndex<ColRange>,

Returns mutable references to the element at the given index, or submatrices if 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:

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

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

Reads the value of the element at the given index.

Safety

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

  • col < self.ncols().
source

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

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

Panics

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

  • col < self.ncols().
source

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

Writes the value to the element at the given index.

Safety

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

  • col < self.ncols().
source

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

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

Panics

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

  • col < self.ncols().
source

pub fn copy_from(&mut self, other: impl AsRowRef<E>)

Copies the values from other into self.

source

pub fn fill_zero(&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) -> ColRef<'_, E>

Returns a view over the transpose of self.

source

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

Returns a view over the conjugate of self.

source

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

Returns a view over the conjugate transpose of self.

source

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

Returns an owning Row of the data

source

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

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

source

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

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

source

pub fn norm_max(&self) -> E::Realwhere E: ComplexField,

Returns the maximum norm of self.

source

pub fn norm_l2(&self) -> E::Realwhere E: ComplexField,

Returns the L2 norm of self.

source§

impl<E: Entity> Matrix<DenseOwn<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) -> Selfwhere 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) -> Selfwhere 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 fn nrows(&self) -> usize

source

pub fn ncols(&self) -> usize

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_ptr_mut(&mut self) -> GroupFor<E, *mut E::Unit>

Returns a mutable pointer to the data 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_as_slice(&self, col: usize) -> GroupFor<E, &[E::Unit]>

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

source

pub fn col_as_slice_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 col_ref(&self, col: usize) -> GroupFor<E, &[E::Unit]>

👎Deprecated: replaced by Mat::col_as_slice

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]>

👎Deprecated: replaced by Mat::col_as_slice_mut

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>>::Targetwhere 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>>::Targetwhere 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>>::Targetwhere 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>>::Targetwhere 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 copy_from(&mut self, other: impl AsMatRef<E>)

Copies the values from other into self.

source

pub fn fill_zero(&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 diagonal(&self) -> Matrix<DiagRef<'_, E>>

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) -> boolwhere E: ComplexField,

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

source

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

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

source

pub fn norm_max(&self) -> E::Realwhere E: ComplexField,

Returns the maximum norm of self.

source

pub fn norm_l2(&self) -> E::Realwhere E: ComplexField,

Returns the L2 norm of self.

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<Lhs: GenericMatrix, Rhs: GenericMatrix> Add<&Matrix<Rhs>> for &Matrix<Lhs>where Lhs::Elem: Conjugate, Rhs::Elem: Conjugate<Canonical = <Lhs::Elem as Conjugate>::Canonical>, <Lhs::Elem as Conjugate>::Canonical: ComplexField, Lhs::Kind: MatAdd<Rhs::Kind>,

§

type Output = <<<Lhs as GenericMatrix>::Kind as MatAdd<<Rhs as GenericMatrix>::Kind>>::Output as MatrixKind>::Own<<<Lhs as GenericMatrix>::Elem as Conjugate>::Canonical>

The resulting type after applying the + operator.
source§

fn add(self, rhs: &Matrix<Rhs>) -> Self::Output

Performs the + operation. Read more
source§

impl<Lhs: GenericMatrix, Rhs: GenericMatrix> Add<&Matrix<Rhs>> for Matrix<Lhs>where Lhs::Elem: Conjugate, Rhs::Elem: Conjugate<Canonical = <Lhs::Elem as Conjugate>::Canonical>, <Lhs::Elem as Conjugate>::Canonical: ComplexField, Lhs::Kind: MatAdd<Rhs::Kind>,

§

type Output = <<<Lhs as GenericMatrix>::Kind as MatAdd<<Rhs as GenericMatrix>::Kind>>::Output as MatrixKind>::Own<<<Lhs as GenericMatrix>::Elem as Conjugate>::Canonical>

The resulting type after applying the + operator.
source§

fn add(self, rhs: &Matrix<Rhs>) -> Self::Output

Performs the + operation. Read more
source§

impl<Lhs: GenericMatrix, Rhs: GenericMatrix> Add<Matrix<Rhs>> for &Matrix<Lhs>where Lhs::Elem: Conjugate, Rhs::Elem: Conjugate<Canonical = <Lhs::Elem as Conjugate>::Canonical>, <Lhs::Elem as Conjugate>::Canonical: ComplexField, Lhs::Kind: MatAdd<Rhs::Kind>,

§

type Output = <<<Lhs as GenericMatrix>::Kind as MatAdd<<Rhs as GenericMatrix>::Kind>>::Output as MatrixKind>::Own<<<Lhs as GenericMatrix>::Elem as Conjugate>::Canonical>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Matrix<Rhs>) -> Self::Output

Performs the + operation. Read more
source§

impl<Lhs: GenericMatrix, Rhs: GenericMatrix> Add<Matrix<Rhs>> for Matrix<Lhs>where Lhs::Elem: Conjugate, Rhs::Elem: Conjugate<Canonical = <Lhs::Elem as Conjugate>::Canonical>, <Lhs::Elem as Conjugate>::Canonical: ComplexField, Lhs::Kind: MatAdd<Rhs::Kind>,

§

type Output = <<<Lhs as GenericMatrix>::Kind as MatAdd<<Rhs as GenericMatrix>::Kind>>::Output as MatrixKind>::Own<<<Lhs as GenericMatrix>::Elem as Conjugate>::Canonical>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Matrix<Rhs>) -> Self::Output

Performs the + operation. Read more
source§

impl<Lhs: GenericMatrixMut, Rhs: GenericMatrix> AddAssign<&Matrix<Rhs>> for Matrix<Lhs>where Lhs::Elem: ComplexField, Rhs::Elem: Conjugate<Canonical = Lhs::Elem>, Lhs::Kind: MatAddAssign<Rhs::Kind>,

source§

fn add_assign(&mut self, rhs: &Matrix<Rhs>)

Performs the += operation. Read more
source§

impl<Lhs: GenericMatrixMut, Rhs: GenericMatrix> AddAssign<Matrix<Rhs>> for Matrix<Lhs>where Lhs::Elem: ComplexField, Rhs::Elem: Conjugate<Canonical = Lhs::Elem>, Lhs::Kind: MatAddAssign<Rhs::Kind>,

source§

fn add_assign(&mut self, rhs: Matrix<Rhs>)

Performs the += operation. Read more
source§

impl<M: Clone> Clone for Matrix<M>

source§

fn clone(&self) -> Matrix<M>

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<'a, FromE: Entity, ToE: Entity> Coerce<Matrix<DenseMut<'a, ToE>>> for MatMut<'a, FromE>

source§

fn coerce(self) -> MatMut<'a, ToE>

source§

impl<'a, FromE: Entity, ToE: Entity> Coerce<Matrix<DenseRef<'a, ToE>>> for MatRef<'a, FromE>

source§

fn coerce(self) -> MatRef<'a, ToE>

source§

impl<'a, E: Entity> IntoConst for Matrix<DiagMut<'a, E>>

§

type Target = Matrix<DiagRef<'a, E>>

source§

fn into_const(self) -> Self::Target

source§

impl<'a, E: Entity> IntoConst for Matrix<DiagRef<'a, E>>

§

type Target = Matrix<DiagRef<'a, E>>

source§

fn into_const(self) -> Self::Target

source§

impl<Lhs: GenericMatrix, Rhs: GenericMatrix> Mul<&Matrix<Rhs>> for &Matrix<Lhs>where Lhs::Elem: Conjugate, Rhs::Elem: Conjugate<Canonical = <Lhs::Elem as Conjugate>::Canonical>, <Lhs::Elem as Conjugate>::Canonical: ComplexField, Lhs::Kind: MatMul<Rhs::Kind>,

§

type Output = <<<Lhs as GenericMatrix>::Kind as MatMul<<Rhs as GenericMatrix>::Kind>>::Output as MatrixKind>::Own<<<Lhs as GenericMatrix>::Elem as Conjugate>::Canonical>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: &Matrix<Rhs>) -> Self::Output

Performs the * operation. Read more
source§

impl<Lhs: GenericMatrix, Rhs: GenericMatrix> Mul<&Matrix<Rhs>> for Matrix<Lhs>where Lhs::Elem: Conjugate, Rhs::Elem: Conjugate<Canonical = <Lhs::Elem as Conjugate>::Canonical>, <Lhs::Elem as Conjugate>::Canonical: ComplexField, Lhs::Kind: MatMul<Rhs::Kind>,

§

type Output = <<<Lhs as GenericMatrix>::Kind as MatMul<<Rhs as GenericMatrix>::Kind>>::Output as MatrixKind>::Own<<<Lhs as GenericMatrix>::Elem as Conjugate>::Canonical>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: &Matrix<Rhs>) -> Self::Output

Performs the * operation. Read more
source§

impl<Lhs: GenericMatrix, Rhs: GenericMatrix> Mul<Matrix<Rhs>> for &Matrix<Lhs>where Lhs::Elem: Conjugate, Rhs::Elem: Conjugate<Canonical = <Lhs::Elem as Conjugate>::Canonical>, <Lhs::Elem as Conjugate>::Canonical: ComplexField, Lhs::Kind: MatMul<Rhs::Kind>,

§

type Output = <<<Lhs as GenericMatrix>::Kind as MatMul<<Rhs as GenericMatrix>::Kind>>::Output as MatrixKind>::Own<<<Lhs as GenericMatrix>::Elem as Conjugate>::Canonical>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Matrix<Rhs>) -> Self::Output

Performs the * operation. Read more
source§

impl<Lhs: GenericMatrix, Rhs: GenericMatrix> Mul<Matrix<Rhs>> for Matrix<Lhs>where Lhs::Elem: Conjugate, Rhs::Elem: Conjugate<Canonical = <Lhs::Elem as Conjugate>::Canonical>, <Lhs::Elem as Conjugate>::Canonical: ComplexField, Lhs::Kind: MatMul<Rhs::Kind>,

§

type Output = <<<Lhs as GenericMatrix>::Kind as MatMul<<Rhs as GenericMatrix>::Kind>>::Output as MatrixKind>::Own<<<Lhs as GenericMatrix>::Elem as Conjugate>::Canonical>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Matrix<Rhs>) -> Self::Output

Performs the * operation. Read more
source§

impl<Lhs: GenericMatrixMut, Rhs: GenericMatrix> MulAssign<&Matrix<Rhs>> for Matrix<Lhs>where Lhs::Elem: ComplexField, Rhs::Elem: Conjugate<Canonical = Lhs::Elem>, Lhs::Kind: MatMulAssign<Rhs::Kind>,

source§

fn mul_assign(&mut self, rhs: &Matrix<Rhs>)

Performs the *= operation. Read more
source§

impl<Lhs: GenericMatrixMut, Rhs: GenericMatrix> MulAssign<Matrix<Rhs>> for Matrix<Lhs>where Lhs::Elem: ComplexField, Rhs::Elem: Conjugate<Canonical = Lhs::Elem>, Lhs::Kind: MatMulAssign<Rhs::Kind>,

source§

fn mul_assign(&mut self, rhs: Matrix<Rhs>)

Performs the *= operation. Read more
source§

impl<Mat: GenericMatrix> Neg for &Matrix<Mat>where Mat::Elem: Conjugate, <Mat::Elem as Conjugate>::Canonical: ComplexField, Mat::Kind: MatNeg,

§

type Output = <<<Mat as GenericMatrix>::Kind as MatNeg>::Output as MatrixKind>::Own<<<Mat as GenericMatrix>::Elem as Conjugate>::Canonical>

The resulting type after applying the - operator.
source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
source§

impl<Mat: GenericMatrix> Neg for Matrix<Mat>where Mat::Elem: Conjugate, <Mat::Elem as Conjugate>::Canonical: ComplexField, Mat::Kind: MatNeg,

§

type Output = <<<Mat as GenericMatrix>::Kind as MatNeg>::Output as MatrixKind>::Own<<<Mat as GenericMatrix>::Elem as Conjugate>::Canonical>

The resulting type after applying the - operator.
source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
source§

impl<Lhs: GenericMatrix, Rhs: GenericMatrix> PartialEq<Matrix<Rhs>> for Matrix<Lhs>where Lhs::Elem: Conjugate, Rhs::Elem: Conjugate<Canonical = <Lhs::Elem as Conjugate>::Canonical>, <Lhs::Elem as Conjugate>::Canonical: ComplexField, Lhs::Kind: MatEq<Rhs::Kind>,

source§

fn eq(&self, rhs: &Matrix<Rhs>) -> 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<'short, 'a, E: Entity> Reborrow<'short> for Matrix<DiagMut<'a, E>>

§

type Target = Matrix<DiagRef<'short, E>>

source§

fn rb(&'short self) -> Self::Target

source§

impl<'short, 'a, E: Entity> Reborrow<'short> for Matrix<DiagRef<'a, E>>

§

type Target = Matrix<DiagRef<'short, E>>

source§

fn rb(&'short self) -> Self::Target

source§

impl<'short, 'a, E: Entity> ReborrowMut<'short> for Matrix<DiagMut<'a, E>>

§

type Target = Matrix<DiagMut<'short, E>>

source§

fn rb_mut(&'short mut self) -> Self::Target

source§

impl<'short, 'a, E: Entity> ReborrowMut<'short> for Matrix<DiagRef<'a, E>>

§

type Target = Matrix<DiagRef<'short, E>>

source§

fn rb_mut(&'short mut self) -> Self::Target

source§

impl<Lhs: GenericMatrix, Rhs: GenericMatrix> Sub<&Matrix<Rhs>> for &Matrix<Lhs>where Lhs::Elem: Conjugate, Rhs::Elem: Conjugate<Canonical = <Lhs::Elem as Conjugate>::Canonical>, <Lhs::Elem as Conjugate>::Canonical: ComplexField, Lhs::Kind: MatSub<Rhs::Kind>,

§

type Output = <<<Lhs as GenericMatrix>::Kind as MatSub<<Rhs as GenericMatrix>::Kind>>::Output as MatrixKind>::Own<<<Lhs as GenericMatrix>::Elem as Conjugate>::Canonical>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: &Matrix<Rhs>) -> Self::Output

Performs the - operation. Read more
source§

impl<Lhs: GenericMatrix, Rhs: GenericMatrix> Sub<&Matrix<Rhs>> for Matrix<Lhs>where Lhs::Elem: Conjugate, Rhs::Elem: Conjugate<Canonical = <Lhs::Elem as Conjugate>::Canonical>, <Lhs::Elem as Conjugate>::Canonical: ComplexField, Lhs::Kind: MatSub<Rhs::Kind>,

§

type Output = <<<Lhs as GenericMatrix>::Kind as MatSub<<Rhs as GenericMatrix>::Kind>>::Output as MatrixKind>::Own<<<Lhs as GenericMatrix>::Elem as Conjugate>::Canonical>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: &Matrix<Rhs>) -> Self::Output

Performs the - operation. Read more
source§

impl<Lhs: GenericMatrix, Rhs: GenericMatrix> Sub<Matrix<Rhs>> for &Matrix<Lhs>where Lhs::Elem: Conjugate, Rhs::Elem: Conjugate<Canonical = <Lhs::Elem as Conjugate>::Canonical>, <Lhs::Elem as Conjugate>::Canonical: ComplexField, Lhs::Kind: MatSub<Rhs::Kind>,

§

type Output = <<<Lhs as GenericMatrix>::Kind as MatSub<<Rhs as GenericMatrix>::Kind>>::Output as MatrixKind>::Own<<<Lhs as GenericMatrix>::Elem as Conjugate>::Canonical>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Matrix<Rhs>) -> Self::Output

Performs the - operation. Read more
source§

impl<Lhs: GenericMatrix, Rhs: GenericMatrix> Sub<Matrix<Rhs>> for Matrix<Lhs>where Lhs::Elem: Conjugate, Rhs::Elem: Conjugate<Canonical = <Lhs::Elem as Conjugate>::Canonical>, <Lhs::Elem as Conjugate>::Canonical: ComplexField, Lhs::Kind: MatSub<Rhs::Kind>,

§

type Output = <<<Lhs as GenericMatrix>::Kind as MatSub<<Rhs as GenericMatrix>::Kind>>::Output as MatrixKind>::Own<<<Lhs as GenericMatrix>::Elem as Conjugate>::Canonical>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Matrix<Rhs>) -> Self::Output

Performs the - operation. Read more
source§

impl<Lhs: GenericMatrixMut, Rhs: GenericMatrix> SubAssign<&Matrix<Rhs>> for Matrix<Lhs>where Lhs::Elem: ComplexField, Rhs::Elem: Conjugate<Canonical = Lhs::Elem>, Lhs::Kind: MatSubAssign<Rhs::Kind>,

source§

fn sub_assign(&mut self, rhs: &Matrix<Rhs>)

Performs the -= operation. Read more
source§

impl<Lhs: GenericMatrixMut, Rhs: GenericMatrix> SubAssign<Matrix<Rhs>> for Matrix<Lhs>where Lhs::Elem: ComplexField, Rhs::Elem: Conjugate<Canonical = Lhs::Elem>, Lhs::Kind: MatSubAssign<Rhs::Kind>,

source§

fn sub_assign(&mut self, rhs: Matrix<Rhs>)

Performs the -= operation. Read more
source§

impl<M: Copy> Copy for Matrix<M>

Auto Trait Implementations§

§

impl<M> RefUnwindSafe for Matrix<M>where M: RefUnwindSafe,

§

impl<M> Send for Matrix<M>where M: Send,

§

impl<M> Sync for Matrix<M>where M: Sync,

§

impl<M> Unpin for Matrix<M>where M: Unpin,

§

impl<M> UnwindSafe for Matrix<M>where M: UnwindSafe,

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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 Twhere 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 Twhere 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 Twhere 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 Twhere 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.
§

impl<T> Boilerplate for Twhere T: Copy + Send + Sync + Debug + PartialEq + 'static,

source§

impl<T> UniversalReborrow for Twhere T: for<'a> Reborrow<'a>,

source§

impl<T> UniversalReborrowMut for Twhere T: for<'a> ReborrowMut<'a>,