gtsam 4.2
gtsam
Loading...
Searching...
No Matches
DSFVector.h
Go to the documentation of this file.
1/* ----------------------------------------------------------------------------
2
3 * GTSAM Copyright 2010, Georgia Tech Research Corporation,
4 * Atlanta, Georgia 30332-0415
5 * All Rights Reserved
6 * Authors: Frank Dellaert, et al. (see THANKS for the full author list)
7
8 * See LICENSE for the license information
9
10 * -------------------------------------------------------------------------- */
11
18
19#pragma once
20
21#include <gtsam/dllexport.h>
23
24#include <boost/shared_ptr.hpp>
25
26#include <vector>
27#include <set>
28#include <map>
29
30namespace gtsam {
31
38class GTSAM_EXPORT DSFBase {
39
40public:
41 typedef std::vector<size_t> V;
42
43private:
44 boost::shared_ptr<V> v_;
45
46public:
48 DSFBase(const size_t numNodes);
49
51 DSFBase(const boost::shared_ptr<V>& v_in);
52
54 size_t find(size_t key) const;
55
57 void merge(const size_t& i1, const size_t& i2);
58};
59
64class GTSAM_EXPORT DSFVector: public DSFBase {
65
66private:
67 std::vector<size_t> keys_;
68
69public:
71 DSFVector(const size_t numNodes);
72
74 DSFVector(const std::vector<size_t>& keys);
75
77 DSFVector(const boost::shared_ptr<V>& v_in, const std::vector<size_t>& keys);
78
79 // All operations below loop over all keys and hence are *at least* O(n)
80
82 bool isSingleton(const size_t& label) const;
83
85 std::set<size_t> set(const size_t& label) const;
86
88 std::map<size_t, std::set<size_t> > sets() const;
89
91 std::map<size_t, std::vector<size_t> > arrays() const;
92};
93
94}
Included from all GTSAM files.
Global functions in a separate testing namespace.
Definition chartTesting.h:28
size_t find(size_t key) const
Find the label of the set in which {key} lives.
Definition DSFVector.cpp:44
void merge(const size_t &i1, const size_t &i2)
Merge the sets containing i1 and i2. Does nothing if i1 and i2 are already in the same set.
Definition DSFVector.cpp:54
std::vector< size_t > V
Vector of ints.
Definition DSFVector.h:41
DSFBase(const size_t numNodes)
Constructor that allocates new memory, allows for keys 0...numNodes-1.
Definition DSFVector.cpp:28
std::set< size_t > set(const size_t &label) const
Get the nodes in the tree with the given label.
Definition DSFVector.cpp:93
bool isSingleton(const size_t &label) const
Find whether there is one and only one occurrence for the given {label}.
Definition DSFVector.cpp:79
std::map< size_t, std::set< size_t > > sets() const
Return all sets, i.e. a partition of all elements.
Definition DSFVector.cpp:102
std::map< size_t, std::vector< size_t > > arrays() const
Return all sets, i.e. a partition of all elements.
Definition DSFVector.cpp:110
DSFVector(const size_t numNodes)
Constructor that allocates new memory, uses sequential keys 0...numNodes-1.
Definition DSFVector.cpp:59