13#include <gtsam/base/std_optional_serialization.h>
33 std::optional<Values> linearizationPoint_;
44 typedef std::shared_ptr<This> shared_ptr;
68 bool equals(
const NonlinearFactor& f,
double tol = 1e-9)
const override;
80 double error(
const Values& c)
const override;
83 size_t dim()
const override;
114 NonlinearFactor::shared_ptr negateToNonlinear()
const;
122 NonlinearFactor::shared_ptr
clone()
const override {
131 NonlinearFactor::shared_ptr rekey(
132 const std::map<Key, Key>& rekey_mapping)
const override;
138 NonlinearFactor::shared_ptr rekey(
const KeyVector& new_keys)
const override;
146 bool isJacobian()
const;
147 bool isHessian()
const;
150 std::shared_ptr<JacobianFactor> toJacobian()
const;
153 std::shared_ptr<HessianFactor> toHessian()
const;
163 void initializeLinearizationPoint(
const Values& linearizationPoint);
166#if GTSAM_ENABLE_BOOST_SERIALIZATION
168 friend class boost::serialization::access;
169 template<
class ARCHIVE>
170 void serialize(ARCHIVE & ar,
const unsigned int ) {
171 ar & boost::serialization::make_nvp(
"NonlinearFactor",
172 boost::serialization::base_object<Base>(*
this));
173 ar & BOOST_SERIALIZATION_NVP(factor_);
174 ar & BOOST_SERIALIZATION_NVP(linearizationPoint_);
Factor Graph consisting of non-linear factors.
Global functions in a separate testing namespace.
Definition chartTesting.h:28
KeyFormatter DefaultKeyFormatter
Assign default key formatter.
Definition Key.cpp:30
FastVector< Key > KeyVector
Define collection type once and for all - also used in wrappers.
Definition Key.h:91
A manifold defines a space in which there is a notion of a linear tangent space that can be centered ...
Definition Group.h:37
A helper that implements the traits interface for GTSAM types.
Definition Testable.h:152
std::shared_ptr< This > shared_ptr
shared_ptr to this class
Definition GaussianFactor.h:42
A Linear Factor Graph is a factor graph where all factors are Gaussian, i.e.
Definition GaussianFactorGraph.h:77
A Gaussian factor using the canonical parameters (information form).
Definition HessianFactor.h:101
A Gaussian factor in the squared-error form.
Definition JacobianFactor.h:92
Dummy version of a generic linear factor to be injected into a nonlinear factor graph.
Definition LinearContainerFactor.h:29
NonlinearFactor::shared_ptr clone() const override
Creates a shared_ptr clone of the factor - needs to be specialized to allow for subclasses.
Definition LinearContainerFactor.h:122
LinearContainerFactor()
Default constructor - necessary for serialization.
Definition LinearContainerFactor.h:47
const std::optional< Values > & linearizationPoint() const
Extract the linearization point used in recalculating error.
Definition LinearContainerFactor.h:86
bool hasLinearizationPoint() const
Casting syntactic sugar.
Definition LinearContainerFactor.h:141
LinearContainerFactor(const GaussianFactor::shared_ptr &factor, const std::optional< Values > &linearizationPoint)
direct copy constructor
Definition LinearContainerFactor.cpp:29
NonlinearFactor()
Default constructor for I/O only.
Definition NonlinearFactor.h:86
Definition NonlinearFactorGraph.h:57
A non-templated config holding any types of Manifold-group elements.
Definition Values.h:65
In nonlinear factors, the error function returns the negative log-likelihood as a non-linear function...