Gudhi::Toplex_map Class Reference

Toplex map data structure for representing unfiltered simplicial complexes. More...

Public Types

using Vertex = std::size_t
 
using Simplex = std::set< Vertex >
 
using Simplex_ptr = std::shared_ptr< Toplex_map::Simplex >
 
using Simplex_ptr_set = std::unordered_set< Toplex_map::Simplex_ptr, Sptr_hash, Sptr_equal >
 

Public Member Functions

template<typename Input_vertex_range >
void insert_simplex (const Input_vertex_range &vertex_range)
 Adds the given simplex to the complex. Nothing happens if the simplex is already in the complex (i.e. it is a face of one of the toplices).
 
template<typename Input_vertex_range >
void remove_simplex (const Input_vertex_range &vertex_range)
 Removes the given simplex and its cofaces from the complex. Its faces are kept inside.
 
template<typename Input_vertex_range >
bool membership (const Input_vertex_range &vertex_range) const
 
template<typename Input_vertex_range >
bool maximality (const Input_vertex_range &vertex_range) const
 
template<typename Input_vertex_range >
Toplex_map::Simplex_ptr_set maximal_cofaces (const Input_vertex_range &vertex_range, const std::size_t max_number=0) const
 
Toplex_map::Simplex_ptr_set maximal_simplices (const std::size_t max_number=0) const
 
Vertex contraction (const Vertex x, const Vertex y)
 
void remove_vertex (const Vertex x)
 
std::size_t num_maximal_simplices () const
 Number of maximal simplices.
 
std::size_t num_vertices () const
 Number of vertices.
 
template<typename Input_vertex_range >
void insert_independent_simplex (const Input_vertex_range &vertex_range)
 

Detailed Description

Toplex map data structure for representing unfiltered simplicial complexes.

A Toplex_map is an unordered map from vertices to maximal simplices (aka. toplices).

Examples
simple_toplex_map.cpp.

Member Typedef Documentation

◆ Simplex

Simplex is the type of simplices.

Examples
simple_toplex_map.cpp.

◆ Simplex_ptr

The type of the pointers to maximal simplices.

◆ Simplex_ptr_set

using Gudhi::Toplex_map::Simplex_ptr_set = std::unordered_set<Toplex_map::Simplex_ptr, Sptr_hash, Sptr_equal>

The type of the sets of Toplex_map::Simplex_ptr.

◆ Vertex

using Gudhi::Toplex_map::Vertex = std::size_t

Vertex is the type of vertices.

Member Function Documentation

◆ contraction()

Toplex_map::Vertex Gudhi::Toplex_map::contraction ( const Vertex  x,
const Vertex  y 
)

Contracts one edge in the complex. The edge has to verify the link condition if you want to preserve topology. Returns the remaining vertex.

Examples
simple_toplex_map.cpp.

◆ insert_independent_simplex()

template<typename Input_vertex_range >
void Gudhi::Toplex_map::insert_independent_simplex ( const Input_vertex_range &  vertex_range)

Adds the given simplex to the complex. The simplex must not be in the complex already, and it must not contain one of the current toplices.

◆ maximal_cofaces()

template<typename Input_vertex_range >
Toplex_map::Simplex_ptr_set Gudhi::Toplex_map::maximal_cofaces ( const Input_vertex_range &  vertex_range,
const std::size_t  max_number = 0 
) const

Gives a set of pointers to the maximal cofaces of a simplex. Gives all the toplices if given the empty simplex. Gives not more than max_number maximal cofaces if max_number is strictly positive.

Examples
simple_toplex_map.cpp.

◆ maximal_simplices()

Toplex_map::Simplex_ptr_set Gudhi::Toplex_map::maximal_simplices ( const std::size_t  max_number = 0) const
inline

Gives a set of pointers to the maximal simplices. Gives not more than max_number maximal cofaces if max_number is strictly positive.

Examples
simple_toplex_map.cpp.

◆ maximality()

template<typename Input_vertex_range >
bool Gudhi::Toplex_map::maximality ( const Input_vertex_range &  vertex_range) const

Does a simplex is a toplex ?

◆ membership()

template<typename Input_vertex_range >
bool Gudhi::Toplex_map::membership ( const Input_vertex_range &  vertex_range) const

Does a simplex belong to the complex ?

Examples
simple_toplex_map.cpp.

◆ remove_vertex()

void Gudhi::Toplex_map::remove_vertex ( const Vertex  x)

Remove the vertex and all its cofaces from the complex.

Examples
simple_toplex_map.cpp.

The documentation for this class was generated from the following file: