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) |
Toplex map data structure for representing unfiltered simplicial complexes.
A Toplex_map is an unordered map from vertices to maximal simplices (aka. toplices).
using Gudhi::Toplex_map::Simplex = std::set<Vertex> |
Simplex is the type of simplices.
using Gudhi::Toplex_map::Simplex_ptr = std::shared_ptr<Toplex_map::Simplex> |
The type of the pointers to maximal simplices.
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.
using Gudhi::Toplex_map::Vertex = std::size_t |
Vertex is the type of vertices.
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.
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.
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.
|
inline |
Gives a set of pointers to the maximal simplices. Gives not more than max_number maximal cofaces if max_number is strictly positive.
bool Gudhi::Toplex_map::maximality | ( | const Input_vertex_range & | vertex_range | ) | const |
Does a simplex is a toplex ?
bool Gudhi::Toplex_map::membership | ( | const Input_vertex_range & | vertex_range | ) | const |
Does a simplex belong to the complex ?
void Gudhi::Toplex_map::remove_vertex | ( | const Vertex | x | ) |
Remove the vertex and all its cofaces from the complex.