summaryrefslogtreecommitdiff
path: root/src/Toplex_map
diff options
context:
space:
mode:
authorvrouvrea <vrouvrea@636b058d-ea47-450e-bf9e-a15bfbe3eedb>2018-05-15 14:16:45 +0000
committervrouvrea <vrouvrea@636b058d-ea47-450e-bf9e-a15bfbe3eedb>2018-05-15 14:16:45 +0000
commite94d787c89a7c9a71c86118bc3e048241e9c5ca1 (patch)
treedac3c7a5060bc7178602dc0f4ca3128602580530 /src/Toplex_map
parent6a450d80816647cbd5a26fbe62b7573c5f7b7ec7 (diff)
Add examples with Fake_simplex_tree
git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/gudhi/branches/toplex_map@3442 636b058d-ea47-450e-bf9e-a15bfbe3eedb Former-commit-id: ccdd8f43c0e86a98efd3f9d7e9c7b8728ebd27a7
Diffstat (limited to 'src/Toplex_map')
-rw-r--r--src/Toplex_map/benchmark/CMakeLists.txt2
-rw-r--r--src/Toplex_map/example/CMakeLists.txt5
-rw-r--r--src/Toplex_map/example/Fake_simplex_tree.h19
-rw-r--r--src/Toplex_map/example/Simple_toplex_map.cpp26
-rw-r--r--src/Toplex_map/example/Toplex_map_from_cliques_of_graph.cpp5
5 files changed, 30 insertions, 27 deletions
diff --git a/src/Toplex_map/benchmark/CMakeLists.txt b/src/Toplex_map/benchmark/CMakeLists.txt
index e4cfab6f..2c67892c 100644
--- a/src/Toplex_map/benchmark/CMakeLists.txt
+++ b/src/Toplex_map/benchmark/CMakeLists.txt
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 2.6)
-project(Toplex_map_examples)
+project(Toplex_map_benchmark)
add_executable(toplex_map_chrono chrono.cpp)
diff --git a/src/Toplex_map/example/CMakeLists.txt b/src/Toplex_map/example/CMakeLists.txt
new file mode 100644
index 00000000..051d7bcd
--- /dev/null
+++ b/src/Toplex_map/example/CMakeLists.txt
@@ -0,0 +1,5 @@
+cmake_minimum_required(VERSION 2.6)
+project(Toplex_map_examples)
+
+add_executable(Toplex_map_example_simple Simple_toplex_map.cpp)
+add_executable(Toplex_map_example_from_cliques_of_graph Toplex_map_from_cliques_of_graph.cpp)
diff --git a/src/Toplex_map/example/Fake_simplex_tree.h b/src/Toplex_map/example/Fake_simplex_tree.h
index 8187e24e..c3d87e47 100644
--- a/src/Toplex_map/example/Fake_simplex_tree.h
+++ b/src/Toplex_map/example/Fake_simplex_tree.h
@@ -5,6 +5,7 @@
#include <gudhi/Simplex_tree.h>
#include <gudhi/Filtered_toplex_map.h>
+#include <gudhi/Lazy_Toplex_map.h>
#include <boost/graph/adjacency_list.hpp>
#include <boost/graph/bron_kerbosch_all_cliques.hpp>
@@ -117,39 +118,34 @@ bool Fake_simplex_tree::all_facets_inside(const Input_vertex_range &vertex_range
if(!membership(s)) return false;
return true;
}
-/*
+
std::size_t Fake_simplex_tree::dimension() const {
std::size_t max = 0;
for(const Simplex& s : max_simplices())
max = std::max(max, s.size());
return max-1;
}
-*/
+
std::size_t Fake_simplex_tree::dimension(Simplex_ptr& sptr) const{
return sptr->size();
}
-/*
+
std::size_t Fake_simplex_tree::num_simplices() const {
- //return filtration_simplex_range().size();
return max_simplices().size();
}
-*/
+
std::size_t Fake_simplex_tree::num_vertices() const {
- /*
std::unordered_set<Toplex_map::Vertex> vertices;
for(const Toplex_map::Simplex& s : max_simplices())
for (Toplex_map::Vertex v : s)
vertices.emplace(v);
return vertices.size();
- */
- return 0;
}
Toplex_map::Simplex Fake_simplex_tree::simplex_vertex_range(const Simplex& s) const {
return s;
}
-/*
std::vector<Toplex_map::Simplex> Fake_simplex_tree::max_simplices() const{
std::vector<Toplex_map::Simplex> max_s;
for(auto kv : toplex_maps)
@@ -157,8 +153,7 @@ std::vector<Toplex_map::Simplex> Fake_simplex_tree::max_simplices() const{
max_s.emplace_back(*sptr);
return max_s;
}
-*/
-/*
+
std::vector<Toplex_map::Simplex> Fake_simplex_tree::filtration_simplex_range(int d) const{
std::vector<Toplex_map::Simplex> m = max_simplices();
std::vector<Toplex_map::Simplex> range;
@@ -180,7 +175,7 @@ std::vector<Toplex_map::Simplex> Fake_simplex_tree::filtration_simplex_range(int
std::vector<Toplex_map::Simplex> Fake_simplex_tree::skeleton_simplex_range(int d) const{
return filtration_simplex_range(d);
-}*/
+}
Toplex_map::Vertex Fake_simplex_tree::contraction(const Toplex_map::Vertex x, const Toplex_map::Vertex y){
for(auto kv : toplex_maps)
diff --git a/src/Toplex_map/example/Simple_toplex_map.cpp b/src/Toplex_map/example/Simple_toplex_map.cpp
index 4fa735a6..d383e84b 100644
--- a/src/Toplex_map/example/Simple_toplex_map.cpp
+++ b/src/Toplex_map/example/Simple_toplex_map.cpp
@@ -21,7 +21,7 @@
*/
#include <gudhi/graph_simplicial_complex.h>
-#include "gudhi/Fake_simplex_tree.h"
+#include "Fake_simplex_tree.h"
#include <iostream>
#include <utility> // for pair
@@ -184,10 +184,12 @@ int main(int argc, char * const argv[]) {
<< " simplices - dimension is " << t_map.dimension() << "\n";
std::cout << "* Iterator on Simplices in the filtration, with [filtration value]:\n";
for (auto f_simplex : t_map.filtration_simplex_range()) {
- std::cout << " " << "[" << t_map.filtration(f_simplex) << "] ";
- for (auto vertex : t_map.simplex_vertex_range(f_simplex))
- std::cout << "(" << vertex << ")";
- std::cout << std::endl;
+ if (f_simplex.size() > 0) {
+ std::cout << " " << "[" << t_map.filtration(f_simplex) << "] ";
+ for (auto vertex : t_map.simplex_vertex_range(f_simplex))
+ std::cout << "(" << vertex << ")";
+ std::cout << std::endl;
+ }
}
// [0.1] 0
// [0.1] 1
@@ -201,13 +203,15 @@ int main(int argc, char * const argv[]) {
std::cout << std::endl << std::endl;
- std::cout << "Iterator on skeleton:" << std::endl;
- for (auto f_simplex : t_map.skeleton_simplex_range()) {
- std::cout << " " << "[" << t_map.filtration(f_simplex) << "] ";
- for (auto vertex : t_map.simplex_vertex_range(f_simplex)) {
- std::cout << vertex << " ";
+ std::cout << "Iterator on skeleton[1]:" << std::endl;
+ for (auto f_simplex : t_map.skeleton_simplex_range(1)) {
+ if (f_simplex.size() > 0) {
+ std::cout << " " << "[" << t_map.filtration(f_simplex) << "] ";
+ for (auto vertex : t_map.simplex_vertex_range(f_simplex)) {
+ std::cout << vertex << " ";
+ }
+ std::cout << std::endl;
}
- std::cout << std::endl;
}
return 0;
diff --git a/src/Toplex_map/example/Toplex_map_from_cliques_of_graph.cpp b/src/Toplex_map/example/Toplex_map_from_cliques_of_graph.cpp
index 3df0cbd9..c43f1b69 100644
--- a/src/Toplex_map/example/Toplex_map_from_cliques_of_graph.cpp
+++ b/src/Toplex_map/example/Toplex_map_from_cliques_of_graph.cpp
@@ -21,7 +21,7 @@
*/
#include <gudhi/reader_utils.h>
-#include "gudhi/Fake_simplex_tree.h"
+#include "Fake_simplex_tree.h"
#include <iostream>
#include <ctime>
@@ -82,7 +82,7 @@ int main(int argc, char * const argv[]) {
std::cout << std::endl << std::endl;
std::cout << "Iterator on skeleton:" << std::endl;
- for (auto f_simplex : t_map.skeleton_simplex_range()) {
+ for (auto f_simplex : t_map.skeleton_simplex_range(max_dim)) {
std::cout << " " << "[" << t_map.filtration(f_simplex) << "] ";
for (auto vertex : t_map.simplex_vertex_range(f_simplex)) {
std::cout << vertex << " ";
@@ -91,4 +91,3 @@ int main(int argc, char * const argv[]) {
}
return 0;
}
-}