pub struct FilteredSimplicialComplex<G> { /* private fields */ }Expand description
A finite explicit filtered simplicial complex.
Vertex labels are stable keys. Every nonempty face must occur exactly once, and each face grade must precede the grade of its cofaces.
Implementations§
Source§impl FilteredSimplicialComplex<ScalarGrade>
impl FilteredSimplicialComplex<ScalarGrade>
Sourcepub fn from_flag_graph(
input: &SparseDistanceMatrix,
labels: &[usize],
params: FlagComplexParams,
) -> Result<Self, FiltrationError>
pub fn from_flag_graph( input: &SparseDistanceMatrix, labels: &[usize], params: FlagComplexParams, ) -> Result<Self, FiltrationError>
Materialize the flag complex of a sparse graph with stable labels.
Source§impl<G: FiltrationGrade> FilteredSimplicialComplex<G>
impl<G: FiltrationGrade> FilteredSimplicialComplex<G>
Sourcepub fn new(
vertex_labels: Vec<usize>,
simplices: Vec<Vec<FilteredSimplex<G>>>,
) -> Result<Self, FiltrationError>
pub fn new( vertex_labels: Vec<usize>, simplices: Vec<Vec<FilteredSimplex<G>>>, ) -> Result<Self, FiltrationError>
Construct a checked explicit complex grouped by simplex dimension.
Sourcepub fn vertex_labels(&self) -> &[usize]
pub fn vertex_labels(&self) -> &[usize]
Stable labels of all vertices in this complex.
Sourcepub fn max_dimension(&self) -> usize
pub fn max_dimension(&self) -> usize
Highest stored simplex dimension, including a trailing empty group.
Sourcepub fn simplices(&self) -> &[Vec<FilteredSimplex<G>>]
pub fn simplices(&self) -> &[Vec<FilteredSimplex<G>>]
Simplices grouped by dimension and ordered by vertex key.
Sourcepub fn simplex_count(&self) -> usize
pub fn simplex_count(&self) -> usize
Number of stored simplices in all dimensions.
Sourcepub fn project<P: ScalarProjection<G>>(
&self,
projection: &P,
) -> Result<FilteredSimplicialComplex<ScalarGrade>, FiltrationError>
pub fn project<P: ScalarProjection<G>>( &self, projection: &P, ) -> Result<FilteredSimplicialComplex<ScalarGrade>, FiltrationError>
Apply a scalar projection and check the resulting filtration.
Trait Implementations§
Source§impl<G: Clone> Clone for FilteredSimplicialComplex<G>
impl<G: Clone> Clone for FilteredSimplicialComplex<G>
Source§fn clone(&self) -> FilteredSimplicialComplex<G>
fn clone(&self) -> FilteredSimplicialComplex<G>
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 moreSource§impl<G: Debug> Debug for FilteredSimplicialComplex<G>
impl<G: Debug> Debug for FilteredSimplicialComplex<G>
impl<G: Eq> Eq for FilteredSimplicialComplex<G>
Source§impl<G: PartialEq> PartialEq for FilteredSimplicialComplex<G>
impl<G: PartialEq> PartialEq for FilteredSimplicialComplex<G>
impl<G: PartialEq> StructuralPartialEq for FilteredSimplicialComplex<G>
Auto Trait Implementations§
impl<G> Freeze for FilteredSimplicialComplex<G>
impl<G> RefUnwindSafe for FilteredSimplicialComplex<G>
impl<G> Send for FilteredSimplicialComplex<G>
impl<G> Sync for FilteredSimplicialComplex<G>
impl<G> Unpin for FilteredSimplicialComplex<G>
impl<G> UnsafeUnpin for FilteredSimplicialComplex<G>
impl<G> UnwindSafe for FilteredSimplicialComplex<G>
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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