From 4fc9585997bea869a97ad86f5f2afec7c57b58f5 Mon Sep 17 00:00:00 2001 From: Ulrich Bauer Date: Mon, 4 Jan 2021 15:47:41 +0100 Subject: more efficient coboundary enumerators --- ripser.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'ripser.cpp') diff --git a/ripser.cpp b/ripser.cpp index 74f2354..f9d5606 100644 --- a/ripser.cpp +++ b/ripser.cpp @@ -854,13 +854,17 @@ public: const ripser& _parent) : idx_below(get_index(_simplex)), idx_above(0), k(_dim + 1), vertices(_dim + 1), simplex(_simplex), modulus(_parent.modulus), dist(_parent.dist), - binomial_coeff(_parent.binomial_coeff) { + binomial_coeff(_parent.binomial_coeff), + neighbor_it(_dim + 1), neighbor_end(_dim + 1) { + _parent.get_simplex_vertices(idx_below, _dim, _parent.n, vertices.rbegin()); - for (auto v : vertices) { - neighbor_it.push_back(dist.neighbors[v].rbegin()); - neighbor_end.push_back(dist.neighbors[v].rend()); + for (size_t i = 0; i <= _dim; ++i) { + auto v = vertices[i]; + neighbor_it[i] = dist.neighbors[v].rbegin(); + neighbor_end[i] = dist.neighbors[v].rend(); } + } bool has_next(bool all_cofacets = true) { -- cgit v1.2.3