gtsam 4.1.1
gtsam
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
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
Definition: DSFVector.h:38
std::vector< size_t > V
Vector of ints.
Definition: DSFVector.h:41
Definition: DSFVector.h:64