diff options
author | ROUVREAU Vincent <vincent.rouvreau@inria.fr> | 2020-06-26 19:13:55 +0200 |
---|---|---|
committer | ROUVREAU Vincent <vincent.rouvreau@inria.fr> | 2020-06-26 19:13:55 +0200 |
commit | d19d6de6de4ef0319a1ec29671e5bb89b23415b7 (patch) | |
tree | e586682906be855b83f388a1449f82d670a2630c | |
parent | 8ccc304db8b118466dff3c3068f6884ba198dc97 (diff) |
free functions for utils
-rw-r--r-- | src/Collapse/utilities/distance_matrix_edge_collapse_rips_persistence.cpp | 12 | ||||
-rw-r--r-- | src/Collapse/utilities/point_cloud_edge_collapse_rips_persistence.cpp | 13 |
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(); } |