pub struct UsingColBasisIndex<M: MatrixOracle + HasColBasis> { /* private fields */ }Expand description
Return type of MatrixOracle::using_col_basis_index.
Trait Implementations§
Source§impl<M: Clone + MatrixOracle + HasColBasis> Clone for UsingColBasisIndex<M>
impl<M: Clone + MatrixOracle + HasColBasis> Clone for UsingColBasisIndex<M>
Source§fn clone(&self) -> UsingColBasisIndex<M>
fn clone(&self) -> UsingColBasisIndex<M>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<M: Debug + MatrixOracle + HasColBasis> Debug for UsingColBasisIndex<M>
impl<M: Debug + MatrixOracle + HasColBasis> Debug for UsingColBasisIndex<M>
Source§impl<M> HasRowFiltration for UsingColBasisIndex<M>
impl<M> HasRowFiltration for UsingColBasisIndex<M>
Source§type FiltrationT = <M as HasRowFiltration>::FiltrationT
type FiltrationT = <M as HasRowFiltration>::FiltrationT
The type that the filtration function is valued in.
Source§fn filtration_value(&self, row: Self::RowT) -> Self::FiltrationT
fn filtration_value(&self, row: Self::RowT) -> Self::FiltrationT
Implementing the filtration function on the row basis.
Source§fn column_with_filtration(
&self,
col: Self::ColT,
) -> impl Iterator<Item = ColumnEntry<Self::FiltrationT, Self::RowT, Self::CoefficientField>>
fn column_with_filtration( &self, col: Self::ColT, ) -> impl Iterator<Item = ColumnEntry<Self::FiltrationT, Self::RowT, Self::CoefficientField>>
Uses
MatrixOracle::column and HasRowFiltration::filtration_value to provide an iterator over non-zero column entries, enriches with the row filtration value. Read moreSource§fn empty_bhcol(
&self,
) -> BHCol<Self::FiltrationT, Self::RowT, Self::CoefficientField>
fn empty_bhcol( &self, ) -> BHCol<Self::FiltrationT, Self::RowT, Self::CoefficientField>
Initialise an empty binary heap that can accept entries from this matrix.
Mostly an implementation detail of
build_bhcol.Source§fn build_bhcol(
&self,
col: Self::ColT,
) -> BHCol<Self::FiltrationT, Self::RowT, Self::CoefficientField>
fn build_bhcol( &self, col: Self::ColT, ) -> BHCol<Self::FiltrationT, Self::RowT, Self::CoefficientField>
Source§impl<M> MatrixOracle for UsingColBasisIndex<M>where
M: MatrixOracle + HasColBasis,
impl<M> MatrixOracle for UsingColBasisIndex<M>where
M: MatrixOracle + HasColBasis,
Source§type CoefficientField = <M as MatrixOracle>::CoefficientField
type CoefficientField = <M as MatrixOracle>::CoefficientField
Represents the non-zero elements in the field over which we are doing linear algebra.
Source§type RowT = <M as MatrixOracle>::RowT
type RowT = <M as MatrixOracle>::RowT
Represents elements in the target basis.
Source§fn column(
&self,
col: Self::ColT,
) -> impl Iterator<Item = (Self::CoefficientField, Self::RowT)>
fn column( &self, col: Self::ColT, ) -> impl Iterator<Item = (Self::CoefficientField, Self::RowT)>
Given an element
col in the domain basis, express the image of col under the linear transformation as a linear combination of elements in the target basis.
You should provide this combination is an iterator of (coeff, row) tuples where each row is an element of the target basis.
If coeff is 0 then omit this term from the linear combination. Read moreSource§fn eq_on_col<M2>(&self, other: &M2, col: Self::ColT) -> boolwhere
Self: Sized,
M2: MatrixOracle<CoefficientField = Self::CoefficientField, ColT = Self::ColT, RowT = Self::RowT>,
fn eq_on_col<M2>(&self, other: &M2, col: Self::ColT) -> boolwhere
Self: Sized,
M2: MatrixOracle<CoefficientField = Self::CoefficientField, ColT = Self::ColT, RowT = Self::RowT>,
Checks that the matricies are equal on the specified col, ignoring ordering due to filtration values
Source§fn with_trivial_filtration(self) -> WithTrivialFiltration<Self>where
Self: Sized,
fn with_trivial_filtration(self) -> WithTrivialFiltration<Self>where
Self: Sized,
Endows
self with a filtration in which all rows have the same filtration value: ().Source§fn with_filtration<FT: FiltrationValue, F: Fn(Self::RowT) -> FT>(
self,
filtration_function: F,
) -> WithFuncFiltration<Self, FT, F>where
Self: Sized,
fn with_filtration<FT: FiltrationValue, F: Fn(Self::RowT) -> FT>(
self,
filtration_function: F,
) -> WithFuncFiltration<Self, FT, F>where
Self: Sized,
Endows
self with the filtration given by the provided filtration_function.Source§fn with_basis<B>(self, basis: B) -> MatrixWithBasis<Self, B>
fn with_basis<B>(self, basis: B) -> MatrixWithBasis<Self, B>
Endows
self with the basis basis.Source§fn reverse(self) -> ReverseMatrix<Self>where
Self: Sized,
fn reverse(self) -> ReverseMatrix<Self>where
Self: Sized,
Reverse the order on both the rows and columns.
Both the indices and the filtration values are now the
Reverse of their previous type.Source§fn unreverse<ColT, RowT>(self) -> UnreverseMatrix<Self>
fn unreverse<ColT, RowT>(self) -> UnreverseMatrix<Self>
Reverse the order on both the rows and columns.
Can only be called when the indices are of the form
Reverse<ColT> and Reverse<RowT>
Returns a matrix indexed by ColT and RowT.
Additionally, the filtration value can be ‘unreversed’.
Can be useful when self was obtained by reducing a reversed matrix.Source§fn consolidate(self) -> Consolidator<Self>where
Self: Sized,
fn consolidate(self) -> Consolidator<Self>where
Self: Sized,
When accessing a
column of the consolidated matrix, the corresponding column of self will be requested and stored into a binary heap.
An iterator through this binary heap is then returned. Read moreSource§fn cache_cols(self) -> WithCachedCols<Self>where
Self: Sized,
fn cache_cols(self) -> WithCachedCols<Self>where
Self: Sized,
impl<M: Copy + MatrixOracle + HasColBasis> Copy for UsingColBasisIndex<M>
Auto Trait Implementations§
impl<M> Freeze for UsingColBasisIndex<M>where
M: Freeze,
impl<M> RefUnwindSafe for UsingColBasisIndex<M>where
M: RefUnwindSafe,
impl<M> Send for UsingColBasisIndex<M>where
M: Send,
impl<M> Sync for UsingColBasisIndex<M>where
M: Sync,
impl<M> Unpin for UsingColBasisIndex<M>where
M: Unpin,
impl<M> UnwindSafe for UsingColBasisIndex<M>where
M: UnwindSafe,
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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