51 using shared_ptr = std::shared_ptr<This>;
53 using sharedFactor = std::shared_ptr<GaussianFactor>;
100 const std::vector<sharedFactor> &factors)
102 Factors(discreteKeys, factors)) {}
111 const std::string &s =
"GaussianMixtureFactor\n",
112 const KeyFormatter &formatter = DefaultKeyFormatter)
const override;
144 double error(
const HybridValues &values)
const override;
149 sum = factor.
add(sum);
155 #ifdef GTSAM_ENABLE_BOOST_SERIALIZATION 157 friend class boost::serialization::access;
158 template <
class ARCHIVE>
159 void serialize(ARCHIVE &ar,
const unsigned int ) {
160 ar &BOOST_SERIALIZATION_BASE_OBJECT_NVP(
Base);
161 ar &BOOST_SERIALIZATION_NVP(factors_);
Definition: HybridValues.h:38
Decision Tree for use in DiscreteFactors.
Definition: HybridFactor.h:52
std::string serialize(const T &input)
serializes to a string
Definition: serialization.h:113
Definition: Testable.h:152
Implementation of a discrete conditional mixture factor. Implements a joint discrete-continuous facto...
Definition: GaussianMixtureFactor.h:47
A factor with a quadratic error function - a Gaussian.
Algebraic Decision Trees.
Definition: VectorValues.h:74
Definition: Testable.h:112
GTSAM_EXPORT void print(const Matrix &A, const std::string &s, std::ostream &stream)
Linear Factor Graph where all factors are Gaussians.
Definition: DiscreteValues.h:34
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
Definition: chartTesting.h:28
FastVector< Key > KeyVector
Define collection type once and for all - also used in wrappers.
Definition: Key.h:86
specialized key for discrete variables
GaussianMixtureFactor(const KeyVector &continuousKeys, const DiscreteKeys &discreteKeys, const std::vector< sharedFactor > &factors)
Construct a new GaussianMixtureFactor object using a vector of GaussianFactor shared pointers...
Definition: GaussianMixtureFactor.h:98
friend GaussianFactorGraphTree & operator+=(GaussianFactorGraphTree &sum, const GaussianMixtureFactor &factor)
Add MixtureFactor to a Sum, syntactic sugar.
Definition: GaussianMixtureFactor.h:147
GaussianFactorGraphTree add(const GaussianFactorGraphTree &sum) const
Combine the Gaussian Factor Graphs in sum and this while maintaining the original tree structure...
DiscreteKeys is a set of keys that can be assembled using the & operator.
Definition: DiscreteKey.h:41