From c68ef729971d88818ceae9f1aa8e33f62a4dea7a Mon Sep 17 00:00:00 2001 From: glisse Date: Wed, 31 Jan 2018 13:41:06 +0000 Subject: Add example. git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/gudhi/branches/sparserips-glisse@3195 636b058d-ea47-450e-bf9e-a15bfbe3eedb Former-commit-id: b8ded704563c6794c098f9b80b1a5e0200e84694 --- src/Rips_complex/example/CMakeLists.txt | 4 +++ src/Rips_complex/example/example_sparse_rips.cpp | 38 ++++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 src/Rips_complex/example/example_sparse_rips.cpp (limited to 'src/Rips_complex/example') diff --git a/src/Rips_complex/example/CMakeLists.txt b/src/Rips_complex/example/CMakeLists.txt index 2940f164..8a22a6d8 100644 --- a/src/Rips_complex/example/CMakeLists.txt +++ b/src/Rips_complex/example/CMakeLists.txt @@ -11,11 +11,15 @@ add_executable ( Rips_complex_example_one_skeleton_from_distance_matrix example_ add_executable ( Rips_complex_example_from_csv_distance_matrix example_rips_complex_from_csv_distance_matrix_file.cpp ) +# Point cloud +add_executable ( Rips_complex_example_sparse example_sparse_rips_complex.cpp ) + if (TBB_FOUND) target_link_libraries(Rips_complex_example_from_off ${TBB_LIBRARIES}) target_link_libraries(Rips_complex_example_one_skeleton_from_points ${TBB_LIBRARIES}) target_link_libraries(Rips_complex_example_one_skeleton_from_distance_matrix ${TBB_LIBRARIES}) target_link_libraries(Rips_complex_example_from_csv_distance_matrix ${TBB_LIBRARIES}) + target_link_libraries(Rips_complex_example_sparse ${TBB_LIBRARIES}) endif() add_test(NAME Rips_complex_example_one_skeleton_from_points diff --git a/src/Rips_complex/example/example_sparse_rips.cpp b/src/Rips_complex/example/example_sparse_rips.cpp new file mode 100644 index 00000000..49725f0a --- /dev/null +++ b/src/Rips_complex/example/example_sparse_rips.cpp @@ -0,0 +1,38 @@ +#include +#include +#include + +#include +#include + +int main() { + using Point = std::vector; + using Simplex_tree = Gudhi::Simplex_tree; + using Filtration_value = Simplex_tree::Filtration_value; + using Complex = Gudhi::rips_complex::Sparse_rips_complex; + + Point points[] = { + {1.0, 1.0}, + {7.0, 0.0}, + {4.0, 6.0}, + {9.0, 6.0}, + {0.0, 14.0}, + {2.0, 19.0}, + {9.0, 17.0}}; + + // ---------------------------------------------------------------------------- + // Init from Euclidean points + // ---------------------------------------------------------------------------- + double epsilon = 2; // very rough, no guarantees + Complex cpx(points, Gudhi::Euclidean_distance(), epsilon); + + Simplex_tree stree; + cpx.create_complex(stree, 10); + + // ---------------------------------------------------------------------------- + // Display information about the complex + // ---------------------------------------------------------------------------- + std::cout << "Sparse Rips complex is of dimension " << stree.dimension() << + " - " << stree.num_simplices() << " simplices - " << + stree.num_vertices() << " vertices." << std::endl; +} -- cgit v1.2.3