summaryrefslogtreecommitdiff
path: root/src/Collapse
diff options
context:
space:
mode:
authorROUVREAU Vincent <vincent.rouvreau@inria.fr>2020-06-26 19:13:55 +0200
committerROUVREAU Vincent <vincent.rouvreau@inria.fr>2020-06-26 19:13:55 +0200
commitd19d6de6de4ef0319a1ec29671e5bb89b23415b7 (patch)
treee586682906be855b83f388a1449f82d670a2630c /src/Collapse
parent8ccc304db8b118466dff3c3068f6884ba198dc97 (diff)
free functions for utils
Diffstat (limited to 'src/Collapse')
-rw-r--r--src/Collapse/utilities/distance_matrix_edge_collapse_rips_persistence.cpp12
-rw-r--r--src/Collapse/utilities/point_cloud_edge_collapse_rips_persistence.cpp13
2 files changed, 7 insertions, 18 deletions
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 5800e9e8..11ee5871 100644
--- a/src/Collapse/utilities/distance_matrix_edge_collapse_rips_persistence.cpp
+++ b/src/Collapse/utilities/distance_matrix_edge_collapse_rips_persistence.cpp
@@ -21,9 +21,8 @@ using Simplex_tree = Gudhi::Simplex_tree<Gudhi::Simplex_tree_options_fast_persis
using Filtration_value = Simplex_tree::Filtration_value;
using Vertex_handle = Simplex_tree::Vertex_handle;
-using Flag_complex_edge_collapser = Gudhi::collapse::Flag_complex_edge_collapser<Vertex_handle, Filtration_value>;
-using Filtered_edge = Flag_complex_edge_collapser::Filtered_edge;
-using Proximity_graph = Gudhi::Proximity_graph<Flag_complex_edge_collapser>;
+using Filtered_edge = std::tuple<Vertex_handle, Vertex_handle, Filtration_value>;
+using Proximity_graph = Gudhi::Proximity_graph<Simplex_tree>;
using Field_Zp = Gudhi::persistent_cohomology::Field_Zp;
using Persistent_cohomology = Gudhi::persistent_cohomology::Persistent_cohomology<Simplex_tree, Field_Zp>;
@@ -63,12 +62,7 @@ int main(int argc, char* argv[]) {
std::vector<Filtered_edge> edges_list(edges_from_graph.begin(), edges_from_graph.end());
std::vector<Filtered_edge> remaining_edges;
for (int iter = 0; iter < edge_collapse_iter_nb; iter++) {
- Flag_complex_edge_collapser edge_collapser(edges_list);
- edge_collapser.process_edges(
- [&remaining_edges](Vertex_handle u, Vertex_handle v, Filtration_value filtration) {
- // insert the edge
- remaining_edges.emplace_back(u, v, filtration);
- });
+ auto remaining_edges = Gudhi::collapse::flag_complex_collapse_edges(edges_list);
edges_list = std::move(remaining_edges);
remaining_edges.clear();
}
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 9086152b..0eea742c 100644
--- a/src/Collapse/utilities/point_cloud_edge_collapse_rips_persistence.cpp
+++ b/src/Collapse/utilities/point_cloud_edge_collapse_rips_persistence.cpp
@@ -20,6 +20,7 @@
#include<utility> // for std::pair
#include<vector>
+#include<tuple>
// Types definition
@@ -29,9 +30,8 @@ using Vertex_handle = Simplex_tree::Vertex_handle;
using Point = std::vector<Filtration_value>;
using Vector_of_points = std::vector<Point>;
-using Flag_complex_edge_collapser = Gudhi::collapse::Flag_complex_edge_collapser<Vertex_handle, Filtration_value>;
-using Filtered_edge = Flag_complex_edge_collapser::Filtered_edge;
-using Proximity_graph = Gudhi::Proximity_graph<Flag_complex_edge_collapser>;
+using Filtered_edge = std::tuple<Vertex_handle, Vertex_handle, Filtration_value>;
+using Proximity_graph = Gudhi::Proximity_graph<Simplex_tree>;
using Field_Zp = Gudhi::persistent_cohomology::Field_Zp;
using Persistent_cohomology = Gudhi::persistent_cohomology::Persistent_cohomology<Simplex_tree, Field_Zp>;
@@ -90,12 +90,7 @@ int main(int argc, char* argv[]) {
std::vector<Filtered_edge> remaining_edges;
for (int iter = 0; iter < edge_collapse_iter_nb; iter++) {
- Flag_complex_edge_collapser edge_collapser(edges_list);
- edge_collapser.process_edges(
- [&remaining_edges](Vertex_handle u, Vertex_handle v, Filtration_value filtration) {
- // insert the edge
- remaining_edges.emplace_back(u, v, filtration);
- });
+ auto remaining_edges = Gudhi::collapse::flag_complex_collapse_edges(edges_list);
edges_list = std::move(remaining_edges);
remaining_edges.clear();
}