pub struct ZigzagPersistence { /* private fields */ }Expand description
Incremental zigzag persistence computation.
Maintains the current filtration and reduced boundary matrix, updating persistance intervals as simplices are added and removed.
Implementations§
Source§impl ZigzagPersistence
impl ZigzagPersistence
Sourcepub fn add_simplex(&mut self, s: Simplex) -> Vec<(f64, f64, usize)>
pub fn add_simplex(&mut self, s: Simplex) -> Vec<(f64, f64, usize)>
Process a forward step: add a simplex and return any newly closed intervals.
In standard persistence, adding a simplex either:
- Creates a new homology class (no pivot after reduction) → opens an interval.
- Destroys an existing class (reduction yields a pivot) → closes an interval.
Sourcepub fn remove_simplex(&mut self, s: Simplex) -> Vec<(f64, f64, usize)>
pub fn remove_simplex(&mut self, s: Simplex) -> Vec<(f64, f64, usize)>
Process a backward step: remove a simplex and return any newly closed intervals.
To remove simplex s at position pos, we perform adjacent transpositions
(vineyard updates) to bubble it to the last position, then delete it.
After removal, if s had an open interval it gets closed with death = infinity
(the feature survives through the deletion). If s was killing another class,
the killed class re-opens.
Trait Implementations§
Source§impl Clone for ZigzagPersistence
impl Clone for ZigzagPersistence
Source§fn clone(&self) -> ZigzagPersistence
fn clone(&self) -> ZigzagPersistence
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 Debug for ZigzagPersistence
impl Debug for ZigzagPersistence
Auto Trait Implementations§
impl Freeze for ZigzagPersistence
impl RefUnwindSafe for ZigzagPersistence
impl Send for ZigzagPersistence
impl Sync for ZigzagPersistence
impl Unpin for ZigzagPersistence
impl UnsafeUnpin for ZigzagPersistence
impl UnwindSafe for ZigzagPersistence
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
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§fn to_subset_unchecked(&self) -> SS
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.