From 86ed81bc2eaecfba434986cd36936a5c67ea8a2c Mon Sep 17 00:00:00 2001 From: Ulrich Bauer Date: Wed, 8 Jul 2020 12:00:00 +0200 Subject: fix boundary enumerator corner case issue --- ripser.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/ripser.cpp b/ripser.cpp index 8ff65c4..3c91395 100644 --- a/ripser.cpp +++ b/ripser.cpp @@ -468,11 +468,12 @@ public: } bool has_next() { - v = parent.get_max_vertex(idx_below, k, v); - return (v != -1) && (binomial_coeff(v, k) <= idx_below); + return (k > 0); } diameter_entry_t next() { + v = parent.get_max_vertex(idx_below, k, v); + index_t face_index = idx_above - binomial_coeff(v, k) + idx_below; value_t face_diameter = parent.compute_diameter(face_index, dim - 1); @@ -483,11 +484,9 @@ public: idx_below -= binomial_coeff(v, k); idx_above += binomial_coeff(v, k - 1); - --v; --k; - + return diameter_entry_t(face_diameter, face_index, face_coefficient); - ; } }; -- cgit v1.2.3