# Struct extendr_api::prelude::modules::core::ColRef

```
#[repr(C)]pub struct ColRef<'a, E>where
E: Entity,{
pub(super) inner: VecImpl<E>,
pub(super) __marker: PhantomData<&'a E>,
}
```

## Expand description

Immutable view over a column vector, similar to an immutable reference to a strided slice.

## §Note

Unlike a slice, the data pointed to by `ColRef<'_, 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 `ColRef::read`

, or indirectly through any of the numerical library routines, unless
it is explicitly permitted.

## Fields§

§`inner: VecImpl<E>`

§`__marker: PhantomData<&'a E>`

## Implementations§

§### impl<'a, E> ColRef<'a, E>where
E: Entity,

### impl<'a, E> ColRef<'a, E>where
E: Entity,

#### pub 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.

#### pub fn row_stride(&self) -> isize

#### pub fn row_stride(&self) -> isize

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

#### pub fn ptr_at(
self,
row: usize,
) -> <<E as Entity>::Group as ForType>::FaerOf<*const <E as Entity>::Unit>

#### pub fn ptr_at( self, row: usize, ) -> <<E as Entity>::Group as ForType>::FaerOf<*const <E as Entity>::Unit>

Returns raw pointers to the element at the given index.

#### pub unsafe fn ptr_inbounds_at(
self,
row: usize,
) -> <<E as Entity>::Group as ForType>::FaerOf<*const <E as Entity>::Unit>

#### pub unsafe fn ptr_inbounds_at( self, row: 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:

`row < self.nrows()`

.

#### pub unsafe fn split_at_unchecked(
self,
row: usize,
) -> (ColRef<'a, E>, ColRef<'a, E>)

#### pub unsafe fn split_at_unchecked( self, row: usize, ) -> (ColRef<'a, E>, ColRef<'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.

##### §Safety

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

`row <= self.nrows()`

.

#### pub fn split_at(self, row: usize) -> (ColRef<'a, E>, ColRef<'a, E>)

#### pub fn split_at(self, row: usize) -> (ColRef<'a, E>, ColRef<'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:

`row <= self.nrows()`

.

#### pub unsafe fn get_unchecked<RowRange>(
self,
row: RowRange,
) -> <ColRef<'a, E> as ColIndex<RowRange>>::Target

#### pub unsafe fn get_unchecked<RowRange>( self, row: RowRange, ) -> <ColRef<'a, E> as ColIndex<RowRange>>::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:

`row`

must be contained in`[0, self.nrows())`

.

#### pub fn get<RowRange>(
self,
row: RowRange,
) -> <ColRef<'a, E> as ColIndex<RowRange>>::Target

#### pub fn get<RowRange>( self, row: RowRange, ) -> <ColRef<'a, E> as ColIndex<RowRange>>::Target

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())`

.

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

#### 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()`

.

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

#### 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()`

.

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

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

Returns a view over the conjugate of `self`

.

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

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

Returns a view over the conjugate transpose of `self`

.

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

#### pub fn canonicalize(self) -> (ColRef<'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.

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

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

Returns a view over the `self`

, with the rows in reversed order.

#### pub unsafe fn subrows_unchecked(
self,
row_start: usize,
nrows: usize,
) -> ColRef<'a, E>

#### pub unsafe fn subrows_unchecked( self, row_start: usize, nrows: usize, ) -> ColRef<'a, E>

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`

.

#### pub fn subrows(self, row_start: usize, nrows: usize) -> ColRef<'a, E>

#### pub fn subrows(self, row_start: usize, nrows: usize) -> ColRef<'a, E>

Returns a view over the subvector 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`

.

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

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

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

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

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

Returns an owning `Col`

of the data.

#### pub 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`

.

#### pub 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`

.

#### pub 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`

.

#### pub 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`

.

#### pub 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`

.

#### pub 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`

.

#### pub fn sum(&self) -> Ewhere
E: ComplexField,

#### pub fn sum(&self) -> Ewhere
E: ComplexField,

Returns the sum of `self`

.

#### pub 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.

#### pub 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 column as a contiguous slice if its row 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.

#### pub fn split_first(
self,
) -> Option<(<<E as Entity>::Group as ForType>::FaerOf<&'a <E as Entity>::Unit>, ColRef<'a, E>)>

#### pub fn split_first( self, ) -> Option<(<<E as Entity>::Group as ForType>::FaerOf<&'a <E as Entity>::Unit>, ColRef<'a, E>)>

