summaryrefslogtreecommitdiff
path: root/src/Toplex_map/include/gudhi/Filtered_toplex_map.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/Toplex_map/include/gudhi/Filtered_toplex_map.h')
-rw-r--r--src/Toplex_map/include/gudhi/Filtered_toplex_map.h75
1 files changed, 0 insertions, 75 deletions
diff --git a/src/Toplex_map/include/gudhi/Filtered_toplex_map.h b/src/Toplex_map/include/gudhi/Filtered_toplex_map.h
deleted file mode 100644
index 9a35b8b7..00000000
--- a/src/Toplex_map/include/gudhi/Filtered_toplex_map.h
+++ /dev/null
@@ -1,75 +0,0 @@
- #ifndef FILTERED_TOPLEX_MAP_H
-#define FILTERED_TOPLEX_MAP_H
-
-#include <gudhi/Toplex_map.h>
-#include <map>
-#include <limits>
-
-namespace Gudhi {
-
-/** A Filtered_toplex_map represents the simplicial complex with a filtration.
- * A "toplex" is a critical simplex. */
-class Filtered_toplex_map {
-
-public:
- /** Vertex is the type of vertices. */
- typedef Toplex_map::Vertex Vertex;
-
- /** Simplex is the type of simplices. */
- typedef Toplex_map::Simplex Simplex;
-
- /** The type of the pointers to maximal simplices. */
- typedef Toplex_map::Simplex_ptr Simplex_ptr;
-
- /** The type of the sets of Simplex_ptr. */
- typedef Toplex_map::Simplex_ptr_set Simplex_ptr_set;
-
- /** The type of the filtration values. */
- typedef double Filtration_value;
-
- /** Add a simplex and its subfaces with the given filtration value
- * in the Filtered_toplex_map. */
- template <typename Input_vertex_range>
- std::pair<Simplex, bool> insert_simplex_and_subfaces(const Input_vertex_range &vertex_range, Filtration_value f = std::numeric_limits<double>::quiet_NaN());
-
- /** Gives the filtration of the input simplex. */
- template <typename Input_vertex_range>
- Filtration_value filtration(const Input_vertex_range &vertex_range) const;
-
- /** Is the input simplex member of the complex ? */
- template <typename Input_vertex_range>
- bool membership(const Input_vertex_range &vertex_range) const;
-
-protected:
- std::map<Filtration_value, Toplex_map*> toplex_maps;
-};
-
-template <typename Input_vertex_range>
-std::pair<Toplex_map::Simplex, bool> Filtered_toplex_map::insert_simplex_and_subfaces(const Input_vertex_range &vertex_range, Filtration_value f){
- Simplex s(vertex_range.begin(),vertex_range.end());
- if(membership(s)) return make_pair(s,false);
- if(!toplex_maps.count(f)) toplex_maps.emplace(f,new Toplex_map());
- toplex_maps.at(f)->insert_simplex(vertex_range);
- return make_pair(s,true);
-}
-
-
-template <typename Input_vertex_range>
-Filtered_toplex_map::Filtration_value Filtered_toplex_map::filtration(const Input_vertex_range &vertex_range) const{
- for(auto kv : toplex_maps)
- if(kv.second->membership(vertex_range))
- return kv.first; //min only because a map is ordered
- return std::numeric_limits<double>::quiet_NaN() ;
-}
-
-template <typename Input_vertex_range>
-bool Filtered_toplex_map::membership(const Input_vertex_range &vertex_range) const{
- for(auto kv : toplex_maps)
- if(kv.second->membership(vertex_range))
- return true;
- return false;
-}
-
-} //namespace Gudhi
-
-#endif /* FILTERED_TOPLEX_MAP_H */