From b88e15e694e4ebe87604b40b6e23db6bada6963e Mon Sep 17 00:00:00 2001 From: Frank Dellaert Date: Sun, 27 Oct 2013 03:45:12 +0000 Subject: [PATCH] Faster variant of DSFMap, if not as elegant. --- gtsam_unstable/base/DSFMap.h | 70 +++++++++--------- .../base/tests/timeDSFvariants2.xlsx | Bin 0 -> 64533 bytes 2 files changed, 33 insertions(+), 37 deletions(-) create mode 100644 gtsam_unstable/base/tests/timeDSFvariants2.xlsx diff --git a/gtsam_unstable/base/DSFMap.h b/gtsam_unstable/base/DSFMap.h index dc6b99dbd..3882ab220 100644 --- a/gtsam_unstable/base/DSFMap.h +++ b/gtsam_unstable/base/DSFMap.h @@ -35,45 +35,41 @@ protected: /// We store the forest in an STL map, but parents are done with pointers struct Entry { - KEY key_; + typedef std::map Map; + typename Map::iterator parent_; + Entry() {} size_t rank_; - Entry* parent_; - Entry(KEY key) : - key_(key), rank_(0), parent_(0) { - } - void makeRoot() { - parent_ = this; - } }; - typedef std::map Map; - mutable Map entries_; + typedef typename Entry::Map::iterator iterator; + mutable typename Entry::Map entries_; /// Given key, find iterator to initial entry - typename Map::iterator find__(const KEY& key) const { - typename Map::iterator it = entries_.find(key); + iterator find__(const KEY& key) const { + static const Entry empty; + iterator it = entries_.find(key); // if key does not exist, create and return itself if (it == entries_.end()) { - it = entries_.insert(it, std::make_pair(key, Entry(key))); - it->second.makeRoot(); + it = entries_.insert(std::make_pair(key, empty)).first; + it->second.parent_ = it; + it->second.rank_ = 0; } return it; } /// Given iterator to initial entry, find the root Entry - Entry* find_(const typename Map::iterator& it) const { + iterator find_(const iterator& it) const { // follow parent pointers until we reach set representative - Entry* parent = it->second.parent_; - while (parent->parent_ != parent) - parent = parent->parent_; // not yet, recurse! - it->second.parent_ = parent; // path compression + iterator& parent = it->second.parent_; + if (parent != it) + parent = find_(parent); // not yet, recurse! return parent; } /// Given key, find the root Entry - Entry* find_(const KEY& key) const { - typename Map::iterator it = find__(key); - return find_(it); + inline iterator find_(const KEY& key) const { + iterator initial = find__(key); + return find_(initial); } public: @@ -85,38 +81,38 @@ public: } /// Given key, find the representative key for the set in which it lives - KEY find(const KEY& key) const { - Entry* root = find_(key); - return root->key_; + inline KEY find(const KEY& key) const { + iterator root = find_(key); + return root->first; } /// Merge two sets void merge(const KEY& x, const KEY& y) { // straight from http://en.wikipedia.org/wiki/Disjoint-set_data_structure - Entry* xRoot = find_(x); - Entry* yRoot = find_(y); + iterator xRoot = find_(x); + iterator yRoot = find_(y); if (xRoot == yRoot) return; // Merge sets - if (xRoot->rank_ < yRoot->rank_) - xRoot->parent_ = yRoot; - else if (xRoot->rank_ > yRoot->rank_) - yRoot->parent_ = xRoot; + if (xRoot->second.rank_ < yRoot->second.rank_) + xRoot->second.parent_ = yRoot; + else if (xRoot->second.rank_ > yRoot->second.rank_) + yRoot->second.parent_ = xRoot; else { - yRoot->parent_ = xRoot; - xRoot->rank_ = xRoot->rank_ + 1; + yRoot->second.parent_ = xRoot; + xRoot->second.rank_ = xRoot->second.rank_ + 1; } } /// return all sets, i.e. a partition of all elements std::map sets() const { std::map sets; - typename Map::iterator it = entries_.begin(); - for(;it!=entries_.end();it++) { - Entry* root = find_(it); - sets[root->key_].insert(it->first); + iterator it = entries_.begin(); + for (; it != entries_.end(); it++) { + iterator root = find_(it); + sets[root->first].insert(it->first); } return sets; } diff --git a/gtsam_unstable/base/tests/timeDSFvariants2.xlsx b/gtsam_unstable/base/tests/timeDSFvariants2.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..4f501aa85a217cbbbe0d05730698f17c3a10b628 GIT binary patch literal 64533 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 literal 0 HcmV?d00001