13 #include <gtsam/base/std_optional_serialization.h> 33 std::optional<Values> linearizationPoint_;
44 typedef std::shared_ptr<This> shared_ptr;
65 void print(
const std::string& s =
"",
const KeyFormatter& keyFormatter = gtsam::DefaultKeyFormatter)
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 #ifdef 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.
std::string serialize(const T &input)
serializes to a string
Definition: serialization.h:113
Definition: Testable.h:152
const std::optional< Values > & linearizationPoint() const
Definition: LinearContainerFactor.h:86
Definition: NonlinearFactor.h:68
Definition: Testable.h:112
GTSAM_EXPORT void print(const Matrix &A, const std::string &s, std::ostream &stream)
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: NonlinearFactorGraph.h:55
Definition: JacobianFactor.h:91
std::shared_ptr< This > shared_ptr
shared_ptr to this class
Definition: GaussianFactor.h:42
Definition: chartTesting.h:28
FastVector< Key > KeyVector
Define collection type once and for all - also used in wrappers.
Definition: Key.h:86
bool hasLinearizationPoint() const
Casting syntactic sugar.
Definition: LinearContainerFactor.h:141
NonlinearFactor::shared_ptr clone() const override
Definition: LinearContainerFactor.h:122
LinearContainerFactor()
Definition: LinearContainerFactor.h:47
A Gaussian factor using the canonical parameters (information form)
Definition: HessianFactor.h:100
Definition: GaussianFactorGraph.h:73
Definition: LinearContainerFactor.h:29