pub struct VietorisRips;Expand description
Vietoris-Rips complex for computing persistent homology
The Vietoris-Rips complex builds a filtration of simplicial complexes from point cloud data by including a simplex whenever all pairwise distances between its vertices are at most the filtration parameter ε.
§Example
use scirs2_transform::tda::VietorisRips;
use scirs2_core::ndarray::Array2;
let points = Array2::from_shape_vec((4, 2), vec![
0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0,
]).expect("should succeed");
let diagram = VietorisRips::compute(&points, 1, 2.0).expect("should succeed");
assert!(!diagram.is_empty());Implementations§
Source§impl VietorisRips
impl VietorisRips
Sourcepub fn compute<S>(
points: &ArrayBase<S, Ix2>,
max_dim: usize,
max_radius: f64,
) -> Result<PersistenceDiagram>
pub fn compute<S>( points: &ArrayBase<S, Ix2>, max_dim: usize, max_radius: f64, ) -> Result<PersistenceDiagram>
Compute the persistent homology of a point cloud using the Vietoris-Rips filtration
§Arguments
points- Point cloud data (n_points × n_features)max_dim- Maximum homological dimension to compute (0 = components, 1 = loops, …)max_radius- Maximum filtration radius; simplices with diameter > 2*max_radius are ignored
§Returns
- A persistence diagram with (birth, death) pairs for each dimension
Auto Trait Implementations§
impl Freeze for VietorisRips
impl RefUnwindSafe for VietorisRips
impl Send for VietorisRips
impl Sync for VietorisRips
impl Unpin for VietorisRips
impl UnsafeUnpin for VietorisRips
impl UnwindSafe for VietorisRips
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> 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.