diff options
author | vrouvrea <vrouvrea@636b058d-ea47-450e-bf9e-a15bfbe3eedb> | 2017-07-05 15:03:57 +0000 |
---|---|---|
committer | vrouvrea <vrouvrea@636b058d-ea47-450e-bf9e-a15bfbe3eedb> | 2017-07-05 15:03:57 +0000 |
commit | 093866604f986dded2db6a96d7dbc4b6d1f7194a (patch) | |
tree | 179a129ccac651c20750993c33d01d4c2c36e586 /src/Simplex_tree/example/block.cpp | |
parent | 7c205b2cb36b9d8b04556cc81afb4940f27743fc (diff) |
Fix default filtration value given by the graph_expansion method with blocker
git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/gudhi/branches/graph_expansion_with_blocker_oracle@2585 636b058d-ea47-450e-bf9e-a15bfbe3eedb
Former-commit-id: 38586e3c9a622c74c6b6658bdc0a6776c5ea5d5a
Diffstat (limited to 'src/Simplex_tree/example/block.cpp')
-rw-r--r-- | src/Simplex_tree/example/block.cpp | 30 |
1 files changed, 12 insertions, 18 deletions
diff --git a/src/Simplex_tree/example/block.cpp b/src/Simplex_tree/example/block.cpp index 75b8d1ea..67697b89 100644 --- a/src/Simplex_tree/example/block.cpp +++ b/src/Simplex_tree/example/block.cpp @@ -24,15 +24,13 @@ #include <gudhi/Simplex_tree.h> #include <iostream> -#include <utility> // for pair -#include <vector> using Simplex_tree = Gudhi::Simplex_tree<>; using Simplex_handle = Simplex_tree::Simplex_handle; int main(int argc, char * const argv[]) { - // Construct the Simplex Tree + // Construct the Simplex Tree with a 1-skeleton graph example Simplex_tree simplexTree; simplexTree.insert_simplex({0, 1}, 0.); @@ -46,31 +44,27 @@ int main(int argc, char * const argv[]) { simplexTree.insert_simplex({4, 5}, 8.); simplexTree.insert_simplex({4, 6}, 9.); simplexTree.insert_simplex({5, 6}, 10.); - simplexTree.insert_simplex({6}, 11.); - - std::cout << "********************************************************************\n"; - std::cout << "* The complex contains " << simplexTree.num_simplices() << " simplices\n"; - std::cout << " - dimension " << simplexTree.dimension() << " - filtration " << simplexTree.filtration() << "\n"; - std::cout << "* Iterator on Simplices in the filtration, with [filtration value]:\n"; - for (auto f_simplex : simplexTree.filtration_simplex_range()) { - std::cout << " " << "[" << simplexTree.filtration(f_simplex) << "] "; - for (auto vertex : simplexTree.simplex_vertex_range(f_simplex)) - std::cout << "(" << vertex << ")"; - std::cout << std::endl; - } + simplexTree.insert_simplex({6}, 10.); simplexTree.expansion_with_blockers(3, [&](Simplex_handle sh){ bool result = false; + std::cout << "Blocker on ["; + // User can loop on the vertices from the given simplex_handle i.e. for (auto vertex : simplexTree.simplex_vertex_range(sh)) { + // We block the expansion, if the vertex '6' is in the given list of vertices if (vertex == 6) result = true; - std::cout << "#(" << vertex << ")#"; + std::cout << vertex << ", "; } - std::cout << std::endl; + std::cout << "] ( " << simplexTree.filtration(sh); + // User can re-assign a new filtration value directly in the blocker (default is the maximal value of boudaries) + simplexTree.assign_filtration(sh, simplexTree.filtration(sh) + 1.); + + std::cout << " + 1. ) = " << result << std::endl; + return result; }); - simplexTree.initialize_filtration(); std::cout << "********************************************************************\n"; std::cout << "* The complex contains " << simplexTree.num_simplices() << " simplices\n"; std::cout << " - dimension " << simplexTree.dimension() << " - filtration " << simplexTree.filtration() << "\n"; |