Returns a reference to the first element and a view over the remaining ones if the column is
non-empty, otherwise `None`

.

#### pub fn split_last(
self,
) -> Option<(<<E as Entity>::Group as ForType>::FaerOf<&'a <E as Entity>::Unit>, ColRef<'a, E>)>

#### pub fn split_last( self, ) -> Option<(<<E as Entity>::Group as ForType>::FaerOf<&'a <E as Entity>::Unit>, ColRef<'a, E>)>

Returns a reference to the last element and a view over the remaining ones if the column is
non-empty, otherwise `None`

.

#### pub fn iter(self) -> ElemIter<'a, E>

#### pub fn iter(self) -> ElemIter<'a, E>

Returns an iterator over the elements of the column.

#### pub fn chunks(self, chunk_size: usize) -> ColElemChunks<'a, E>

#### pub fn chunks(self, chunk_size: usize) -> ColElemChunks<'a, E>

Returns an iterator that provides successive chunks of the elements of this column, with
each having at most `chunk_size`

elements.

#### pub fn partition(self, count: usize) -> ColElemPartition<'a, E>

#### pub fn partition(self, count: usize) -> ColElemPartition<'a, E>

Returns an iterator that provides exactly `count`

successive chunks of the elements of this
column.

#### pub 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 column, with
each having at most `chunk_size`

elements.

Only available with the `rayon`

feature.

#### pub 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
column.

Only available with the `rayon`

feature.

## Trait Implementations§

§### impl<LhsE, RhsE> AddAssign<&ColRef<'_, RhsE>> for Col<LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,

### impl<LhsE, RhsE> AddAssign<&ColRef<'_, RhsE>> for Col<LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,

§#### fn add_assign(&mut self, other: &ColRef<'_, RhsE>)

#### fn add_assign(&mut self, other: &ColRef<'_, RhsE>)

`+=`

operation. Read more§### impl<LhsE, RhsE> AddAssign<&ColRef<'_, RhsE>> for ColMut<'_, LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,

### impl<LhsE, RhsE> AddAssign<&ColRef<'_, RhsE>> for ColMut<'_, LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,

§#### fn add_assign(&mut self, other: &ColRef<'_, RhsE>)

#### fn add_assign(&mut self, other: &ColRef<'_, RhsE>)

`+=`

operation. Read more§### impl<LhsE, RhsE> AddAssign<ColRef<'_, RhsE>> for Col<LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,

### impl<LhsE, RhsE> AddAssign<ColRef<'_, RhsE>> for Col<LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,

§#### fn add_assign(&mut self, other: ColRef<'_, RhsE>)

#### fn add_assign(&mut self, other: ColRef<'_, RhsE>)

`+=`

operation. Read more§### impl<LhsE, RhsE> AddAssign<ColRef<'_, RhsE>> for ColMut<'_, LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,

### impl<LhsE, RhsE> AddAssign<ColRef<'_, RhsE>> for ColMut<'_, LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,

§#### fn add_assign(&mut self, rhs: ColRef<'_, RhsE>)

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

`+=`

operation. Read more§### impl<E> AsColRef<E> for ColRef<'_, E>where
E: Entity,

### impl<E> AsColRef<E> for ColRef<'_, E>where
E: Entity,

§#### fn as_col_ref(&self) -> ColRef<'_, E>

#### fn as_col_ref(&self) -> ColRef<'_, E>

§### impl<E> ColBatch<E> for ColRef<'_, E>where
E: Conjugate,

### impl<E> ColBatch<E> for ColRef<'_, E>where
E: Conjugate,

§### impl<'a, E> ColIndex<usize> for ColRef<'a, E>where
E: Entity,

### impl<'a, E> ColIndex<usize> for ColRef<'a, E>where
E: Entity,

§### impl<E> Index<usize> for ColRef<'_, E>where
E: SimpleEntity,

### impl<E> Index<usize> for ColRef<'_, E>where
E: SimpleEntity,

§### impl<'a, E> MatIndex<'a> for ColRef<'_, E>where
E: Entity,

### impl<'a, E> MatIndex<'a> for ColRef<'_, E>where
E: Entity,

§#### unsafe fn get_unchecked(
&'a mut self,
_: <ColRef<'_, E> as MaybeContiguous>::Index,
) -> <ColRef<'_, E> as MatIndex<'a>>::Item

