diff options
author | ROUVREAU Vincent <vincent.rouvreau@inria.fr> | 2020-06-18 15:18:00 +0200 |
---|---|---|
committer | ROUVREAU Vincent <vincent.rouvreau@inria.fr> | 2020-06-18 15:18:00 +0200 |
commit | 4da6454bc876d5509de8fa62484389c4092e3623 (patch) | |
tree | 9408aa9488e14e9d2f56787852927e3c72f54655 /src/Collapse | |
parent | 08307b231e8fe2b044ade409b924f56b3eb7ebfe (diff) |
Code review: sort persistence intervals by length, dimension is no more a criteria
Diffstat (limited to 'src/Collapse')
-rw-r--r-- | src/Collapse/example/edge_collapse_conserve_persistence.cpp | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/src/Collapse/example/edge_collapse_conserve_persistence.cpp b/src/Collapse/example/edge_collapse_conserve_persistence.cpp index 8e03fa86..e90ea3ad 100644 --- a/src/Collapse/example/edge_collapse_conserve_persistence.cpp +++ b/src/Collapse/example/edge_collapse_conserve_persistence.cpp @@ -37,17 +37,14 @@ using Persistence_pair = std::tuple<int, Filtration_value, Filtration_value>; /* * Compare two intervals by dimension, then by length. */ -struct cmp_intervals_by_dim_then_length { - explicit cmp_intervals_by_dim_then_length(Simplex_tree * sc) +struct cmp_intervals_by_length { + explicit cmp_intervals_by_length(Simplex_tree * sc) : sc_(sc) { } template<typename Persistent_interval> bool operator()(const Persistent_interval & p1, const Persistent_interval & p2) { - if (sc_->dimension(get < 0 > (p1)) == sc_->dimension(get < 0 > (p2))) - return (sc_->filtration(get < 1 > (p1)) - sc_->filtration(get < 0 > (p1)) - > sc_->filtration(get < 1 > (p2)) - sc_->filtration(get < 0 > (p2))); - else - return (sc_->dimension(get < 0 > (p1)) > sc_->dimension(get < 0 > (p2))); + return (sc_->filtration(get < 1 > (p1)) - sc_->filtration(get < 0 > (p1)) + > sc_->filtration(get < 1 > (p2)) - sc_->filtration(get < 0 > (p2))); } Simplex_tree* sc_; }; @@ -67,7 +64,7 @@ std::vector<Persistence_pair> get_persistence_pairs(Simplex_tree& st, int ambien // Default min_interval_length = 0. pcoh.compute_persistent_cohomology(); // Custom sort and output persistence - cmp_intervals_by_dim_then_length cmp(&st); + cmp_intervals_by_length cmp(&st); auto persistent_pairs = pcoh.get_persistent_pairs(); std::sort(std::begin(persistent_pairs), std::end(persistent_pairs), cmp); for (auto pair : persistent_pairs) { |