42 using shared_ptr = std::shared_ptr<HybridBayesNet>;
43 using sharedConditional = std::shared_ptr<ConditionalType>;
53 std::initializer_list<HybridConditional::shared_ptr> conditionals)
54 : Base(conditionals) {}
65 bool equals(
const This &fg,
double tol = 1e-9)
const;
76 void push_back(std::shared_ptr<HybridConditional> conditional) {
89 std::make_shared<HybridConditional>(std::move(conditional)));
102 template <
class CONDITIONAL>
103 void push_back(
const std::shared_ptr<CONDITIONAL> &conditional) {
104 factors_.push_back(std::make_shared<HybridConditional>(conditional));
115 template <
class CONDITIONAL,
class... Args>
117 auto cond = std::allocate_shared<CONDITIONAL>(
118 Eigen::aligned_allocator<CONDITIONAL>(), std::forward<Args>(args)...);
119 factors_.push_back(std::make_shared<HybridConditional>(std::move(cond)));
188 std::mt19937_64 *rng =
nullptr)
const;
200 HybridValues sample(std::mt19937_64 *rng =
nullptr)
const;
216 const std::optional<double> &marginalThreshold = {},
238 AlgebraicDecisionTree<Key> errorTree(
241 using BayesNet::logProbability;
251 double negLogConstant(
const std::optional<DiscreteValues>& discrete = {})
const;
262 AlgebraicDecisionTree<Key> discretePosterior(
263 const VectorValues &continuousValues)
const;
269 HybridGaussianFactorGraph toFactorGraph(
270 const VectorValues &measurements)
const;
274#if GTSAM_ENABLE_BOOST_SERIALIZATION
276 friend class boost::serialization::access;
277 template <
class ARCHIVE>
278 void serialize(ARCHIVE &ar,
const unsigned int ) {
279 ar &BOOST_SERIALIZATION_BASE_OBJECT_NVP(Base);
Chordal Bayes Net, the result of eliminating a factor graph.
Included from all GTSAM files.
Global functions in a separate testing namespace.
Definition chartTesting.h:28
KeyFormatter DefaultKeyFormatter
Assign default key formatter.
Definition Key.cpp:30
Point3 optimize(const NonlinearFactorGraph &graph, const Values &values, Key landmarkKey)
Optimize for triangulation.
Definition triangulation.cpp:178
void print(const Matrix &A, const string &s, ostream &stream)
print without optional string, must specify cout yourself
Definition Matrix.cpp:143
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 Group.h:37
Template to create a binary predicate.
Definition Testable.h:112
A helper that implements the traits interface for GTSAM types.
Definition Testable.h:152
A Bayes net made from discrete conditional distributions.
Definition DiscreteBayesNet.h:38
A map from keys to values.
Definition DiscreteValues.h:34
A hybrid Bayes net is a collection of HybridConditionals, which can have discrete conditionals,...
Definition HybridBayesNet.h:37
void push_back(const std::shared_ptr< CONDITIONAL > &conditional)
Add a conditional to the Bayes net.
Definition HybridBayesNet.h:103
void emplace_shared(Args &&...args)
Preferred: Emplace a conditional directly using arguments.
Definition HybridBayesNet.h:116
void push_back(HybridConditional &&conditional)
Move a HybridConditional into a shared pointer and add.
Definition HybridBayesNet.h:87
void push_back(std::shared_ptr< HybridConditional > conditional)
Add a hybrid conditional using a shared_ptr.
Definition HybridBayesNet.h:76
HybridBayesNet()=default
Construct empty Bayes net.
double operator()(const HybridValues &values) const
Evaluate hybrid probability density for given HybridValues, sugar.
Definition HybridBayesNet.h:145
double evaluate(const HybridValues &values) const
Evaluate hybrid probability density for given HybridValues.
Definition HybridBayesNet.cpp:261
HybridBayesNet(std::initializer_list< HybridConditional::shared_ptr > conditionals)
Constructor that takes an initializer list of shared pointers.
Definition HybridBayesNet.h:52
Hybrid Conditional Density.
Definition HybridConditional.h:62
HybridValues represents a collection of DiscreteValues and VectorValues.
Definition HybridValues.h:37
BayesNet()
Definition BayesNet.h:48
FastVector< sharedFactor > factors_
concept check, makes sure FACTOR defines print and equals
Definition FactorGraph.h:92
GaussianBayesNet is a Bayes net made from linear-Gaussian conditionals.
Definition GaussianBayesNet.h:36
VectorValues represents a collection of vector-valued variables associated each with a unique integer...
Definition VectorValues.h:73
The Factor::error simply extracts the.
The Factor::error simply extracts the.