#### unsafe fn get_unchecked( &'a mut self, _: <ColRef<'_, E> as MaybeContiguous>::Index, ) -> <ColRef<'_, E> as MatIndex<'a>>::Item

§#### unsafe fn get_from_slice_unchecked(
slice: &'a mut <ColRef<'_, E> as MaybeContiguous>::Slice,
idx: usize,
) -> <ColRef<'_, E> as MatIndex<'a>>::Item

#### unsafe fn get_from_slice_unchecked( slice: &'a mut <ColRef<'_, E> as MaybeContiguous>::Slice, idx: usize, ) -> <ColRef<'_, E> as MatIndex<'a>>::Item

§#### fn is_contiguous(&self) -> bool

#### fn is_contiguous(&self) -> bool

§#### fn preferred_layout(
&self,
) -> <ColRef<'_, E> as MaybeContiguous>::LayoutTransform

#### fn preferred_layout( &self, ) -> <ColRef<'_, E> as MaybeContiguous>::LayoutTransform

§#### fn with_layout(
self,
layout: <ColRef<'_, E> as MaybeContiguous>::LayoutTransform,
) -> ColRef<'_, E>

#### fn with_layout( self, layout: <ColRef<'_, E> as MaybeContiguous>::LayoutTransform, ) -> ColRef<'_, E>

§### impl<E> MaybeContiguous for ColRef<'_, E>where
E: Entity,

### impl<E> MaybeContiguous for ColRef<'_, E>where
E: Entity,

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

§#### type LayoutTransform = VecLayoutTransform

#### type LayoutTransform = VecLayoutTransform

§#### unsafe fn get_slice_unchecked(
&mut self,
_: <ColRef<'_, E> as MaybeContiguous>::Index,
n_elems: usize,
) -> <ColRef<'_, E> as MaybeContiguous>::Slice

#### unsafe fn get_slice_unchecked( &mut self, _: <ColRef<'_, E> as MaybeContiguous>::Index, n_elems: usize, ) -> <ColRef<'_, E> as MaybeContiguous>::Slice

`n_elems`

.§### impl<I, E, LhsE, RhsE> Mul<&ColRef<'_, RhsE>> for &SparseColMat<I, 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<&ColRef<'_, RhsE>> for &SparseColMat<I, 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<&ColRef<'_, RhsE>> for &SparseColMatMut<'_, I, 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<&ColRef<'_, RhsE>> for &SparseColMatMut<'_, I, 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<&ColRef<'_, RhsE>> for &SparseColMatRef<'_, I, 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<&ColRef<'_, RhsE>> for &SparseColMatRef<'_, I, 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<&ColRef<'_, RhsE>> for &SparseRowMat<I, 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<&ColRef<'_, RhsE>> for &SparseRowMat<I, 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<&ColRef<'_, RhsE>> for &SparseRowMatMut<'_, I, 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<&ColRef<'_, RhsE>> for &SparseRowMatMut<'_, I, 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<&ColRef<'_, RhsE>> for &SparseRowMatRef<'_, I, 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<&ColRef<'_, RhsE>> for &SparseRowMatRef<'_, I, 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<&ColRef<'_, RhsE>> for SparseColMat<I, 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<&ColRef<'_, RhsE>> for SparseColMat<I, 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<&ColRef<'_, RhsE>> for SparseColMatMut<'_, I, 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<&ColRef<'_, RhsE>> for SparseColMatMut<'_, I, 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<&ColRef<'_, RhsE>> for SparseColMatRef<'_, I, 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<&ColRef<'_, RhsE>> for SparseColMatRef<'_, I, 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<&ColRef<'_, RhsE>> for SparseRowMat<I, 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<&ColRef<'_, RhsE>> for SparseRowMat<I, 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<&ColRef<'_, RhsE>> for SparseRowMatMut<'_, I, 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<&ColRef<'_, RhsE>> for SparseRowMatMut<'_, I, 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<&ColRef<'_, RhsE>> for SparseRowMatRef<'_, I, 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<&ColRef<'_, RhsE>> for SparseRowMatRef<'_, I, 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<ColRef<'_, RhsE>> for &SparseColMat<I, 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<ColRef<'_, RhsE>> for &SparseColMat<I, 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<ColRef<'_, RhsE>> for &SparseColMatMut<'_, I, 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<ColRef<'_, RhsE>> for &SparseColMatMut<'_, I, 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<ColRef<'_, RhsE>> for &SparseColMatRef<'_, I, 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<ColRef<'_, RhsE>> for &SparseColMatRef<'_, I, 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<ColRef<'_, RhsE>> for &SparseRowMat<I, 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<ColRef<'_, RhsE>> for &SparseRowMat<I, 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<ColRef<'_, RhsE>> for &SparseRowMatMut<'_, I, 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<ColRef<'_, RhsE>> for &SparseRowMatMut<'_, I, 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<ColRef<'_, RhsE>> for &SparseRowMatRef<'_, I, 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<ColRef<'_, RhsE>> for &SparseRowMatRef<'_, I, 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<ColRef<'_, RhsE>> for SparseColMat<I, 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<ColRef<'_, RhsE>> for SparseColMat<I, 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<ColRef<'_, RhsE>> for SparseColMatMut<'_, I, 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<ColRef<'_, RhsE>> for SparseColMatMut<'_, I, 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<ColRef<'_, RhsE>> for SparseColMatRef<'_, I, LhsE>

