#[repr(C)]pub struct RowRef<'a, E>where
E: Entity,{ /* private fields */ }
Expand description
Immutable view over a row vector, similar to an immutable reference to a strided slice.
§Note
Unlike a slice, the data pointed to by RowRef<'_, 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 RowRef::read
, or indirectly through any of the numerical library routines, unless
it is explicitly permitted.
Implementations§
Source§impl<'a, E> RowRef<'a, E>where
E: Entity,
impl<'a, E> RowRef<'a, E>where
E: Entity,
Sourcepub fn as_ptr(
self,
) -> <<E as Entity>::Group as ForType>::FaerOf<*const <E as Entity>::Unit>
pub fn as_ptr( self, ) -> <<E as Entity>::Group as ForType>::FaerOf<*const <E as Entity>::Unit>
Returns pointers to the matrix data.
Sourcepub fn col_stride(&self) -> isize
pub fn col_stride(&self) -> isize
Returns the column stride of the matrix, specified in number of elements, not in bytes.
Sourcepub fn ptr_at(
self,
col: usize,
) -> <<E as Entity>::Group as ForType>::FaerOf<*const <E as Entity>::Unit>
pub fn ptr_at( self, col: usize, ) -> <<E as Entity>::Group as ForType>::FaerOf<*const <E as Entity>::Unit>
Returns raw pointers to the element at the given index.
Sourcepub unsafe fn ptr_inbounds_at(
self,
col: usize,
) -> <<E as Entity>::Group as ForType>::FaerOf<*const <E as Entity>::Unit>
pub unsafe fn ptr_inbounds_at( self, col: usize, ) -> <<E as Entity>::Group as ForType>::FaerOf<*const <E as Entity>::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()
.
Sourcepub unsafe fn split_at_unchecked(
self,
col: usize,
) -> (RowRef<'a, E>, RowRef<'a, E>)
pub unsafe fn split_at_unchecked( self, col: usize, ) -> (RowRef<'a, E>, RowRef<'a, E>)
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()
.
Sourcepub fn split_at(self, col: usize) -> (RowRef<'a, E>, RowRef<'a, E>)
pub fn split_at(self, col: usize) -> (RowRef<'a, E>, RowRef<'a, E>)
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()
.
Sourcepub unsafe fn get_unchecked<ColRange>(
self,
col: ColRange,
) -> <RowRef<'a, E> as RowIndex<ColRange>>::Target
pub unsafe fn get_unchecked<ColRange>( self, col: ColRange, ) -> <RowRef<'a, E> as RowIndex<ColRange>>::Target
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())
.
Sourcepub fn get<ColRange>(
self,
col: ColRange,
) -> <RowRef<'a, E> as RowIndex<ColRange>>::Target
pub fn get<ColRange>( self, col: ColRange, ) -> <RowRef<'a, E> as RowIndex<ColRange>>::Target
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())
.
Sourcepub unsafe fn read_unchecked(&self, col: usize) -> E
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()
.
Sourcepub fn read(&self, col: usize) -> E
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()
.
Sourcepub fn conjugate(self) -> RowRef<'a, <E as Conjugate>::Conj>where
E: Conjugate,
pub fn conjugate(self) -> RowRef<'a, <E as Conjugate>::Conj>where
E: Conjugate,
Returns a view over the conjugate of self
.
Sourcepub fn adjoint(self) -> ColRef<'a, <E as Conjugate>::Conj>where
E: Conjugate,
pub fn adjoint(self) -> ColRef<'a, <E as Conjugate>::Conj>where
E: Conjugate,
Returns a view over the conjugate transpose of self
.
Sourcepub fn canonicalize(self) -> (RowRef<'a, <E as Conjugate>::Canonical>, Conj)where
E: Conjugate,
pub fn canonicalize(self) -> (RowRef<'a, <E as Conjugate>::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.
Sourcepub fn reverse_cols(self) -> RowRef<'a, E>
pub fn reverse_cols(self) -> RowRef<'a, E>
Returns a view over the self
, with the columns in reversed order.
Sourcepub unsafe fn subcols_unchecked(
self,
col_start: usize,
ncols: usize,
) -> RowRef<'a, E>
pub unsafe fn subcols_unchecked( self, col_start: usize, ncols: usize, ) -> RowRef<'a, E>
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
.
Sourcepub fn subcols(self, col_start: usize, ncols: usize) -> RowRef<'a, E>
pub fn subcols(self, col_start: usize, ncols: usize) -> RowRef<'a, E>
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
.
Sourcepub fn to_owned(&self) -> Row<<E as Conjugate>::Canonical>where
E: Conjugate,
pub fn to_owned(&self) -> Row<<E as Conjugate>::Canonical>where
E: Conjugate,
Returns an owning Row
of the data.
Sourcepub fn has_nan(&self) -> boolwhere
E: ComplexField,
pub fn has_nan(&self) -> boolwhere
E: ComplexField,
Returns true
if any of the elements is NaN, otherwise returns false
.
Sourcepub fn is_all_finite(&self) -> boolwhere
E: ComplexField,
pub fn is_all_finite(&self) -> boolwhere
E: ComplexField,
Returns true
if all of the elements are finite, otherwise returns false
.
Sourcepub fn norm_max(&self) -> <E as ComplexField>::Realwhere
E: ComplexField,
pub fn norm_max(&self) -> <E as ComplexField>::Realwhere
E: ComplexField,
Returns the maximum norm of self
.
Sourcepub fn norm_l1(&self) -> <E as ComplexField>::Realwhere
E: ComplexField,
pub fn norm_l1(&self) -> <E as ComplexField>::Realwhere
E: ComplexField,
Returns the L1 norm of self
.
Sourcepub fn norm_l2(&self) -> <E as ComplexField>::Realwhere
E: ComplexField,
pub fn norm_l2(&self) -> <E as ComplexField>::Realwhere
E: ComplexField,
Returns the L2 norm of self
.
Sourcepub fn squared_norm_l2(&self) -> <E as ComplexField>::Realwhere
E: ComplexField,
pub fn squared_norm_l2(&self) -> <E as ComplexField>::Realwhere
E: ComplexField,
Returns the squared L2 norm of self
.
Sourcepub fn sum(&self) -> Ewhere
E: ComplexField,
pub fn sum(&self) -> Ewhere
E: ComplexField,
Returns the sum of self
.
Sourcepub fn kron(&self, rhs: impl As2D<E>) -> Mat<E>where
E: ComplexField,
pub fn kron(&self, rhs: impl As2D<E>) -> Mat<E>where
E: ComplexField,
Kronecker product of self
and rhs
.
This is an allocating operation; see faer::linalg::kron
for the
allocation-free version or more info in general.
Sourcepub fn try_as_slice(
self,
) -> Option<<<E as Entity>::Group as ForType>::FaerOf<&'a [<E as Entity>::Unit]>>
pub fn try_as_slice( self, ) -> Option<<<E as Entity>::Group as ForType>::FaerOf<&'a [<E as Entity>::Unit]>>
Returns the row as a contiguous slice if its column stride is equal to 1
.
§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.
Sourcepub fn split_first(
self,
) -> Option<(<<E as Entity>::Group as ForType>::FaerOf<&'a <E as Entity>::Unit>, RowRef<'a, E>)>
pub fn split_first( self, ) -> Option<(<<E as Entity>::Group as ForType>::FaerOf<&'a <E as Entity>::Unit>, RowRef<'a, E>)>
Returns a reference to the first element and a view over the remaining ones if the row is
non-empty, otherwise None
.
Sourcepub fn split_last(
self,
) -> Option<(<<E as Entity>::Group as ForType>::FaerOf<&'a <E as Entity>::Unit>, RowRef<'a, E>)>
pub fn split_last( self, ) -> Option<(<<E as Entity>::Group as ForType>::FaerOf<&'a <E as Entity>::Unit>, RowRef<'a, E>)>
Returns a reference to the last element and a view over the remaining ones if the row is
non-empty, otherwise None
.
Sourcepub fn chunks(self, chunk_size: usize) -> RowElemChunks<'a, E>
pub fn chunks(self, chunk_size: usize) -> RowElemChunks<'a, E>
Returns an iterator that provides successive chunks of the elements of this row, with
each having at most chunk_size
elements.
Sourcepub fn partition(self, count: usize) -> RowElemPartition<'a, E>
pub fn partition(self, count: usize) -> RowElemPartition<'a, E>
Returns an iterator that provides exactly count
successive chunks of the elements of this
row.
Sourcepub fn par_chunks(self, chunk_size: usize) -> impl IndexedParallelIterator + 'a
pub fn par_chunks(self, chunk_size: usize) -> impl IndexedParallelIterator + 'a
Returns an iterator that provides successive chunks of the elements of this row, with
each having at most chunk_size
elements.
Only available with the rayon
feature.
Sourcepub fn par_partition(self, count: usize) -> impl IndexedParallelIterator + 'a
pub fn par_partition(self, count: usize) -> impl IndexedParallelIterator + 'a
Returns an iterator that provides exactly count
successive chunks of the elements of this
row.
Only available with the rayon
feature.
Trait Implementations§
Source§impl<LhsE, RhsE> AddAssign<&RowRef<'_, RhsE>> for Row<LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,
impl<LhsE, RhsE> AddAssign<&RowRef<'_, RhsE>> for Row<LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,
Source§fn add_assign(&mut self, other: &RowRef<'_, RhsE>)
fn add_assign(&mut self, other: &RowRef<'_, RhsE>)
+=
operation. Read moreSource§impl<LhsE, RhsE> AddAssign<&RowRef<'_, RhsE>> for RowMut<'_, LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,
impl<LhsE, RhsE> AddAssign<&RowRef<'_, RhsE>> for RowMut<'_, LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,
Source§fn add_assign(&mut self, other: &RowRef<'_, RhsE>)
fn add_assign(&mut self, other: &RowRef<'_, RhsE>)
+=
operation. Read moreSource§impl<LhsE, RhsE> AddAssign<RowRef<'_, RhsE>> for Row<LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,
impl<LhsE, RhsE> AddAssign<RowRef<'_, RhsE>> for Row<LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,
Source§fn add_assign(&mut self, other: RowRef<'_, RhsE>)
fn add_assign(&mut self, other: RowRef<'_, RhsE>)
+=
operation. Read moreSource§impl<LhsE, RhsE> AddAssign<RowRef<'_, RhsE>> for RowMut<'_, LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,
impl<LhsE, RhsE> AddAssign<RowRef<'_, RhsE>> for RowMut<'_, LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,
Source§fn add_assign(&mut self, rhs: RowRef<'_, RhsE>)
fn add_assign(&mut self, rhs: RowRef<'_, RhsE>)
+=
operation. Read moreSource§impl<E> AsRowRef<E> for RowRef<'_, E>where
E: Entity,
impl<E> AsRowRef<E> for RowRef<'_, E>where
E: Entity,
Source§fn as_row_ref(&self) -> RowRef<'_, E>
fn as_row_ref(&self) -> RowRef<'_, E>
Source§impl<E, RhsE> Div<f32> for &RowRef<'_, RhsE>where
E: ComplexField,
RhsE: Conjugate<Canonical = E>,
impl<E, RhsE> Div<f32> for &RowRef<'_, RhsE>where
E: ComplexField,
RhsE: Conjugate<Canonical = E>,
Source§impl<E, RhsE> Div<f32> for RowRef<'_, RhsE>where
E: ComplexField,
RhsE: Conjugate<Canonical = E>,
impl<E, RhsE> Div<f32> for RowRef<'_, RhsE>where
E: ComplexField,
RhsE: Conjugate<Canonical = E>,
Source§impl<E, RhsE> Div<f64> for &RowRef<'_, RhsE>where
E: ComplexField,
RhsE: Conjugate<Canonical = E>,
impl<E, RhsE> Div<f64> for &RowRef<'_, RhsE>where
E: ComplexField,
RhsE: Conjugate<Canonical = E>,
Source§impl<E, RhsE> Div<f64> for RowRef<'_, RhsE>where
E: ComplexField,
RhsE: Conjugate<Canonical = E>,
impl<E, RhsE> Div<f64> for RowRef<'_, RhsE>where
E: ComplexField,
RhsE: Conjugate<Canonical = E>,
Source§impl<'a, E> MatIndex<'a> for RowRef<'_, E>where
E: Entity,
impl<'a, E> MatIndex<'a> for RowRef<'_, E>where
E: Entity,
Source§unsafe fn get_unchecked(
&'a mut self,
_: <RowRef<'_, E> as MaybeContiguous>::Index,
) -> <RowRef<'_, E> as MatIndex<'a>>::Item
unsafe fn get_unchecked( &'a mut self, _: <RowRef<'_, E> as MaybeContiguous>::Index, ) -> <RowRef<'_, E> as MatIndex<'a>>::Item
Source§unsafe fn get_from_slice_unchecked(
slice: &'a mut <RowRef<'_, E> as MaybeContiguous>::Slice,
idx: usize,
) -> <RowRef<'_, E> as MatIndex<'a>>::Item
unsafe fn get_from_slice_unchecked( slice: &'a mut <RowRef<'_, E> as MaybeContiguous>::Slice, idx: usize, ) -> <RowRef<'_, E> as MatIndex<'a>>::Item
Source§fn is_contiguous(&self) -> bool
fn is_contiguous(&self) -> bool
Source§fn preferred_layout(
&self,
) -> <RowRef<'_, E> as MaybeContiguous>::LayoutTransform
fn preferred_layout( &self, ) -> <RowRef<'_, E> as MaybeContiguous>::LayoutTransform
Source§fn with_layout(
self,
layout: <RowRef<'_, E> as MaybeContiguous>::LayoutTransform,
) -> RowRef<'_, E>
fn with_layout( self, layout: <RowRef<'_, E> as MaybeContiguous>::LayoutTransform, ) -> RowRef<'_, E>
Source§impl<E> MaybeContiguous for RowRef<'_, E>where
E: Entity,
impl<E> MaybeContiguous for RowRef<'_, E>where
E: Entity,
Source§type Slice = <<E as Entity>::Group as ForType>::FaerOf<&'static [MaybeUninit<<E as Entity>::Unit>]>
type Slice = <<E as Entity>::Group as ForType>::FaerOf<&'static [MaybeUninit<<E as Entity>::Unit>]>
Source§type LayoutTransform = VecLayoutTransform
type LayoutTransform = VecLayoutTransform
Source§unsafe fn get_slice_unchecked(
&mut self,
_: <RowRef<'_, E> as MaybeContiguous>::Index,
n_elems: usize,
) -> <RowRef<'_, E> as MaybeContiguous>::Slice
unsafe fn get_slice_unchecked( &mut self, _: <RowRef<'_, E> as MaybeContiguous>::Index, n_elems: usize, ) -> <RowRef<'_, E> as MaybeContiguous>::Slice
n_elems
.Source§impl<I, E, LhsE, RhsE> Mul<&SparseColMat<I, RhsE>> for &RowRef<'_, LhsE>where
I: Index,
E: ComplexField,
LhsE: Conjugate<Canonical = E>,
RhsE: Conjugate<Canonical = E>,
<E as Conjugate>::Canonical: ComplexField,
impl<I, E, LhsE, RhsE> Mul<&SparseColMat<I, RhsE>> for &RowRef<'_, LhsE>where
I: Index,
E: ComplexField,
LhsE: Conjugate<Canonical = E>,
RhsE: Conjugate<Canonical = E>,
<E as Conjugate>::Canonical: ComplexField,
Source§impl<I, E, LhsE, RhsE> Mul<&SparseColMat<I, RhsE>> for RowRef<'_, LhsE>where
I: Index,
E: ComplexField,
LhsE: Conjugate<Canonical = E>,
RhsE: Conjugate<Canonical = E>,
<E as Conjugate>::Canonical: ComplexField,
impl<I, E, LhsE, RhsE> Mul<&SparseColMat<I, RhsE>> for RowRef<'_, LhsE>where
I: Index,
E: ComplexField,
LhsE: Conjugate<Canonical = E>,
RhsE: Conjugate<Canonical = E>,
<E as Conjugate>::Canonical: ComplexField,
Source§impl<I, E, LhsE, RhsE> Mul<&SparseColMatMut<'_, I, RhsE>> for &RowRef<'_, LhsE>where
I: Index,
E: ComplexField,
LhsE: Conjugate<Canonical = E>,
RhsE: Conjugate<Canonical = E>,
<E as Conjugate>::Canonical: ComplexField,
impl<I, E, LhsE, RhsE> Mul<&SparseColMatMut<'_, I, RhsE>> for &RowRef<'_, LhsE>where
I: Index,
E: ComplexField,
LhsE: Conjugate<Canonical = E>,
RhsE: Conjugate<Canonical = E>,
<E as Conjugate>::Canonical: ComplexField,
Source§impl<I, E, LhsE, RhsE> Mul<&SparseColMatMut<'_, I, RhsE>> for RowRef<'_, LhsE>where
I: Index,
E: ComplexField,
LhsE: Conjugate<Canonical = E>,
RhsE: Conjugate<Canonical = E>,
<E as Conjugate>::Canonical: ComplexField,
impl<I, E, LhsE, RhsE> Mul<&SparseColMatMut<'_, I, RhsE>> for RowRef<'_, LhsE>where
I: Index,
E: ComplexField,
LhsE: Conjugate<Canonical = E>,
RhsE: Conjugate<Canonical = E>,
<E as Conjugate>::Canonical: ComplexField,
Source§impl<I, E, LhsE, RhsE> Mul<&SparseColMatRef<'_, I, RhsE>> for &RowRef<'_, LhsE>where
I: Index,
E: ComplexField,
LhsE: Conjugate<Canonical = E>,
RhsE: Conjugate<Canonical = E>,
<E as Conjugate>::Canonical: ComplexField,
impl<I, E, LhsE, RhsE> Mul<&SparseColMatRef<'_, I, RhsE>> for &RowRef<'_, LhsE>where
I: Index,
E: ComplexField,
LhsE: Conjugate<Canonical = E>,
RhsE: Conjugate<Canonical = E>,
<E as Conjugate>::Canonical: ComplexField,
Source§impl<I, E, LhsE, RhsE> Mul<&SparseColMatRef<'_, I, RhsE>> for RowRef<'_, LhsE>where
I: Index,
E: ComplexField,
LhsE: Conjugate<Canonical = E>,
RhsE: Conjugate<Canonical = E>,
<E as Conjugate>::Canonical: ComplexField,
impl<I, E, LhsE, RhsE> Mul<&SparseColMatRef<'_, I, RhsE>> for RowRef<'_, LhsE>where
I: Index,
E: ComplexField,
LhsE: Conjugate<Canonical = E>,
RhsE: Conjugate<Canonical = E>,
<E as Conjugate>::Canonical: ComplexField,
Source§impl<I, E, LhsE, RhsE> Mul<&SparseRowMat<I, RhsE>> for &RowRef<'_, LhsE>where
I: Index,
E: ComplexField,
LhsE: Conjugate<Canonical = E>,
RhsE: Conjugate<Canonical = E>,
<E as Conjugate>::Canonical: ComplexField,
impl<I, E, LhsE, RhsE> Mul<&SparseRowMat<I, RhsE>> for &RowRef<'_, LhsE>where
I: Index,
E: ComplexField,
LhsE: Conjugate<Canonical = E>,
RhsE: Conjugate<Canonical = E>,
<E as Conjugate>::Canonical: ComplexField,
Source§impl<I, E, LhsE, RhsE> Mul<&SparseRowMat<I, RhsE>> for RowRef<'_, LhsE>where
I: Index,
E: ComplexField,
LhsE: Conjugate<Canonical = E>,
RhsE: Conjugate<Canonical = E>,
<E as Conjugate>::Canonical: ComplexField,
impl<I, E, LhsE, RhsE> Mul<&SparseRowMat<I, RhsE>> for RowRef<'_, LhsE>where
I: Index,
E: ComplexField,
LhsE: Conjugate<Canonical = E>,
RhsE: Conjugate<Canonical = E>,
<E as Conjugate>::Canonical: ComplexField,
Source§impl<I, E, LhsE, RhsE> Mul<&SparseRowMatMut<'_, I, RhsE>> for &RowRef<'_, LhsE>where
I: Index,
E: ComplexField,
LhsE: Conjugate<Canonical = E>,
RhsE: Conjugate<Canonical = E>,
<E as Conjugate>::Canonical: ComplexField,
impl<I, E, LhsE, RhsE> Mul<&SparseRowMatMut<'_, I, RhsE>> for &RowRef<'_, LhsE>where
I: Index,
E: ComplexField,
LhsE: Conjugate<Canonical = E>,
RhsE: Conjugate<Canonical = E>,
<E as Conjugate>::Canonical: ComplexField,
Source§impl<I, E, LhsE, RhsE> Mul<&SparseRowMatMut<'_, I, RhsE>> for RowRef<'_, LhsE>where
I: Index,
E: ComplexField,
LhsE: Conjugate<Canonical = E>,
RhsE: Conjugate<Canonical = E>,
<E as Conjugate>::Canonical: ComplexField,
impl<I, E, LhsE, RhsE> Mul<&SparseRowMatMut<'_, I, RhsE>> for RowRef<'_, LhsE>where
I: Index,
E: ComplexField,
LhsE: Conjugate<Canonical = E>,
RhsE: Conjugate<Canonical = E>,
<E as Conjugate>::Canonical: ComplexField,
Source§impl<I, E, LhsE, RhsE> Mul<&SparseRowMatRef<'_, I, RhsE>> for &RowRef<'_, LhsE>where
I: Index,
E: ComplexField,
LhsE: Conjugate<Canonical = E>,
RhsE: Conjugate<Canonical = E>,
<E as Conjugate>::Canonical: ComplexField,
impl<I, E, LhsE, RhsE> Mul<&SparseRowMatRef<'_, I, RhsE>> for &RowRef<'_, LhsE>where
I: Index,
E: ComplexField,
LhsE: Conjugate<Canonical = E>,
RhsE: Conjugate<Canonical = E>,
<E as Conjugate>::Canonical: ComplexField,
Source§impl<I, E, LhsE, RhsE> Mul<&SparseRowMatRef<'_, I, RhsE>> for RowRef<'_, LhsE>where
I: Index,
E: ComplexField,
LhsE: Conjugate<Canonical = E>,
RhsE: Conjugate<Canonical = E>,
<E as Conjugate>::Canonical: ComplexField,
impl<I, E, LhsE, RhsE> Mul<&SparseRowMatRef<'_, I, RhsE>> for RowRef<'_, LhsE>where
I: Index,
E: ComplexField,
LhsE: Conjugate<Canonical = E>,
RhsE: Conjugate<Canonical = E>,
<E as Conjugate>::Canonical: ComplexField,
Source§impl<I, E, LhsE, RhsE> Mul<SparseColMat<I, RhsE>> for &RowRef<'_, LhsE>where
I: Index,
E: ComplexField,
LhsE: Conjugate<Canonical = E>,
RhsE: Conjugate<Canonical = E>,
<E as Conjugate>::Canonical: ComplexField,
impl<I, E, LhsE, RhsE> Mul<SparseColMat<I, RhsE>> for &RowRef<'_, LhsE>where
I: Index,
E: ComplexField,
LhsE: Conjugate<Canonical = E>,
RhsE: Conjugate<Canonical = E>,
<E as Conjugate>::Canonical: ComplexField,
Source§impl<I, E, LhsE, RhsE> Mul<SparseColMat<I, RhsE>> for RowRef<'_, LhsE>where
I: Index,
E: ComplexField,
LhsE: Conjugate<Canonical = E>,
RhsE: Conjugate<Canonical = E>,
<E as Conjugate>::Canonical: ComplexField,
impl<I, E, LhsE, RhsE> Mul<SparseColMat<I, RhsE>> for RowRef<'_, LhsE>where
I: Index,
E: ComplexField,
LhsE: Conjugate<Canonical = E>,
RhsE: Conjugate<Canonical = E>,
<E as Conjugate>::Canonical: ComplexField,
Source§impl<I, E, LhsE, RhsE> Mul<SparseColMatMut<'_, I, RhsE>> for &RowRef<'_, LhsE>where
I: Index,
E: ComplexField,
LhsE: Conjugate<Canonical = E>,
RhsE: Conjugate<Canonical = E>,
<E as Conjugate>::Canonical: ComplexField,
impl<I, E, LhsE, RhsE> Mul<SparseColMatMut<'_, I, RhsE>> for &RowRef<'_, LhsE>where
I: Index,
E: ComplexField,
LhsE: Conjugate<Canonical = E>,
RhsE: Conjugate<Canonical = E>,
<E as Conjugate>::Canonical: ComplexField,
Source§impl<I, E, LhsE, RhsE> Mul<SparseColMatMut<'_, I, RhsE>> for RowRef<'_, LhsE>where
I: Index,
E: ComplexField,
LhsE: Conjugate<Canonical = E>,
RhsE: Conjugate<Canonical = E>,
<E as Conjugate>::Canonical: ComplexField,
impl<I, E, LhsE, RhsE> Mul<SparseColMatMut<'_, I, RhsE>> for RowRef<'_, LhsE>where
I: Index,
E: ComplexField,
LhsE: Conjugate<Canonical = E>,
RhsE: Conjugate<Canonical = E>,
<E as Conjugate>::Canonical: ComplexField,
Source§impl<I, E, LhsE, RhsE> Mul<SparseColMatRef<'_, I, RhsE>> for &RowRef<'_, LhsE>where
I: Index,
E: ComplexField,
LhsE: Conjugate<Canonical = E>,
RhsE: Conjugate<Canonical = E>,
<E as Conjugate>::Canonical: ComplexField,
impl<I, E, LhsE, RhsE> Mul<SparseColMatRef<'_, I, RhsE>> for &RowRef<'_, LhsE>where
I: Index,
E: ComplexField,
LhsE: Conjugate<Canonical = E>,
RhsE: Conjugate<Canonical = E>,
<E as Conjugate>::Canonical: ComplexField,
Source§impl<I, E, LhsE, RhsE> Mul<SparseColMatRef<'_, I, RhsE>> for RowRef<'_, LhsE>
impl<I, E, LhsE, RhsE> Mul<SparseColMatRef<'_, I, RhsE>> for RowRef<'_, LhsE>
Source§impl<I, E, LhsE, RhsE> Mul<SparseRowMat<I, RhsE>> for &RowRef<'_, LhsE>where
I: Index,
E: ComplexField,
LhsE: Conjugate<Canonical = E>,
RhsE: Conjugate<Canonical = E>,
<E as Conjugate>::Canonical: ComplexField,
impl<I, E, LhsE, RhsE> Mul<SparseRowMat<I, RhsE>> for &RowRef<'_, LhsE>where
I: Index,
E: ComplexField,
LhsE: Conjugate<Canonical = E>,
RhsE: Conjugate<Canonical = E>,
<E as Conjugate>::Canonical: ComplexField,
Source§impl<I, E, LhsE, RhsE> Mul<SparseRowMat<I, RhsE>> for RowRef<'_, LhsE>where
I: Index,
E: ComplexField,
LhsE: Conjugate<Canonical = E>,
RhsE: Conjugate<Canonical = E>,
<E as Conjugate>::Canonical: ComplexField,
impl<I, E, LhsE, RhsE> Mul<SparseRowMat<I, RhsE>> for RowRef<'_, LhsE>where
I: Index,
E: ComplexField,
LhsE: Conjugate<Canonical = E>,
RhsE: Conjugate<Canonical = E>,
<E as Conjugate>::Canonical: ComplexField,
Source§impl<I, E, LhsE, RhsE> Mul<SparseRowMatMut<'_, I, RhsE>> for &RowRef<'_, LhsE>where
I: Index,
E: ComplexField,
LhsE: Conjugate<Canonical = E>,
RhsE: Conjugate<Canonical = E>,
<E as Conjugate>::Canonical: ComplexField,
impl<I, E, LhsE, RhsE> Mul<SparseRowMatMut<'_, I, RhsE>> for &RowRef<'_, LhsE>where
I: Index,
E: ComplexField,
LhsE: Conjugate<Canonical = E>,
RhsE: Conjugate<Canonical = E>,
<E as Conjugate>::Canonical: ComplexField,
Source§impl<I, E, LhsE, RhsE> Mul<SparseRowMatMut<'_, I, RhsE>> for RowRef<'_, LhsE>where
I: Index,
E: ComplexField,
LhsE: Conjugate<Canonical = E>,
RhsE: Conjugate<Canonical = E>,
<E as Conjugate>::Canonical: ComplexField,
impl<I, E, LhsE, RhsE> Mul<SparseRowMatMut<'_, I, RhsE>> for RowRef<'_, LhsE>where
I: Index,
E: ComplexField,
LhsE: Conjugate<Canonical = E>,
RhsE: Conjugate<Canonical = E>,
<E as Conjugate>::Canonical: ComplexField,
Source§impl<I, E, LhsE, RhsE> Mul<SparseRowMatRef<'_, I, RhsE>> for &RowRef<'_, LhsE>where
I: Index,
E: ComplexField,
LhsE: Conjugate<Canonical = E>,
RhsE: Conjugate<Canonical = E>,
<E as Conjugate>::Canonical: ComplexField,
impl<I, E, LhsE, RhsE> Mul<SparseRowMatRef<'_, I, RhsE>> for &RowRef<'_, LhsE>where
I: Index,
E: ComplexField,
LhsE: Conjugate<Canonical = E>,
RhsE: Conjugate<Canonical = E>,
<E as Conjugate>::Canonical: ComplexField,
Source§impl<I, E, LhsE, RhsE> Mul<SparseRowMatRef<'_, I, RhsE>> for RowRef<'_, LhsE>
impl<I, E, LhsE, RhsE> Mul<SparseRowMatRef<'_, I, RhsE>> for RowRef<'_, LhsE>
Source§impl<E, RhsE> Mul<f32> for &RowRef<'_, RhsE>where
E: ComplexField,
RhsE: Conjugate<Canonical = E>,
impl<E, RhsE> Mul<f32> for &RowRef<'_, RhsE>where
E: ComplexField,
RhsE: Conjugate<Canonical = E>,
Source§impl<E, RhsE> Mul<f32> for RowRef<'_, RhsE>where
E: ComplexField,
RhsE: Conjugate<Canonical = E>,
impl<E, RhsE> Mul<f32> for RowRef<'_, RhsE>where
E: ComplexField,
RhsE: Conjugate<Canonical = E>,
Source§impl<E, RhsE> Mul<f64> for &RowRef<'_, RhsE>where
E: ComplexField,
RhsE: Conjugate<Canonical = E>,
impl<E, RhsE> Mul<f64> for &RowRef<'_, RhsE>where
E: ComplexField,
RhsE: Conjugate<Canonical = E>,
Source§impl<E, RhsE> Mul<f64> for RowRef<'_, RhsE>where
E: ComplexField,
RhsE: Conjugate<Canonical = E>,
impl<E, RhsE> Mul<f64> for RowRef<'_, RhsE>where
E: ComplexField,
RhsE: Conjugate<Canonical = E>,
Source§impl<'short, E> ReborrowMut<'short> for RowRef<'_, E>where
E: Entity,
impl<'short, E> ReborrowMut<'short> for RowRef<'_, E>where
E: Entity,
Source§impl<E> RowBatch<E> for RowRef<'_, E>where
E: Conjugate,
impl<E> RowBatch<E> for RowRef<'_, E>where
E: Conjugate,
Source§fn new_owned_zeros(
nrows: usize,
ncols: usize,
) -> <RowRef<'_, E> as RowBatch<E>>::Owned
fn new_owned_zeros( nrows: usize, ncols: usize, ) -> <RowRef<'_, E> as RowBatch<E>>::Owned
Source§impl<'a, E> RowIndex<usize> for RowRef<'a, E>where
E: Entity,
impl<'a, E> RowIndex<usize> for RowRef<'a, E>where
E: Entity,
Source§impl<LhsE, RhsE> SubAssign<&RowRef<'_, RhsE>> for Row<LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,
impl<LhsE, RhsE> SubAssign<&RowRef<'_, RhsE>> for Row<LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,
Source§fn sub_assign(&mut self, other: &RowRef<'_, RhsE>)
fn sub_assign(&mut self, other: &RowRef<'_, RhsE>)
-=
operation. Read moreSource§impl<LhsE, RhsE> SubAssign<&RowRef<'_, RhsE>> for RowMut<'_, LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,
impl<LhsE, RhsE> SubAssign<&RowRef<'_, RhsE>> for RowMut<'_, LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,
Source§fn sub_assign(&mut self, other: &RowRef<'_, RhsE>)
fn sub_assign(&mut self, other: &RowRef<'_, RhsE>)
-=
operation. Read moreSource§impl<LhsE, RhsE> SubAssign<RowRef<'_, RhsE>> for Row<LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,
impl<LhsE, RhsE> SubAssign<RowRef<'_, RhsE>> for Row<LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,
Source§fn sub_assign(&mut self, other: RowRef<'_, RhsE>)
fn sub_assign(&mut self, other: RowRef<'_, RhsE>)
-=
operation. Read moreSource§impl<LhsE, RhsE> SubAssign<RowRef<'_, RhsE>> for RowMut<'_, LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,
impl<LhsE, RhsE> SubAssign<RowRef<'_, RhsE>> for RowMut<'_, LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,
Source§fn sub_assign(&mut self, rhs: RowRef<'_, RhsE>)
fn sub_assign(&mut self, rhs: RowRef<'_, RhsE>)
-=
operation. Read moreimpl<E> Copy for RowRef<'_, E>where
E: Entity,
Auto Trait Implementations§
impl<'a, E> Freeze for RowRef<'a, E>
impl<'a, E> RefUnwindSafe for RowRef<'a, E>where
<<E as Entity>::Group as ForCopyType>::FaerOfCopy<NonNull<<E as Entity>::Unit>>: RefUnwindSafe,
E: RefUnwindSafe,
impl<'a, E> Send for RowRef<'a, E>
impl<'a, E> Sync for RowRef<'a, E>
impl<'a, E> Unpin for RowRef<'a, E>
impl<'a, E> UnwindSafe for RowRef<'a, E>where
<<E as Entity>::Group as ForCopyType>::FaerOfCopy<NonNull<<E as Entity>::Unit>>: UnwindSafe,
E: RefUnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more