pub struct OnlyRowIndicesOutsideCollection<Matrix, RowIndicesToExclude>{ /* private fields */ }Expand description
A matrix oracle whose columns iterate only over entries that have indices outside a given collection.
Implementations§
Source§impl<Matrix, RowIndicesToExclude> OnlyRowIndicesOutsideCollection<Matrix, RowIndicesToExclude>
impl<Matrix, RowIndicesToExclude> OnlyRowIndicesOutsideCollection<Matrix, RowIndicesToExclude>
Sourcepub fn new(
matrix: Matrix,
row_indices_to_exclude: RowIndicesToExclude,
) -> OnlyRowIndicesOutsideCollection<Matrix, RowIndicesToExclude>
pub fn new( matrix: Matrix, row_indices_to_exclude: RowIndicesToExclude, ) -> OnlyRowIndicesOutsideCollection<Matrix, RowIndicesToExclude>
Create a new OnlyRowIndicesOutsideCollection from a matrix and a collection of column indices.
In order to operate properly, the collection of column indices should implement
the MapHasKeyOrSequenceHasElement
trait.
Trait Implementations§
Source§impl<Matrix, RowIndicesToExclude> Clone for OnlyRowIndicesOutsideCollection<Matrix, RowIndicesToExclude>where
Matrix: MatrixOracle + Clone,
RowIndicesToExclude: MapHasKeyOrSequenceHasElement<Matrix::RowIndex> + Clone,
impl<Matrix, RowIndicesToExclude> Clone for OnlyRowIndicesOutsideCollection<Matrix, RowIndicesToExclude>where
Matrix: MatrixOracle + Clone,
RowIndicesToExclude: MapHasKeyOrSequenceHasElement<Matrix::RowIndex> + Clone,
Source§fn clone(&self) -> OnlyRowIndicesOutsideCollection<Matrix, RowIndicesToExclude>
fn clone(&self) -> OnlyRowIndicesOutsideCollection<Matrix, RowIndicesToExclude>
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl<Matrix, RowIndicesToExclude> Copy for OnlyRowIndicesOutsideCollection<Matrix, RowIndicesToExclude>where
Matrix: MatrixOracle + Copy,
RowIndicesToExclude: MapHasKeyOrSequenceHasElement<Matrix::RowIndex> + Copy,
Source§impl<Matrix, RowIndicesToExclude> Debug for OnlyRowIndicesOutsideCollection<Matrix, RowIndicesToExclude>where
Matrix: MatrixOracle + Debug,
RowIndicesToExclude: MapHasKeyOrSequenceHasElement<Matrix::RowIndex> + Debug,
impl<Matrix, RowIndicesToExclude> Debug for OnlyRowIndicesOutsideCollection<Matrix, RowIndicesToExclude>where
Matrix: MatrixOracle + Debug,
RowIndicesToExclude: MapHasKeyOrSequenceHasElement<Matrix::RowIndex> + Debug,
impl<Matrix, RowIndicesToExclude> Eq for OnlyRowIndicesOutsideCollection<Matrix, RowIndicesToExclude>where
Matrix: MatrixOracle + Eq,
RowIndicesToExclude: MapHasKeyOrSequenceHasElement<Matrix::RowIndex> + Eq,
Source§impl<Matrix, RowIndicesToExclude> MatrixAlgebra for OnlyRowIndicesOutsideCollection<Matrix, RowIndicesToExclude>where
Matrix: MatrixAlgebra,
RowIndicesToExclude: Copy + MapHasKeyOrSequenceHasElement<Matrix::RowIndex>,
impl<Matrix, RowIndicesToExclude> MatrixAlgebra for OnlyRowIndicesOutsideCollection<Matrix, RowIndicesToExclude>where
Matrix: MatrixAlgebra,
RowIndicesToExclude: Copy + MapHasKeyOrSequenceHasElement<Matrix::RowIndex>,
type RingOperator = <Matrix as MatrixAlgebra>::RingOperator
type OrderOperatorForRowEntries = <Matrix as MatrixAlgebra>::OrderOperatorForRowEntries
type OrderOperatorForRowIndices = <Matrix as MatrixAlgebra>::OrderOperatorForRowIndices
type OrderOperatorForColumnEntries = <Matrix as MatrixAlgebra>::OrderOperatorForColumnEntries
type OrderOperatorForColumnIndices = <Matrix as MatrixAlgebra>::OrderOperatorForColumnIndices
fn ring_operator(&self) -> Self::RingOperator
fn order_operator_for_row_entries(&self) -> Self::OrderOperatorForRowEntries
fn order_operator_for_row_indices(&self) -> Self::OrderOperatorForRowIndices
fn order_operator_for_column_entries( &self, ) -> Self::OrderOperatorForColumnEntries
fn order_operator_for_column_indices( &self, ) -> Self::OrderOperatorForColumnIndices
fn order_operator_for_row_entries_reverse(
self,
) -> ReverseOrder<Self::OrderOperatorForRowEntries>where
Self: Sized,
fn order_operator_for_row_indices_reverse(
self,
) -> ReverseOrder<Self::OrderOperatorForRowIndices>where
Self: Sized,
fn order_operator_for_column_entries_reverse(
self,
) -> ReverseOrder<Self::OrderOperatorForColumnEntries>where
Self: Sized,
fn order_operator_for_column_indices_reverse(
self,
) -> ReverseOrder<Self::OrderOperatorForColumnIndices>where
Self: Sized,
Source§impl<Matrix, RowIndicesToExclude> MatrixOracle for OnlyRowIndicesOutsideCollection<Matrix, RowIndicesToExclude>where
Matrix: MatrixOracle,
RowIndicesToExclude: Copy + MapHasKeyOrSequenceHasElement<Matrix::RowIndex>,
impl<Matrix, RowIndicesToExclude> MatrixOracle for OnlyRowIndicesOutsideCollection<Matrix, RowIndicesToExclude>where
Matrix: MatrixOracle,
RowIndicesToExclude: Copy + MapHasKeyOrSequenceHasElement<Matrix::RowIndex>,
type Coefficient = <Matrix as MatrixOracle>::Coefficient
type RowIndex = <Matrix as MatrixOracle>::RowIndex
type ColumnIndex = <Matrix as MatrixOracle>::ColumnIndex
type RowEntry = <Matrix as MatrixOracle>::RowEntry
type ColumnEntry = <Matrix as MatrixOracle>::ColumnEntry
type Row = <Matrix as MatrixOracle>::Row
type RowReverse = <Matrix as MatrixOracle>::RowReverse
type Column = OnlyIndicesOutsideCollection<<Matrix as MatrixOracle>::Column, RowIndicesToExclude>
type ColumnReverse = OnlyIndicesOutsideCollection<<Matrix as MatrixOracle>::ColumnReverse, RowIndicesToExclude>
fn row(&self, index: &Self::RowIndex) -> Self::Row
fn row_reverse(&self, index: &Self::RowIndex) -> Self::RowReverse
fn column(&self, index: &Self::ColumnIndex) -> Self::Column
fn column_reverse(&self, index: &Self::ColumnIndex) -> Self::ColumnReverse
fn has_row_for_index(&self, index: &Self::RowIndex) -> bool
fn has_column_for_index(&self, index: &Self::ColumnIndex) -> bool
Source§fn structural_nonzero_entry(
&self,
row: &Self::RowIndex,
column: &Self::ColumnIndex,
) -> Option<Self::Coefficient>
fn structural_nonzero_entry( &self, row: &Self::RowIndex, column: &Self::ColumnIndex, ) -> Option<Self::Coefficient>
Source§fn has_row_for_index_result(
&self,
index: &Self::RowIndex,
) -> Result<Self::RowIndex, Self::RowIndex>
fn has_row_for_index_result( &self, index: &Self::RowIndex, ) -> Result<Self::RowIndex, Self::RowIndex>
Returns
Ok(index) if index`` is valid and Err(index)ifindex` is invalid.Source§fn has_column_for_index_result(
&self,
index: &Self::ColumnIndex,
) -> Result<Self::ColumnIndex, Self::ColumnIndex>
fn has_column_for_index_result( &self, index: &Self::ColumnIndex, ) -> Result<Self::ColumnIndex, Self::ColumnIndex>
Returns
Ok(index) if index`` is valid and Err(index)ifindex` is invalid.Source§fn structural_nonzero_entry_result(
&self,
row: &Self::RowIndex,
column: &Self::ColumnIndex,
) -> Result<Option<Self::Coefficient>, (Result<Self::RowIndex, Self::RowIndex>, Result<Self::ColumnIndex, Self::ColumnIndex>)>
fn structural_nonzero_entry_result( &self, row: &Self::RowIndex, column: &Self::ColumnIndex, ) -> Result<Option<Self::Coefficient>, (Result<Self::RowIndex, Self::RowIndex>, Result<Self::ColumnIndex, Self::ColumnIndex>)>
Source§fn row_reverse_result(
&self,
index: &Self::RowIndex,
) -> Result<Self::RowReverse, Self::RowIndex>
fn row_reverse_result( &self, index: &Self::RowIndex, ) -> Result<Self::RowReverse, Self::RowIndex>
Source§fn column_result(
&self,
index: &Self::ColumnIndex,
) -> Result<Self::Column, Self::ColumnIndex>
fn column_result( &self, index: &Self::ColumnIndex, ) -> Result<Self::Column, Self::ColumnIndex>
Source§fn column_reverse_result(
&self,
index: &Self::ColumnIndex,
) -> Result<Self::ColumnReverse, Self::ColumnIndex>
fn column_reverse_result( &self, index: &Self::ColumnIndex, ) -> Result<Self::ColumnReverse, Self::ColumnIndex>
Source§impl<Matrix, RowIndicesToExclude> Ord for OnlyRowIndicesOutsideCollection<Matrix, RowIndicesToExclude>where
Matrix: MatrixOracle + Ord,
RowIndicesToExclude: MapHasKeyOrSequenceHasElement<Matrix::RowIndex> + Ord,
impl<Matrix, RowIndicesToExclude> Ord for OnlyRowIndicesOutsideCollection<Matrix, RowIndicesToExclude>where
Matrix: MatrixOracle + Ord,
RowIndicesToExclude: MapHasKeyOrSequenceHasElement<Matrix::RowIndex> + Ord,
Source§fn cmp(
&self,
other: &OnlyRowIndicesOutsideCollection<Matrix, RowIndicesToExclude>,
) -> Ordering
fn cmp( &self, other: &OnlyRowIndicesOutsideCollection<Matrix, RowIndicesToExclude>, ) -> Ordering
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
Source§impl<Matrix, RowIndicesToExclude> PartialEq for OnlyRowIndicesOutsideCollection<Matrix, RowIndicesToExclude>where
Matrix: MatrixOracle + PartialEq,
RowIndicesToExclude: MapHasKeyOrSequenceHasElement<Matrix::RowIndex> + PartialEq,
impl<Matrix, RowIndicesToExclude> PartialEq for OnlyRowIndicesOutsideCollection<Matrix, RowIndicesToExclude>where
Matrix: MatrixOracle + PartialEq,
RowIndicesToExclude: MapHasKeyOrSequenceHasElement<Matrix::RowIndex> + PartialEq,
Source§impl<Matrix, RowIndicesToExclude> PartialOrd for OnlyRowIndicesOutsideCollection<Matrix, RowIndicesToExclude>where
Matrix: MatrixOracle + PartialOrd,
RowIndicesToExclude: MapHasKeyOrSequenceHasElement<Matrix::RowIndex> + PartialOrd,
impl<Matrix, RowIndicesToExclude> PartialOrd for OnlyRowIndicesOutsideCollection<Matrix, RowIndicesToExclude>where
Matrix: MatrixOracle + PartialOrd,
RowIndicesToExclude: MapHasKeyOrSequenceHasElement<Matrix::RowIndex> + PartialOrd,
Source§fn partial_cmp(
&self,
other: &OnlyRowIndicesOutsideCollection<Matrix, RowIndicesToExclude>,
) -> Option<Ordering>
fn partial_cmp( &self, other: &OnlyRowIndicesOutsideCollection<Matrix, RowIndicesToExclude>, ) -> Option<Ordering>
impl<Matrix, RowIndicesToExclude> StructuralPartialEq for OnlyRowIndicesOutsideCollection<Matrix, RowIndicesToExclude>where
Matrix: MatrixOracle + PartialEq,
RowIndicesToExclude: MapHasKeyOrSequenceHasElement<Matrix::RowIndex> + PartialEq,
Auto Trait Implementations§
impl<Matrix, RowIndicesToExclude> Freeze for OnlyRowIndicesOutsideCollection<Matrix, RowIndicesToExclude>
impl<Matrix, RowIndicesToExclude> RefUnwindSafe for OnlyRowIndicesOutsideCollection<Matrix, RowIndicesToExclude>where
Matrix: RefUnwindSafe,
RowIndicesToExclude: RefUnwindSafe,
impl<Matrix, RowIndicesToExclude> Send for OnlyRowIndicesOutsideCollection<Matrix, RowIndicesToExclude>
impl<Matrix, RowIndicesToExclude> Sync for OnlyRowIndicesOutsideCollection<Matrix, RowIndicesToExclude>
impl<Matrix, RowIndicesToExclude> Unpin for OnlyRowIndicesOutsideCollection<Matrix, RowIndicesToExclude>
impl<Matrix, RowIndicesToExclude> UnsafeUnpin for OnlyRowIndicesOutsideCollection<Matrix, RowIndicesToExclude>where
Matrix: UnsafeUnpin,
RowIndicesToExclude: UnsafeUnpin,
impl<Matrix, RowIndicesToExclude> UnwindSafe for OnlyRowIndicesOutsideCollection<Matrix, RowIndicesToExclude>where
Matrix: UnwindSafe,
RowIndicesToExclude: 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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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 moreSource§impl<T> IntoReverseOrder for T
impl<T> IntoReverseOrder for T
Source§fn into_reverse_order(self) -> ReverseOrder<T>
fn into_reverse_order(self) -> ReverseOrder<T>
Returns an inverted order operator, consuming self
Source§impl<T> MultiVectorOperations for T
impl<T> MultiVectorOperations for T
Source§fn linearly_combine_scalar_vector_pairs_without_symplifying<RingOperator, OrderOperator, Vector, Index, RingElement>(
self,
ring_operator: RingOperator,
order_operator: OrderOperator,
) -> IteratorsMergedInSortedOrder<Scale<Vector::IntoIter, RingOperator>, OrderOperator> ⓘwhere
Self: Sized + IntoIterator<Item = (RingOperator::Element, Vector)>,
Vector: IntoIterator<IntoIter: Iterator<Item: KeyValSet<Key = Index, Val = RingElement>>>,
Index: PartialEq,
OrderOperator: JudgePartialOrder<Vector::Item>,
RingOperator: Clone + SemiringOperations<Element = RingElement>,
fn linearly_combine_scalar_vector_pairs_without_symplifying<RingOperator, OrderOperator, Vector, Index, RingElement>(
self,
ring_operator: RingOperator,
order_operator: OrderOperator,
) -> IteratorsMergedInSortedOrder<Scale<Vector::IntoIter, RingOperator>, OrderOperator> ⓘwhere
Self: Sized + IntoIterator<Item = (RingOperator::Element, Vector)>,
Vector: IntoIterator<IntoIter: Iterator<Item: KeyValSet<Key = Index, Val = RingElement>>>,
Index: PartialEq,
OrderOperator: JudgePartialOrder<Vector::Item>,
RingOperator: Clone + SemiringOperations<Element = RingElement>,
Returns a linear combination, without simplifying Read more
Source§fn linearly_combine_scalar_vector_pairs<RingOperator, OrderOperator, Vector, RingElement>(
self,
ring_operator: RingOperator,
order_operator: OrderOperator,
) -> Simplify<IteratorsMergedInSortedOrder<Scale<Vector::IntoIter, RingOperator>, OrderOperator>, RingOperator> ⓘwhere
Self: Sized + IntoIterator<Item = (RingElement, Vector)>,
Vector: IntoIterator,
Vector::Item: PartialEq + KeyValSet<Val = RingElement>,
<Vector::Item as KeyValGet>::Key: PartialEq,
OrderOperator: JudgePartialOrder<Vector::Item>,
RingOperator: Clone + SemiringOperations<Element = RingElement>,
fn linearly_combine_scalar_vector_pairs<RingOperator, OrderOperator, Vector, RingElement>(
self,
ring_operator: RingOperator,
order_operator: OrderOperator,
) -> Simplify<IteratorsMergedInSortedOrder<Scale<Vector::IntoIter, RingOperator>, OrderOperator>, RingOperator> ⓘwhere
Self: Sized + IntoIterator<Item = (RingElement, Vector)>,
Vector: IntoIterator,
Vector::Item: PartialEq + KeyValSet<Val = RingElement>,
<Vector::Item as KeyValGet>::Key: PartialEq,
OrderOperator: JudgePartialOrder<Vector::Item>,
RingOperator: Clone + SemiringOperations<Element = RingElement>,
Returns a simplified linear combination Read more
Source§fn sum_vectors_unsimplified<OrderOperator>(
self,
order_operator: OrderOperator,
) -> IteratorsMergedInSortedOrder<<Self::Item as IntoIterator>::IntoIter, OrderOperator> ⓘwhere
Self: Sized + IntoIterator,
Self::Item: IntoIterator,
OrderOperator: JudgePartialOrder<<<Self as IntoIterator>::Item as IntoIterator>::Item>,
fn sum_vectors_unsimplified<OrderOperator>(
self,
order_operator: OrderOperator,
) -> IteratorsMergedInSortedOrder<<Self::Item as IntoIterator>::IntoIter, OrderOperator> ⓘwhere
Self: Sized + IntoIterator,
Self::Item: IntoIterator,
OrderOperator: JudgePartialOrder<<<Self as IntoIterator>::Item as IntoIterator>::Item>,
Sum two or more vectors without simplifying Read more
Source§fn sum_vectors<RingOperator, OrderOperator, RingElement, Index>(
self,
ring_operator: RingOperator,
order_operator: OrderOperator,
) -> Simplify<IteratorsMergedInSortedOrder<<Self::Item as IntoIterator>::IntoIter, OrderOperator>, RingOperator> ⓘwhere
Self: Sized + IntoIterator,
Self::Item: IntoIterator,
<Self::Item as IntoIterator>::Item: PartialEq + KeyValSet<Key = Index, Val = RingElement>,
OrderOperator: JudgePartialOrder<<<Self as IntoIterator>::Item as IntoIterator>::Item>,
RingOperator: SemiringOperations<Element = RingElement>,
Index: PartialEq,
fn sum_vectors<RingOperator, OrderOperator, RingElement, Index>(
self,
ring_operator: RingOperator,
order_operator: OrderOperator,
) -> Simplify<IteratorsMergedInSortedOrder<<Self::Item as IntoIterator>::IntoIter, OrderOperator>, RingOperator> ⓘwhere
Self: Sized + IntoIterator,
Self::Item: IntoIterator,
<Self::Item as IntoIterator>::Item: PartialEq + KeyValSet<Key = Index, Val = RingElement>,
OrderOperator: JudgePartialOrder<<<Self as IntoIterator>::Item as IntoIterator>::Item>,
RingOperator: SemiringOperations<Element = RingElement>,
Index: PartialEq,
Sum a collection of vectors, and simplify Read more
Source§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§unsafe fn to_subset_unchecked(&self) -> SS
unsafe fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.Source§impl<T> TransformIter for T
impl<T> TransformIter for T
Source§fn require_strict_ascent<OrderOperator>(
self,
order_operator: OrderOperator,
) -> RequireStrictAscent<Self, OrderOperator> ⓘ
fn require_strict_ascent<OrderOperator>( self, order_operator: OrderOperator, ) -> RequireStrictAscent<Self, OrderOperator> ⓘ
Wraps
self in a struct that requires items to appear in strictly sorted order. Read moreSource§fn require_strict_ascent_with_panic<OrderOperator>(
self,
order_operator: OrderOperator,
) -> RequireStrictAscentWithPanic<Self, OrderOperator> ⓘ
fn require_strict_ascent_with_panic<OrderOperator>( self, order_operator: OrderOperator, ) -> RequireStrictAscentWithPanic<Self, OrderOperator> ⓘ
Wraps
self in a struct that requires items to appear in strictly sorted order. Read more