diff options
author | ROUVREAU Vincent <vincent.rouvreau@inria.fr> | 2020-04-14 10:19:38 +0200 |
---|---|---|
committer | ROUVREAU Vincent <vincent.rouvreau@inria.fr> | 2020-04-14 10:19:38 +0200 |
commit | 8400ce874e0d17c6d6c80bbd4b34dff40a768fe0 (patch) | |
tree | 2ac686bffe0730772ada921b6fdf6c5ea44d7ecf /src/Collapse/example/edge_collapse_basic_example.cpp | |
parent | 0e756c2aa5793890500f4f849149c902e184ec1e (diff) |
Some documentation and examples
Diffstat (limited to 'src/Collapse/example/edge_collapse_basic_example.cpp')
-rw-r--r-- | src/Collapse/example/edge_collapse_basic_example.cpp | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/Collapse/example/edge_collapse_basic_example.cpp b/src/Collapse/example/edge_collapse_basic_example.cpp new file mode 100644 index 00000000..a154c6bb --- /dev/null +++ b/src/Collapse/example/edge_collapse_basic_example.cpp @@ -0,0 +1,45 @@ +#include <gudhi/Flag_complex_sparse_matrix.h> + +#include <iostream> +#include <vector> + +int main() { + // Type definitions + using Filtration_value = float; + using Vertex_handle = short; + using Flag_complex_sparse_matrix = Gudhi::collapse::Flag_complex_sparse_matrix<Vertex_handle, Filtration_value>; + using Filtered_edge = Flag_complex_sparse_matrix::Filtered_edge; + using Filtered_edge_list = std::vector<Filtered_edge>; + using Edge = Flag_complex_sparse_matrix::Edge; + + // 1 2 + // o---o + // |\ /| + // | x | + // |/ \| + // o---o + // 0 3 + Filtered_edge_list graph = {{{0, 1}, 1.}, + {{1, 2}, 1.}, + {{2, 3}, 1.}, + {{3, 0}, 1.}, + {{0, 2}, 2.}, + {{1, 3}, 2.}}; + + Flag_complex_sparse_matrix flag_complex_sparse_matrix(graph); + + Filtered_edge_list collapse_edges; + // Retrieve collapse edges from the output iterator + flag_complex_sparse_matrix.filtered_edge_collapse( + [&collapse_edges](std::pair<Vertex_handle, Vertex_handle> edge, Filtration_value filtration) { + collapse_edges.push_back({edge, filtration}); + }); + + for (Filtered_edge filtered_edge_from_collapse : collapse_edges) { + Edge edge_from_collapse = std::get<0>(filtered_edge_from_collapse); + std::cout << "fn[" << std::get<0>(edge_from_collapse) << ", " << std::get<1>(edge_from_collapse) << "] = " + << std::get<1>(filtered_edge_from_collapse) << std::endl; + } + + return 0; +} |