summaryrefslogtreecommitdiff
path: root/src/Witness_complex
diff options
context:
space:
mode:
authorskachano <skachano@636b058d-ea47-450e-bf9e-a15bfbe3eedb>2016-11-29 20:59:17 +0000
committerskachano <skachano@636b058d-ea47-450e-bf9e-a15bfbe3eedb>2016-11-29 20:59:17 +0000
commit2ef24de87b91f0e71177b3190affb0263f09379b (patch)
tree573dbcdd7b5994562e2c6d2ac186b22938b489d0 /src/Witness_complex
parentfc77638a90ce98c4cee71f09a55821a510c011b1 (diff)
Got rid of the comparison of iterators of different ranges
git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/gudhi/branches/relaxed-witness@1804 636b058d-ea47-450e-bf9e-a15bfbe3eedb Former-commit-id: fb333a1b5ef20371393dfbf7a00a4fd73e3c92e7
Diffstat (limited to 'src/Witness_complex')
-rw-r--r--src/Witness_complex/include/gudhi/Active_witness/Active_witness.h3
-rw-r--r--src/Witness_complex/include/gudhi/Active_witness/Active_witness_iterator.h15
2 files changed, 7 insertions, 11 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 fce7d3d1..debbd286 100644
--- a/src/Witness_complex/include/gudhi/Active_witness/Active_witness.h
+++ b/src/Witness_complex/include/gudhi/Active_witness/Active_witness.h
@@ -44,9 +44,6 @@ public:
typedef Active_witness_iterator< ActiveWitness, Id_distance_pair, INS_iterator > iterator;
typedef typename std::list<Id_distance_pair> Table;
- Table end_element_table_ = {Id_distance_pair(-1,0)};
- typename Table::iterator end_pointer = end_element_table_.begin();
-
Table nearest_landmark_table_;
INS_range search_range_;
INS_iterator iterator_last_;
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 ae051bea..dd1501c3 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
@@ -54,18 +54,17 @@ class Active_witness_iterator
Active_witness *aw_;
Pair_iterator lh_; // landmark handle
- //INS_iterator iterator_last;
- //INS_iterator iterator_end;
+ bool is_end_; // true only if the pointer is end and there are no more neighbors to add
public:
Active_witness_iterator(Active_witness* aw)
- : aw_(aw), lh_(aw_->end_pointer)
+ : aw_(aw), lh_(aw_->nearest_landmark_table_.end()), is_end_(true)
{
}
Active_witness_iterator(Active_witness* aw, Pair_iterator lh)
- : aw_(aw), lh_(lh)
- {
+ : aw_(aw), lh_(lh), is_end_(false)
+ {
}
private :
@@ -77,7 +76,7 @@ private :
bool equal(const Iterator& other) const
{
- return (lh_ == other.lh_);
+ return (is_end_ == other.is_end_) || (lh_ == other.lh_);
}
void increment()
@@ -85,7 +84,7 @@ private :
// if neighbor search is at its end, check if lh_++ is end
if (aw_->iterator_last_ == aw_->iterator_end_) {
if (lh_++ == aw_->nearest_landmark_table_.end()) {
- lh_ = aw_->end_pointer;
+ is_end_ = true;
return;
}
return;
@@ -94,7 +93,7 @@ private :
if (lh_->first == aw_->iterator_last_->first) {
// if the next iterator is end, lh_it = end pointer
if (++(aw_->iterator_last_) == aw_->iterator_end_) {
- lh_ = aw_->end_pointer;
+ is_end_ = true;
return;
}
else