diff options
author | skachano <skachano@636b058d-ea47-450e-bf9e-a15bfbe3eedb> | 2016-09-30 10:06:39 +0000 |
---|---|---|
committer | skachano <skachano@636b058d-ea47-450e-bf9e-a15bfbe3eedb> | 2016-09-30 10:06:39 +0000 |
commit | 350b400fa0fb49c190b5b62934fa58869f23f4c4 (patch) | |
tree | 633ff8f3e1d6ce0fa31be1f7c6ef225de8ca7c16 /src/Witness_complex/include | |
parent | e1eab27ee280826a5c9c44d530679626da2efb1f (diff) |
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
Diffstat (limited to 'src/Witness_complex/include')
3 files changed, 8 insertions, 6 deletions
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<Id_distance_pair, INS_range> ActiveWitness; typedef typename INS_range::iterator INS_iterator; typedef Active_witness_iterator< ActiveWitness, Id_distance_pair, INS_iterator > iterator; + typedef typename std::list<Id_distance_pair> Table; - std::vector<Id_distance_pair> 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<Id_distance_pair> end_element_table_; - typename std::vector<Id_distance_pair>::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<Id_distance_pair, INS_iterator> Active_witness; - typedef typename std::vector<Id_distance_pair>::iterator Pair_iterator; + typedef typename std::list<Id_distance_pair>::iterator Pair_iterator; typedef typename Gudhi::witness_complex::Active_witness_iterator<Active_witness, Id_distance_pair, INS_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) |