From 350b400fa0fb49c190b5b62934fa58869f23f4c4 Mon Sep 17 00:00:00 2001 From: skachano Date: Fri, 30 Sep 2016 10:06:39 +0000 Subject: Weak Witness + Active Witness. It seems to work. git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/gudhi/branches/relaxed-witness@1595 636b058d-ea47-450e-bf9e-a15bfbe3eedb Former-commit-id: 04b616907f9173e7b3cffebcd8b167a0413eb687 --- src/Witness_complex/include/gudhi/Active_witness/Active_witness.h | 7 ++++--- .../include/gudhi/Active_witness/Active_witness_iterator.h | 5 +++-- src/Witness_complex/include/gudhi/Witness_complex.h | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) (limited to 'src/Witness_complex/include') diff --git a/src/Witness_complex/include/gudhi/Active_witness/Active_witness.h b/src/Witness_complex/include/gudhi/Active_witness/Active_witness.h index 87981c25..7b169784 100644 --- a/src/Witness_complex/include/gudhi/Active_witness/Active_witness.h +++ b/src/Witness_complex/include/gudhi/Active_witness/Active_witness.h @@ -38,8 +38,9 @@ public: typedef Active_witness ActiveWitness; typedef typename INS_range::iterator INS_iterator; typedef Active_witness_iterator< ActiveWitness, Id_distance_pair, INS_iterator > iterator; + typedef typename std::list Table; - std::vector nearest_landmark_table_; + Table nearest_landmark_table_; INS_range search_range_; INS_iterator iterator_last_; INS_iterator iterator_end_; @@ -60,8 +61,8 @@ public: return iterator(this); } - std::vector end_element_table_; - typename std::vector::iterator end_pointer = end_element_table_.end(); + Table end_element_table_ = {Id_distance_pair(-1,0)}; + typename Table::iterator end_pointer = end_element_table_.begin(); }; } diff --git a/src/Witness_complex/include/gudhi/Active_witness/Active_witness_iterator.h b/src/Witness_complex/include/gudhi/Active_witness/Active_witness_iterator.h index cd4f4b92..658405f6 100644 --- a/src/Witness_complex/include/gudhi/Active_witness/Active_witness_iterator.h +++ b/src/Witness_complex/include/gudhi/Active_witness/Active_witness_iterator.h @@ -42,7 +42,7 @@ class Active_witness_iterator friend class boost::iterator_core_access; //typedef Active_witness Active_witness; - typedef typename std::vector::iterator Pair_iterator; + typedef typename std::list::iterator Pair_iterator; typedef typename Gudhi::witness_complex::Active_witness_iterator Iterator; @@ -57,7 +57,8 @@ public: { } - Active_witness_iterator(Active_witness* aw, Pair_iterator lh_) + Active_witness_iterator(Active_witness* aw, Pair_iterator lh) + : aw_(aw), lh_(lh) { } diff --git a/src/Witness_complex/include/gudhi/Witness_complex.h b/src/Witness_complex/include/gudhi/Witness_complex.h index c6dff3bf..158f92ec 100644 --- a/src/Witness_complex/include/gudhi/Witness_complex.h +++ b/src/Witness_complex/include/gudhi/Witness_complex.h @@ -237,7 +237,7 @@ private: } else if (dim == 0) for (; l_it->second - alpha2 <= norelax_dist2 && l_it != end; ++l_it) { - simplex.push_back(l_it->second); + simplex.push_back(l_it->first); double filtration_value = 0; // if norelax_dist is infinite, relaxation is 0. if (l_it->second > norelax_dist2) -- cgit v1.2.3