summaryrefslogtreecommitdiff
path: root/src/Collapse
diff options
context:
space:
mode:
authorROUVREAU Vincent <vincent.rouvreau@inria.fr>2020-06-04 16:39:24 +0200
committerROUVREAU Vincent <vincent.rouvreau@inria.fr>2020-06-04 16:39:24 +0200
commita106902b9f52115ec481029df194dffc4685e2ca (patch)
treef66caa346374a1d45d2c2cf35ff78c111e162239 /src/Collapse
parent52fe5b2c6841dc15000896c60e0d6a12591bdc29 (diff)
Fix tests and utils
Diffstat (limited to 'src/Collapse')
-rw-r--r--src/Collapse/example/CMakeLists.txt6
-rw-r--r--src/Collapse/example/edge_collapse_conserve_persistence.cpp15
-rw-r--r--src/Collapse/utilities/distance_matrix_edge_collapse_rips_persistence.cpp4
-rw-r--r--src/Collapse/utilities/point_cloud_edge_collapse_rips_persistence.cpp6
4 files changed, 21 insertions, 10 deletions
diff --git a/src/Collapse/example/CMakeLists.txt b/src/Collapse/example/CMakeLists.txt
index 96354489..ba0e75e3 100644
--- a/src/Collapse/example/CMakeLists.txt
+++ b/src/Collapse/example/CMakeLists.txt
@@ -17,7 +17,7 @@ if (TBB_FOUND)
endif()
add_test(NAME Edge_collapse_conserve_persistence_1 COMMAND $<TARGET_FILE:Edge_collapse_conserve_persistence>
- "${CMAKE_SOURCE_DIR}/data/points/tore3D_300.off" "1.")
+ "${CMAKE_SOURCE_DIR}/data/points/tore3D_300.off" "0.2")
- add_test(NAME Edge_collapse_conserve_persistence_2 COMMAND $<TARGET_FILE:Edge_collapse_conserve_persistence>
- "${CMAKE_SOURCE_DIR}/data/points/tore3D_300.off" "2.")
+add_test(NAME Edge_collapse_conserve_persistence_2 COMMAND $<TARGET_FILE:Edge_collapse_conserve_persistence>
+ "${CMAKE_SOURCE_DIR}/data/points/tore3D_300.off" "1.8")
diff --git a/src/Collapse/example/edge_collapse_conserve_persistence.cpp b/src/Collapse/example/edge_collapse_conserve_persistence.cpp
index 0beef061..93982081 100644
--- a/src/Collapse/example/edge_collapse_conserve_persistence.cpp
+++ b/src/Collapse/example/edge_collapse_conserve_persistence.cpp
@@ -109,28 +109,31 @@ int main(int argc, char* argv[]) {
exit(-1);
}
+ int ambient_dim = point_vector[0].size();
+
// ***** Simplex tree from a flag complex built after collapse *****
Flag_complex_sparse_matrix mat_filt_edge_coll(proximity_graph);
Simplex_tree stree_from_collapse;
+ for (Vertex_handle vertex = 0; vertex < point_vector.size(); vertex++) {
+ // insert the vertex with a 0. filtration value just like a Rips
+ stree_from_collapse.insert_simplex({vertex}, 0.);
+ }
mat_filt_edge_coll.filtered_edge_collapse(
[&stree_from_collapse](const std::vector<Vertex_handle>& edge, Filtration_value filtration) {
- // insert the 2 vertices with a 0. filtration value just like a Rips
- stree_from_collapse.insert_simplex({edge[0]}, 0.);
- stree_from_collapse.insert_simplex({edge[1]}, 0.);
// insert the edge
stree_from_collapse.insert_simplex(edge, filtration);
});
+ std::vector<Persistence_pair> ppairs_from_collapse = get_persistence_pairs(stree_from_collapse, ambient_dim);
+
// ***** Simplex tree from the complete flag complex *****
Simplex_tree stree_wo_collapse;
stree_wo_collapse.insert_graph(proximity_graph);
- int ambient_dim = point_vector[0].size();
-
- std::vector<Persistence_pair> ppairs_from_collapse = get_persistence_pairs(stree_from_collapse, ambient_dim);
std::vector<Persistence_pair> ppairs_wo_collapse = get_persistence_pairs(stree_wo_collapse, ambient_dim);
+ // ***** Comparison *****
if (ppairs_wo_collapse.size() != ppairs_from_collapse.size()) {
std::cerr << "Number of persistence pairs with collapse is " << ppairs_from_collapse.size() << std::endl;
std::cerr << "Number of persistence pairs without collapse is " << ppairs_wo_collapse.size() << std::endl;
diff --git a/src/Collapse/utilities/distance_matrix_edge_collapse_rips_persistence.cpp b/src/Collapse/utilities/distance_matrix_edge_collapse_rips_persistence.cpp
index f39e9764..1ac017c2 100644
--- a/src/Collapse/utilities/distance_matrix_edge_collapse_rips_persistence.cpp
+++ b/src/Collapse/utilities/distance_matrix_edge_collapse_rips_persistence.cpp
@@ -93,6 +93,10 @@ int main(int argc, char* argv[]) {
Flag_complex_sparse_matrix flag_complex(proximity_graph);
Simplex_tree stree;
+ for (Vertex_handle vertex = 0; vertex < distances.size(); vertex++) {
+ // insert the vertex with a 0. filtration value just like a Rips
+ stree.insert_simplex({vertex}, 0.);
+ }
flag_complex.filtered_edge_collapse(
[&stree](std::vector<Vertex_handle> edge, Filtration_value filtration) {
// insert the 2 vertices with a 0. filtration value just like a Rips
diff --git a/src/Collapse/utilities/point_cloud_edge_collapse_rips_persistence.cpp b/src/Collapse/utilities/point_cloud_edge_collapse_rips_persistence.cpp
index 067b29e3..9624d516 100644
--- a/src/Collapse/utilities/point_cloud_edge_collapse_rips_persistence.cpp
+++ b/src/Collapse/utilities/point_cloud_edge_collapse_rips_persistence.cpp
@@ -68,7 +68,7 @@ int main(int argc, char* argv[]) {
std::cout << "Successfully read " << point_vector.size() << " point_vector.\n";
std::cout << "Ambient dimension is " << point_vector[0].size() << ".\n";
- Proximity_graph proximity_graph = Gudhi::compute_proximity_graph<Simplex_tree>(off_reader.get_point_cloud(),
+ Proximity_graph proximity_graph = Gudhi::compute_proximity_graph<Simplex_tree>(point_vector,
threshold,
Gudhi::Euclidean_distance());
@@ -80,6 +80,10 @@ int main(int argc, char* argv[]) {
Flag_complex_sparse_matrix mat_filt_edge_coll(proximity_graph);
Simplex_tree stree;
+ for (Vertex_handle vertex = 0; vertex < point_vector.size(); vertex++) {
+ // insert the vertex with a 0. filtration value just like a Rips
+ stree.insert_simplex({vertex}, 0.);
+ }
mat_filt_edge_coll.filtered_edge_collapse(
[&stree](const std::vector<Vertex_handle>& edge, Filtration_value filtration) {
// insert the 2 vertices with a 0. filtration value just like a Rips