27#include <gtsam/nonlinear/Symbol.h>
35 std::pair<NoiseModelFactor::shared_ptr, double>;
62 using shared_ptr = std::shared_ptr<HybridNonlinearFactor>;
63 using sharedFactor = std::shared_ptr<NoiseModelFactor>;
87 throw std::runtime_error(
88 "HybridNonlinearFactor::errorTree: use errorTree(gtsam::Values) for nonlinear values.");
108 const std::vector<NoiseModelFactor::shared_ptr>&
factors);
120 const std::vector<NonlinearFactorValuePair>& pairs);
190 std::shared_ptr<HybridGaussianFactor> linearize(
191 const Values& continuousValues)
const;
201 HybridNonlinearFactor::shared_ptr prune(
212 std::shared_ptr<Factor> restrict(
230 struct ConstructorHelper;
235#if GTSAM_ENABLE_BOOST_SERIALIZATION
237 friend class boost::serialization::access;
238 template <
class Archive>
239 void serialize(Archive& ar,
const unsigned int ) {
241 ar& BOOST_SERIALIZATION_BASE_OBJECT_NVP(Base);
243 ar& BOOST_SERIALIZATION_NVP(factors_);
A set of GaussianFactors, indexed by a set of discrete keys.
Factor Graph consisting of non-linear factors.
Non-linear factor base classes.
std::pair< Key, size_t > DiscreteKey
Key type for discrete variables.
Definition DiscreteKey.h:38
Global functions in a separate testing namespace.
Definition chartTesting.h:28
KeyFormatter DefaultKeyFormatter
Assign default key formatter.
Definition Key.cpp:30
std::pair< NoiseModelFactor::shared_ptr, double > NonlinearFactorValuePair
Alias for a NoiseModelFactor shared pointer and double scalar pair.
Definition HybridNonlinearFactor.h:34
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
An algebraic decision tree fixes the range of a DecisionTree to double.
Definition AlgebraicDecisionTree.h:41
a decision tree is a function from assignments to values.
Definition DecisionTree.h:62
A discrete probabilistic factor.
Definition DecisionTreeFactor.h:42
DiscreteKeys is a set of keys that can be assembled using the & operator.
Definition DiscreteKey.h:41
A map from keys to values.
Definition DiscreteValues.h:34
Base class for truly hybrid probabilistic factors.
Definition HybridFactor.h:51
HybridFactor()=default
Default constructor creates empty factor.
const DiscreteKeys & discreteKeys() const
Return the discrete keys for this factor.
Definition HybridFactor.h:131
Implementation of a discrete-conditioned hybrid factor.
Definition HybridNonlinearFactor.h:58
const FactorValuePairs & factors() const
Getter for NonlinearFactor decision tree.
Definition HybridNonlinearFactor.h:175
size_t dim() const
Get the dimension of the factor (number of rows on linearization).
Definition HybridNonlinearFactor.cpp:125
HybridNonlinearFactor()=default
Default constructor, mainly for serialization.
double error(const Values &continuousValues, const DiscreteValues &assignment) const
Compute error of factor given both continuous and discrete values.
Definition HybridNonlinearFactor.cpp:109
DecisionTree< Key, NonlinearFactorValuePair > FactorValuePairs
typedef for DecisionTree which has Keys as node labels and pairs of NoiseModelFactor & an arbitrary s...
Definition HybridNonlinearFactor.h:69
HybridValues represents a collection of DiscreteValues and VectorValues.
Definition HybridValues.h:37
std::shared_ptr< This > shared_ptr
shared_ptr to this class
Definition GaussianFactor.h:42
VectorValues represents a collection of vector-valued variables associated each with a unique integer...
Definition VectorValues.h:73
A non-templated config holding any types of Manifold-group elements.
Definition Values.h:65