GaussianBayesNet.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 // \callgraph
20 
21 #pragma once
22 
26 #include <gtsam/global_includes.h>
27 
28 #include <utility>
29 namespace gtsam {
30 
35  class GTSAM_EXPORT GaussianBayesNet: public BayesNet<GaussianConditional>
36  {
37  public:
38 
42  typedef std::shared_ptr<This> shared_ptr;
43  typedef std::shared_ptr<ConditionalType> sharedConditional;
44 
47 
50 
52  template <typename ITERATOR>
53  GaussianBayesNet(ITERATOR firstConditional, ITERATOR lastConditional)
54  : Base(firstConditional, lastConditional) {}
55 
57  template <class CONTAINER>
58  explicit GaussianBayesNet(const CONTAINER& conditionals) {
59  push_back(conditionals);
60  }
61 
64  template <class DERIVEDCONDITIONAL>
66  : Base(graph) {}
67 
72  template <class DERIVEDCONDITIONAL>
74  std::initializer_list<std::shared_ptr<DERIVEDCONDITIONAL> > conditionals)
75  : Base(conditionals) {}
76 
78 
81 
83  bool equals(const This& bn, double tol = 1e-9) const;
84 
86  void print(
87  const std::string& s = "",
88  const KeyFormatter& formatter = DefaultKeyFormatter) const override {
90  }
91 
93 
96 
98  double error(const VectorValues& x) const;
99 
101  double logProbability(const VectorValues& x) const;
102 
108  double evaluate(const VectorValues& x) const;
109 
111  double operator()(const VectorValues& x) const {
112  return evaluate(x);
113  }
114 
117  VectorValues optimize() const;
118 
120  VectorValues optimize(const VectorValues& given) const;
121 
128  VectorValues sample(std::mt19937_64* rng) const;
129 
137  VectorValues sample(const VectorValues& given, std::mt19937_64* rng) const;
138 
140  VectorValues sample() const;
141 
143  VectorValues sample(const VectorValues& given) const;
144 
151  Ordering ordering() const;
152 
154 
157 
163  std::pair<Matrix, Vector> matrix(const Ordering& ordering) const;
164 
170  std::pair<Matrix, Vector> matrix() const;
171 
197  VectorValues optimizeGradientSearch() const;
198 
204  VectorValues gradient(const VectorValues& x0) const;
205 
212  VectorValues gradientAtZero() const;
213 
221  double determinant() const;
222 
229  double logDeterminant() const;
230 
235  VectorValues backSubstitute(const VectorValues& gx) const;
236 
243  VectorValues backSubstituteTranspose(const VectorValues& gx) const;
244 
248 
249  using Base::evaluate; // Expose evaluate(const HybridValues&) method..
250  using Base::logProbability; // Expose logProbability(const HybridValues&) method..
251  using Base::error; // Expose error(const HybridValues&) method..
252 
254 
255  private:
256 #ifdef GTSAM_ENABLE_BOOST_SERIALIZATION
257 
258  friend class boost::serialization::access;
259  template<class ARCHIVE>
260  void serialize(ARCHIVE & ar, const unsigned int /*version*/) {
261  ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Base);
262  }
263 #endif
264  };
265 
267  template<>
268  struct traits<GaussianBayesNet> : public Testable<GaussianBayesNet> {
269  };
270 
271 } //\ namespace gtsam
Eigen::internal::print
EIGEN_STRONG_INLINE Packet4f print(const Packet4f &a)
Definition: NEON/PacketMath.h:3115
rng
static std::mt19937 rng
Definition: timeFactorOverhead.cpp:31
GaussianConditional.h
Conditional Gaussian Base class.
gtsam::GaussianBayesNet::Base
BayesNet< GaussianConditional > Base
Definition: GaussianBayesNet.h:39
global_includes.h
Included from all GTSAM files.
gtsam::BayesNet
Definition: BayesNet.h:35
s
RealScalar s
Definition: level1_cplx_impl.h:126
e
Array< double, 1, 3 > e(1./3., 0.5, 2.)
gtsam::GaussianBayesNet::GaussianBayesNet
GaussianBayesNet(ITERATOR firstConditional, ITERATOR lastConditional)
Definition: GaussianBayesNet.h:53
gtsam::GaussianBayesNet::GaussianBayesNet
GaussianBayesNet(const CONTAINER &conditionals)
Definition: GaussianBayesNet.h:58
gtsam::optimize
Point3 optimize(const NonlinearFactorGraph &graph, const Values &values, Key landmarkKey)
Definition: triangulation.cpp:177
x
set noclip points set clip one set noclip two set bar set border lt lw set xdata set ydata set zdata set x2data set y2data set boxwidth set dummy x
Definition: gnuplot_common_settings.hh:12
gtsam::GaussianBayesNet::sharedConditional
std::shared_ptr< ConditionalType > sharedConditional
Definition: GaussianBayesNet.h:43
gtsam::GaussianBayesNet::This
GaussianBayesNet This
Definition: GaussianBayesNet.h:40
formatter
const KeyFormatter & formatter
Definition: treeTraversal-inst.h:204
gtsam::GaussianBayesNet::GaussianBayesNet
GaussianBayesNet()
Definition: GaussianBayesNet.h:49
equal_constants::conditionals
const std::vector< GaussianConditional::shared_ptr > conditionals
Definition: testGaussianMixture.cpp:51
determinant
void determinant(const MatrixType &m)
Definition: determinant.cpp:14
gtsam::DefaultKeyFormatter
KeyFormatter DefaultKeyFormatter
Assign default key formatter.
Definition: Key.cpp:30
gtsam::FactorGraph
Definition: BayesTree.h:34
gtsam::VectorValues
Definition: VectorValues.h:74
gtsam::KeyFormatter
std::function< std::string(Key)> KeyFormatter
Typedef for a function to format a key, i.e. to convert it to a string.
Definition: Key.h:35
gtsam::GaussianBayesNet::GaussianBayesNet
GaussianBayesNet(std::initializer_list< std::shared_ptr< DERIVEDCONDITIONAL > > conditionals)
Definition: GaussianBayesNet.h:73
gtsam::internal::logDeterminant
double logDeterminant(const typename BAYESTREE::sharedClique &clique)
Definition: GaussianBayesTree-inl.h:42
gtsam::GaussianConditional
Definition: GaussianConditional.h:40
x0
static Symbol x0('x', 0)
BayesNet.h
Bayes network.
gtsam::GaussianBayesNet::ConditionalType
GaussianConditional ConditionalType
Definition: GaussianBayesNet.h:41
ordering
static enum @1096 ordering
gtsam::equals
Definition: Testable.h:112
matrix
Map< Matrix< T, Dynamic, Dynamic, ColMajor >, 0, OuterStride<> > matrix(T *data, int rows, int cols, int stride)
Definition: gtsam/3rdparty/Eigen/blas/common.h:110
gtsam::GaussianBayesNet::GaussianBayesNet
GaussianBayesNet(const FactorGraph< DERIVEDCONDITIONAL > &graph)
Definition: GaussianBayesNet.h:65
gtsam::GaussianBayesNet::operator()
double operator()(const VectorValues &x) const
Evaluate probability density, sugar.
Definition: GaussianBayesNet.h:111
gtsam
traits
Definition: chartTesting.h:28
gtsam::Testable
Definition: Testable.h:152
error
static double error
Definition: testRot3.cpp:37
gtsam::traits
Definition: Group.h:36
FactorGraph.h
Factor Graph Base Class.
This
#define This
Definition: ActiveSetSolver-inl.h:27
gtsam::tol
const G double tol
Definition: Group.h:79
gtsam::GaussianBayesNet::print
void print(const std::string &s="", const KeyFormatter &formatter=DefaultKeyFormatter) const override
print graph
Definition: GaussianBayesNet.h:86
Base
Definition: test_virtual_functions.cpp:156
graph
NonlinearFactorGraph graph
Definition: doc/Code/OdometryExample.cpp:2
gtsam::Ordering
Definition: inference/Ordering.h:33
gtsam::GaussianBayesNet::shared_ptr
std::shared_ptr< This > shared_ptr
Definition: GaussianBayesNet.h:42
gtsam::GaussianBayesNet
Definition: GaussianBayesNet.h:35


gtsam
Author(s):
autogenerated on Thu Jun 13 2024 03:02:23