gtsam 4.2.0
gtsam
Loading...
Searching...
No Matches
SymbolicBayesNet.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
24#include <gtsam/base/types.h>
25
26namespace gtsam {
27
32 class SymbolicBayesNet : public BayesNet<SymbolicConditional> {
33 public:
35 typedef SymbolicBayesNet This;
37 typedef boost::shared_ptr<This> shared_ptr;
38 typedef boost::shared_ptr<ConditionalType> sharedConditional;
39
42
45
47 template <typename ITERATOR>
48 SymbolicBayesNet(ITERATOR firstConditional, ITERATOR lastConditional)
49 : Base(firstConditional, lastConditional) {}
50
52 template <class CONTAINER>
53 explicit SymbolicBayesNet(const CONTAINER& conditionals) {
54 push_back(conditionals);
55 }
56
59 template <class DERIVEDCONDITIONAL>
61 : Base(graph) {}
62
67 SymbolicBayesNet(std::initializer_list<boost::shared_ptr<SymbolicConditional>> conditionals)
68 : Base(conditionals) {}
69
72 push_back(boost::make_shared<SymbolicConditional>(c));
73 }
74
82 push_back(boost::make_shared<SymbolicConditional>(c));
83 return *this;
84 }
85
87 virtual ~SymbolicBayesNet() {}
88
90
93
95 GTSAM_EXPORT bool equals(const This& bn, double tol = 1e-9) const;
96
98 GTSAM_EXPORT void print(
99 const std::string& s = "SymbolicBayesNet",
100 const KeyFormatter& formatter = DefaultKeyFormatter) const override {
101 Base::print(s, formatter);
102 }
103
105
106 private:
109 template<class ARCHIVE>
110 void serialize(ARCHIVE & ar, const unsigned int /*version*/) {
111 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Base);
112 }
113};
114
116 template<>
117 struct traits<SymbolicBayesNet> : public Testable<SymbolicBayesNet> {
118 };
119
120} //\ namespace gtsam
Typedefs for easier changing of types.
Factor Graph Base Class.
Bayes network.
Global functions in a separate testing namespace.
Definition chartTesting.h:28
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
A manifold defines a space in which there is a notion of a linear tangent space that can be centered ...
Definition concepts.h:30
Template to create a binary predicate.
Definition Testable.h:111
A helper that implements the traits interface for GTSAM types.
Definition Testable.h:151
A BayesNet is a tree of conditionals, stored in elimination order.
Definition BayesNet.h:35
void print(const std::string &s="BayesNet", const KeyFormatter &formatter=DefaultKeyFormatter) const override
print out graph
Definition BayesNet-inst.h:32
A factor graph is a bipartite graph with factor nodes connected to variable nodes.
Definition FactorGraph.h:97
IsDerived< DERIVEDFACTOR > push_back(boost::shared_ptr< DERIVEDFACTOR > factor)
Add a factor directly using a shared_ptr.
Definition FactorGraph.h:186
A SymbolicBayesNet is a Bayes Net of purely symbolic conditionals.
Definition SymbolicBayesNet.h:32
virtual ~SymbolicBayesNet()
Destructor.
Definition SymbolicBayesNet.h:87
SymbolicBayesNet(SymbolicConditional &&c)
Construct from a single conditional.
Definition SymbolicBayesNet.h:71
GTSAM_EXPORT void print(const std::string &s="SymbolicBayesNet", const KeyFormatter &formatter=DefaultKeyFormatter) const override
print
Definition SymbolicBayesNet.h:98
SymbolicBayesNet(ITERATOR firstConditional, ITERATOR lastConditional)
Construct from iterator over conditionals.
Definition SymbolicBayesNet.h:48
SymbolicBayesNet(std::initializer_list< boost::shared_ptr< SymbolicConditional > > conditionals)
Constructor that takes an initializer list of shared pointers.
Definition SymbolicBayesNet.h:67
SymbolicBayesNet(const CONTAINER &conditionals)
Construct from container of factors (shared_ptr or plain objects)
Definition SymbolicBayesNet.h:53
SymbolicBayesNet()
Construct empty factor graph.
Definition SymbolicBayesNet.h:44
friend class boost::serialization::access
Serialization function.
Definition SymbolicBayesNet.h:108
SymbolicBayesNet & operator()(SymbolicConditional &&c)
Add a single conditional and return a reference.
Definition SymbolicBayesNet.h:81
SymbolicBayesNet(const FactorGraph< DERIVEDCONDITIONAL > &graph)
Implicit copy/downcast constructor to override explicit template container constructor.
Definition SymbolicBayesNet.h:60
SymbolicConditional is a conditional with keys but no probability data, produced by symbolic eliminat...
Definition SymbolicConditional.h:38