Structural Bioinformatics Library
Template C++ / Python API for developping structural bioinformatics applications.
T_Morse_theory_based_analyzer< MorseSmaleWittenChainComplex > Class Template Reference

Analysis of a Morse Smale Witten chain complex. More...

#include <Morse_theory_based_analyzer.hpp>

Critical points and connexions

template<class OutputIterator>
OutputIterator get_paths (OutputIterator out) const
 Returns the set of paths between pairs of 0-saddle points through a 1-saddle point.

Stable manifolds

template<class OutputIterator>
OutputIterator get_stable_manifold_partition (OutputIterator out, bool skip_saddle_SM) const
 Returns the partition of stable manifolds for each critical vertex. The data type for stable manifolds is determined by the MorseSmaleWittenChainComplex data structure and is by default a list of points.

Disconnectivity Forest Methods

const Disconnectivity_forest & get_disconnectivity_forest (void) const
 Returns the disconnectivity forest.
FT get_Morse_function_value (Disconnectivity_vertex u) const
 Returns the value associated to a vertex in the disconnectivity forest.
const Point & get_point (Disconnectivity_vertex u) const
 Returns the point associated to a vertex in the disconnectivity forest.
template<class OutputIterator>
OutputIterator get_connected_component (Disconnectivity_vertex u, const FT &threshold, OutputIterator out) const
 Returns the set of points under the input threshold in the same component as the input vertex.
template<class OutputIterator>
OutputIterator get_connected_component (Disconnectivity_vertex u, Disconnectivity_vertex v, const FT &threshold, OutputIterator out) const
 Returns the set of points in the component born with u and dead with v.
template<class OutputIterator>
OutputIterator get_connected_component_before_death (Disconnectivity_vertex u, Disconnectivity_vertex v, OutputIterator out) const
 Same as before but the threshold is set to the upper bound of the stable manifold of u.

Persistence

template<class OutputIterator>
OutputIterator get_infinite_persistent_critical_vertices (OutputIterator out) const
 Returns the set of 0-saddle vertices with an infinite persistence.
const Persistence_diagram & get_persistence_diagram (void) const
template<class OutputIterator>
OutputIterator get_persistence_diagram (OutputIterator out) const
 Same as before but copy it in an output container.
template<class OutputIterator>
OutputIterator get_persistence_intervals (OutputIterator out)
 Returns the persistence intervals associated to the pairs of vertices in the persistence diagram.

Sublevelsets assignment

template<class OutputIterator>
OutputIterator get_sublevelsets_connected_components (const FT &threshold, OutputIterator out) const
 Returns the all sub-level sets at a given threshold, that are the connected components of points having a value below the input threshold.

Simplifications

void simplify (const FT &persistence)
 Eliminates the saddles with a persistence below the input threshold by removing them from the MSW chain complex (this operation requires recomputing the disconnectivity forest and the persistence diagram)

Detailed Description

template<class MorseSmaleWittenChainComplex>
class SBL::GT::T_Morse_theory_based_analyzer< MorseSmaleWittenChainComplex >

Analysis of a Morse Smale Witten chain complex.

Template Parameters
MorseSmaleWittenChainComplexHasse diagram representing the Morse Smale Witten chain complex.

Member Function Documentation

◆ get_connected_component() [1/2]

template<class MorseSmaleWittenChainComplex>
template<class OutputIterator>
OutputIterator get_connected_component ( Disconnectivity_vertex u,
const FT & threshold,
OutputIterator out ) const
inline

Returns the set of points under the input threshold in the same component as the input vertex.

◆ get_connected_component() [2/2]

template<class MorseSmaleWittenChainComplex>
template<class OutputIterator>
OutputIterator get_connected_component ( Disconnectivity_vertex u,
Disconnectivity_vertex v,
const FT & threshold,
OutputIterator out ) const
inline

Returns the set of points in the component born with u and dead with v.

◆ get_connected_component_before_death()

template<class MorseSmaleWittenChainComplex>
template<class OutputIterator>
OutputIterator get_connected_component_before_death ( Disconnectivity_vertex u,
Disconnectivity_vertex v,
OutputIterator out ) const
inline

Same as before but the threshold is set to the upper bound of the stable manifold of u.

◆ get_disconnectivity_forest()

template<class MorseSmaleWittenChainComplex>
const T_Morse_theory_based_analyzer< MorseSmaleWittenChainComplex >::Disconnectivity_forest & get_disconnectivity_forest ( void ) const
inline

Returns the disconnectivity forest.

◆ get_infinite_persistent_critical_vertices()

template<class MorseSmaleWittenChainComplex>
template<class OutputIterator>
OutputIterator get_infinite_persistent_critical_vertices ( OutputIterator out) const
inline

Returns the set of 0-saddle vertices with an infinite persistence.

◆ get_Morse_function_value()

template<class MorseSmaleWittenChainComplex>
T_Morse_theory_based_analyzer< MorseSmaleWittenChainComplex >::FT get_Morse_function_value ( Disconnectivity_vertex u) const
inline

Returns the value associated to a vertex in the disconnectivity forest.

◆ get_paths()

template<class MorseSmaleWittenChainComplex>
template<class OutputIterator>
OutputIterator get_paths ( OutputIterator out) const
inline

Returns the set of paths between pairs of 0-saddle points through a 1-saddle point.

◆ get_persistence_diagram() [1/2]

template<class MorseSmaleWittenChainComplex>
template<class OutputIterator>
OutputIterator get_persistence_diagram ( OutputIterator out) const
inline

Same as before but copy it in an output container.

◆ get_persistence_diagram() [2/2]

template<class MorseSmaleWittenChainComplex>
const T_Morse_theory_based_analyzer< MorseSmaleWittenChainComplex >::Persistence_diagram & get_persistence_diagram ( void ) const
inline

Returns the persistence diagram as a sorted set of pairs of vertices (0-saddle, 1-saddle) in the disconnectivity forest

◆ get_persistence_intervals()

template<class MorseSmaleWittenChainComplex>
template<class OutputIterator>
OutputIterator get_persistence_intervals ( OutputIterator out)
inline

Returns the persistence intervals associated to the pairs of vertices in the persistence diagram.

◆ get_point()

template<class MorseSmaleWittenChainComplex>
const T_Morse_theory_based_analyzer< MorseSmaleWittenChainComplex >::Point & get_point ( Disconnectivity_vertex u) const
inline

Returns the point associated to a vertex in the disconnectivity forest.

◆ get_stable_manifold_partition()

template<class MorseSmaleWittenChainComplex>
template<class OutputIterator>
OutputIterator get_stable_manifold_partition ( OutputIterator out,
bool skip_saddle_SM ) const
inline

Returns the partition of stable manifolds for each critical vertex. The data type for stable manifolds is determined by the MorseSmaleWittenChainComplex data structure and is by default a list of points.

◆ get_sublevelsets_connected_components()

template<class MorseSmaleWittenChainComplex>
template<class OutputIterator>
OutputIterator get_sublevelsets_connected_components ( const FT & threshold,
OutputIterator out ) const
inline

Returns the all sub-level sets at a given threshold, that are the connected components of points having a value below the input threshold.

◆ simplify()

template<class MorseSmaleWittenChainComplex>
void simplify ( const FT & persistence)
inline

Eliminates the saddles with a persistence below the input threshold by removing them from the MSW chain complex (this operation requires recomputing the disconnectivity forest and the persistence diagram)