Gudhi::skeleton_blocker::Skeleton_blocker_sub_complex< ComplexType > Class Template Reference

Simplicial subcomplex of a complex represented by a skeleton/blockers pair. More...

Public Member Functions

Vertex_handle add_vertex (Root_vertex_handle global)
 
void add_edge_without_blockers (Root_vertex_handle v1_root, Root_vertex_handle v2_root)
 
void add_blocker (const Root_simplex_handle &blocker_root)
 
void make_restricted_complex (const ComplexType &parent_complex, const Simplex &simplex)
 
boost::optional< Vertex_handle > get_address (Root_vertex_handle global) const
 
std::vector< boost::optional< Vertex_handle > > get_addresses (const Root_simplex_handle &s) const
 

Detailed Description

template<typename ComplexType>
class Gudhi::skeleton_blocker::Skeleton_blocker_sub_complex< ComplexType >

Simplicial subcomplex of a complex represented by a skeleton/blockers pair.

Stores a subcomplex of a simplicial complex. To simplify explanations below, we will suppose that :

  • K is the root simplicial complex
  • L is a subcomplex of K.

One vertex of K may exists in L but with a different address. To be able to locate the vertices in K from vertices of L, the class stores a map 'adresses' between vertices of K and vertices of L.

Note that the type for handle of vertices of L is 'Vertex_handle' and the type for handle of vertices of K is 'Root_vertex_handle'.

The template ComplexType is type of the root complex. It allows to know if the subcomplex is geometric or not. It has to be either 'Skeleton_blockers_complex' or 'Skeleton_blockers_geometric_complex'.

Member Function Documentation

◆ add_blocker()

template<typename ComplexType >
void Gudhi::skeleton_blocker::Skeleton_blocker_sub_complex< ComplexType >::add_blocker ( const Root_simplex_handle &  blocker_root)
inline

Add a blocker to the sub-complex. It assumes that all vertices of blocker_root are present in the sub-complex.

◆ add_edge_without_blockers()

template<typename ComplexType >
void Gudhi::skeleton_blocker::Skeleton_blocker_sub_complex< ComplexType >::add_edge_without_blockers ( Root_vertex_handle  v1_root,
Root_vertex_handle  v2_root 
)
inline

Add an edge (v1_root,v2_root) to the sub-complex. It assumes that both vertices corresponding to v1_root and v2_root are present in the sub-complex.

◆ add_vertex()

template<typename ComplexType >
Vertex_handle Gudhi::skeleton_blocker::Skeleton_blocker_sub_complex< ComplexType >::add_vertex ( Root_vertex_handle  global)
inline

Add a vertex 'global' of K to L. When added to L, this vertex will receive another number, addresses(global), its local adress. return the adress where the vertex lay on L. The vertex corresponding to 'global' must not be already present in the complex.

◆ get_address()

template<typename ComplexType >
boost::optional<Vertex_handle> Gudhi::skeleton_blocker::Skeleton_blocker_sub_complex< ComplexType >::get_address ( Root_vertex_handle  global) const
inline

Compute the local vertex in L corresponding to the vertex global in K. runs in O(log n) if n = num_vertices()

◆ get_addresses()

template<typename ComplexType >
std::vector<boost::optional<Vertex_handle> > Gudhi::skeleton_blocker::Skeleton_blocker_sub_complex< ComplexType >::get_addresses ( const Root_simplex_handle &  s) const
inline

same as get_address except that it will return a simplex in any case. The vertices that were not found are not added.

◆ make_restricted_complex()

template<typename ComplexType >
void Gudhi::skeleton_blocker::Skeleton_blocker_sub_complex< ComplexType >::make_restricted_complex ( const ComplexType &  parent_complex,
const Simplex &  simplex 
)
inline

Constructs the restricted complex of 'parent_complex' to vertices of 'simplex'.


The documentation for this class was generated from the following files:
GUDHI  Version 3.2.0  - C++ library for Topological Data Analysis (TDA) and Higher Dimensional Geometry Understanding.  - Copyright : MIT Generated on Sat Jun 6 2020 13:12:31 for GUDHI by Doxygen 1.8.17