Type Alias faer_core::RowMut

source ·
pub type RowMut<'a, E> = Matrix<DenseRowMut<'a, E>>;
Expand description

Mutable view over a row vector, similar to a mutable reference to a strided slice.

Note

Unlike a slice, the data pointed to by RowMut<'_, E> is allowed to be partially or fully uninitialized under certain conditions. In this case, care must be taken to not perform any operations that read the uninitialized values, or form references to them, either directly through RowMut::read, or indirectly through any of the numerical library routines, unless it is explicitly permitted.

Aliased Type§

struct RowMut<'a, E> { /* private fields */ }

Implementations§

source§

impl<'a, E: Entity> RowMut<'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>

Returns self as a mutable matrix view.

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>>::Target
where 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>>::Target
where 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) -> bool
where E: ComplexField,

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

source

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

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

source

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

Returns the maximum norm of self.

source

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

Returns the L2 norm of self.

source

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

Returns a view over the matrix.

Trait Implementations§

source§

impl<E: Entity> AsRowMut<E> for &mut RowMut<'_, E>

source§

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

source§

impl<E: Entity> AsRowMut<E> for RowMut<'_, E>

source§

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

source§

impl<E: Entity> AsRowRef<E> for &RowMut<'_, E>

source§

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

source§

impl<E: Entity> AsRowRef<E> for RowMut<'_, E>

source§

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

source§

impl<'a, E: Entity> Debug for RowMut<'a, E>

source§

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

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

impl<E: SimpleEntity> Index<usize> for RowMut<'_, E>

§

type Output = E

The returned type after indexing.
source§

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

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

impl<E: SimpleEntity> IndexMut<usize> for RowMut<'_, E>

source§

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

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

impl<'a, E: Entity> IntoConst for RowMut<'a, E>

§

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

source§

fn into_const(self) -> Self::Target

source§

impl<'a, E: Entity> MatIndex<'a> for RowMut<'_, E>

§

type Item = ReadWrite<'a, E>

source§

unsafe fn get_unchecked(&'a mut self, (_, j): Self::Index) -> Self::Item

source§

unsafe fn get_from_slice_unchecked( slice: &'a mut Self::Slice, idx: usize ) -> Self::Item

source§

fn is_contiguous(&self) -> bool

source§

fn preferred_layout(&self) -> Self::LayoutTransform

source§

fn with_layout(self, layout: Self::LayoutTransform) -> Self

source§

impl<E: Entity> MatShape for RowMut<'_, E>

§

type Rows = ()

§

type Cols = usize

source§

fn nrows(&self) -> Self::Rows

source§

fn ncols(&self) -> Self::Cols

source§

impl<E: Entity> MaybeContiguous for RowMut<'_, E>

§

type Index = ((), usize)

§

type Slice = <<E as Entity>::Group as ForType>::FaerOf<&'static mut [MaybeUninit<<E as Entity>::Unit>]>

§

type LayoutTransform = VecLayoutTransform

source§

unsafe fn get_slice_unchecked( &mut self, (_, j): Self::Index, n_elems: usize ) -> Self::Slice

source§

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

§

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

source§

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

source§

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

§

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

source§

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

source§

impl<E: Entity> RowIndex<Range<usize>> for RowMut<'_, E>

§

type Target = Matrix<DenseRowMut<'_, E>>

source§

fn get(this: Self, col: Range<usize>) -> Self

source§

unsafe fn get_unchecked(this: Self, row: ColRange) -> Self::Target

source§

impl<E: Entity> RowIndex<RangeFrom<usize>> for RowMut<'_, E>

§

type Target = Matrix<DenseRowMut<'_, E>>

source§

fn get(this: Self, col: RangeFrom<usize>) -> Self

source§

unsafe fn get_unchecked(this: Self, row: ColRange) -> Self::Target

source§

impl<E: Entity> RowIndex<RangeFull> for RowMut<'_, E>

§

type Target = Matrix<DenseRowMut<'_, E>>

source§

fn get(this: Self, col: RangeFull) -> Self

source§

unsafe fn get_unchecked(this: Self, row: ColRange) -> Self::Target

source§

impl<E: Entity> RowIndex<RangeInclusive<usize>> for RowMut<'_, E>

§

type Target = Matrix<DenseRowMut<'_, E>>

source§

fn get(this: Self, col: RangeInclusive<usize>) -> Self

source§

unsafe fn get_unchecked(this: Self, row: ColRange) -> Self::Target

source§

impl<E: Entity> RowIndex<RangeTo<usize>> for RowMut<'_, E>

§

type Target = Matrix<DenseRowMut<'_, E>>

source§

fn get(this: Self, col: RangeTo<usize>) -> Self

source§

unsafe fn get_unchecked(this: Self, row: ColRange) -> Self::Target

source§

impl<E: Entity> RowIndex<RangeToInclusive<usize>> for RowMut<'_, E>

§

type Target = Matrix<DenseRowMut<'_, E>>

source§

fn get(this: Self, col: RangeToInclusive<usize>) -> Self

source§

unsafe fn get_unchecked(this: Self, row: ColRange) -> Self::Target

source§

impl<'a, E: Entity> RowIndex<usize> for RowMut<'a, E>

§

type Target = <<E as Entity>::Group as ForType>::FaerOf<&'a mut <E as Entity>::Unit>

source§

unsafe fn get_unchecked(this: Self, col: usize) -> Self::Target

source§

fn get(this: Self, col: usize) -> Self::Target

source§

impl<E: Entity> ViewMut for &RowMut<'_, E>

§

type Target<'a> = Matrix<DenseRowRef<'a, E>> where Self: 'a

source§

fn view_mut(&mut self) -> Self::Target<'_>

source§

impl<E: Entity> ViewMut for &mut RowMut<'_, E>

§

type Target<'a> = Matrix<DenseRowMut<'a, E>> where Self: 'a

source§

fn view_mut(&mut self) -> Self::Target<'_>

source§

impl<E: Entity> ViewMut for RowMut<'_, E>

§

type Target<'a> = Matrix<DenseRowMut<'a, E>> where Self: 'a

source§

fn view_mut(&mut self) -> Self::Target<'_>