summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Bauer <mail@ulrich-bauer.org>2020-07-08 12:00:00 +0200
committerUlrich Bauer <mail@ulrich-bauer.org>2020-07-08 12:00:00 +0200
commit86ed81bc2eaecfba434986cd36936a5c67ea8a2c (patch)
tree65cd8cd10ae82a6fbb8ca338caa03942f1c68d7f
parent48c0e693979684d44ca6143497f3ff88a5987422 (diff)
fix boundary enumerator corner case issue
-rw-r--r--ripser.cpp9
1 files 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);
- ;
}
};