22#include <gtsam/discrete/DecisionTree-inl.h>
58 using shared_ptr = boost::shared_ptr<GaussianMixture>;
118 std::vector<GaussianConditional::shared_ptr> &&
conditionals);
131 const std::vector<GaussianConditional::shared_ptr> &
conditionals);
142 const std::string &s =
"GaussianMixture\n",
143 const KeyFormatter &formatter = DefaultKeyFormatter)
const override;
167 boost::shared_ptr<GaussianMixtureFactor> likelihood(
171 const Conditionals &conditionals()
const;
208 double error(
const HybridValues &values)
const override;
225 double logProbability(
const HybridValues &values)
const override;
228 double evaluate(
const HybridValues &values)
const override;
259 friend class boost::serialization::access;
260 template <
class Archive>
261 void serialize(Archive &ar,
const unsigned int ) {
262 ar &BOOST_SERIALIZATION_BASE_OBJECT_NVP(BaseFactor);
263 ar &BOOST_SERIALIZATION_BASE_OBJECT_NVP(BaseConditional);
264 ar &BOOST_SERIALIZATION_NVP(conditionals_);
specialized key for discrete variables
Decision Tree for use in DiscreteFactors.
A set of GaussianFactors, indexed by a set of discrete keys.
Base class for conditional densities.
Conditional Gaussian Base class.
Global functions in a separate testing namespace.
Definition chartTesting.h:28
FastVector< Key > KeyVector
Define collection type once and for all - also used in wrappers.
Definition Key.h:86
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
std::set< DiscreteKey > DiscreteKeysAsSet(const DiscreteKeys &discreteKeys)
Return the DiscreteKey vector as a set.
Definition GaussianMixture.cpp:221
DecisionTree< Key, GaussianFactorGraph > GaussianFactorGraphTree
Alias for DecisionTree of GaussianFactorGraphs.
Definition HybridFactor.h:34
A manifold defines a space in which there is a notion of a linear tangent space that can be centered ...
Definition concepts.h:30
A helper that implements the traits interface for GTSAM types.
Definition Testable.h:151
An algebraic decision tree fixes the range of a DecisionTree to double.
Definition AlgebraicDecisionTree.h:38
An assignment from labels to value index (size_t).
Definition Assignment.h:37
a decision tree is a function from assignments to values.
Definition DecisionTree.h:61
A discrete probabilistic factor.
Definition DecisionTreeFactor.h:45
DiscreteKeys is a set of keys that can be assembled using the & operator.
Definition DiscreteKey.h:39
A map from keys to values.
Definition DiscreteValues.h:34
A conditional of gaussian mixtures indexed by discrete variables, as part of a Bayes Network.
Definition GaussianMixture.h:55
double logNormalizationConstant() const override
The log normalization constant is max of the the individual log-normalization constants.
Definition GaussianMixture.h:161
double operator()(const HybridValues &values) const
Evaluate probability density, sugar.
Definition GaussianMixture.h:231
const Conditionals & conditionals() const
Getter for the underlying Conditionals DecisionTree.
Definition GaussianMixture.cpp:52
GaussianMixture()=default
Default constructor, mainly for serialization.
bool equals(const HybridFactor &lf, double tol=1e-9) const override
Test equality with base HybridFactor.
Definition GaussianMixture.cpp:118
DecisionTree< Key, GaussianConditional::shared_ptr > Conditionals
typedef for Decision Tree of Gaussian Conditionals
Definition GaussianMixture.h:63
size_t nrComponents() const
Returns the total number of continuous components.
Definition GaussianMixture.cpp:96
GaussianConditional::shared_ptr operator()(const DiscreteValues &discreteValues) const
Return the conditional Gaussian for the given discrete assignment.
Definition GaussianMixture.cpp:105
double evaluate(const HybridValues &values) const override
Calculate probability density for given values.
Definition GaussianMixture.cpp:343
void print(const std::string &s="GaussianMixture\n", const KeyFormatter &formatter=DefaultKeyFormatter) const override
Print utility.
Definition GaussianMixture.cpp:136
KeyVector continuousParents() const
Returns the continuous keys among the parents.
Definition GaussianMixture.cpp:162
HybridFactor()=default
Default constructor creates empty factor.
HybridValues represents a collection of DiscreteValues and VectorValues.
Definition HybridValues.h:38
Conditional()
Definition Conditional.h:85
boost::shared_ptr< This > shared_ptr
shared_ptr to this class
Definition GaussianConditional.h:46
VectorValues represents a collection of vector-valued variables associated each with a unique integer...
Definition VectorValues.h:74