### impl<I, E, LhsE, RhsE> Mul<ColRef<'_, RhsE>> for SparseColMatRef<'_, I, LhsE>

§### impl<I, E, LhsE, RhsE> Mul<ColRef<'_, RhsE>> for SparseRowMat<I, 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<ColRef<'_, RhsE>> for SparseRowMat<I, 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<ColRef<'_, RhsE>> for SparseRowMatMut<'_, I, 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<ColRef<'_, RhsE>> for SparseRowMatMut<'_, I, 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<ColRef<'_, RhsE>> for SparseRowMatRef<'_, I, LhsE>

### impl<I, E, LhsE, RhsE> Mul<ColRef<'_, RhsE>> for SparseRowMatRef<'_, I, LhsE>

§### impl<'short, E> ReborrowMut<'short> for ColRef<'_, E>where
E: Entity,

### impl<'short, E> ReborrowMut<'short> for ColRef<'_, E>where
E: Entity,

§### impl<LhsE, RhsE> SubAssign<&ColRef<'_, RhsE>> for Col<LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,

### impl<LhsE, RhsE> SubAssign<&ColRef<'_, RhsE>> for Col<LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,

§#### fn sub_assign(&mut self, other: &ColRef<'_, RhsE>)

#### fn sub_assign(&mut self, other: &ColRef<'_, RhsE>)

`-=`

operation. Read more§### impl<LhsE, RhsE> SubAssign<&ColRef<'_, RhsE>> for ColMut<'_, LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,

### impl<LhsE, RhsE> SubAssign<&ColRef<'_, RhsE>> for ColMut<'_, LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,

§#### fn sub_assign(&mut self, other: &ColRef<'_, RhsE>)

#### fn sub_assign(&mut self, other: &ColRef<'_, RhsE>)

`-=`

operation. Read more§### impl<LhsE, RhsE> SubAssign<ColRef<'_, RhsE>> for Col<LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,

### impl<LhsE, RhsE> SubAssign<ColRef<'_, RhsE>> for Col<LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,

§#### fn sub_assign(&mut self, other: ColRef<'_, RhsE>)

#### fn sub_assign(&mut self, other: ColRef<'_, RhsE>)

`-=`

operation. Read more§### impl<LhsE, RhsE> SubAssign<ColRef<'_, RhsE>> for ColMut<'_, LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,

### impl<LhsE, RhsE> SubAssign<ColRef<'_, RhsE>> for ColMut<'_, LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,

§#### fn sub_assign(&mut self, rhs: ColRef<'_, RhsE>)

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

`-=`

operation. Read more### impl<E> Copy for ColRef<'_, E>where
E: Entity,

## Auto Trait Implementations§

### impl<'a, E> Freeze for ColRef<'a, E>

### impl<'a, E> RefUnwindSafe for ColRef<'a, E>where
<<E as Entity>::Group as ForCopyType>::FaerOfCopy<NonNull<<E as Entity>::Unit>>: RefUnwindSafe,
E: RefUnwindSafe,

### impl<'a, E> Send for ColRef<'a, E>

### impl<'a, E> Sync for ColRef<'a, E>

### impl<'a, E> Unpin for ColRef<'a, E>

### impl<'a, E> UnwindSafe for ColRef<'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§#### unsafe fn clone_to_uninit(&self, dst: *mut T)

#### unsafe fn clone_to_uninit(&self, dst: *mut T)

`clone_to_uninit`

)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