31 boost::optional<Values> linearizationPoint_;
57 void print(
const std::string& s =
"",
const KeyFormatter& keyFormatter = gtsam::DefaultKeyFormatter)
const;
60 bool equals(
const NonlinearFactor& f,
double tol = 1e-9)
const;
72 double error(
const Values& c)
const;
106 NonlinearFactor::shared_ptr negateToNonlinear()
const;
114 NonlinearFactor::shared_ptr
clone()
const {
120 inline bool hasLinearizationPoint()
const {
return linearizationPoint_.is_initialized(); }
125 bool isJacobian()
const;
126 bool isHessian()
const;
129 boost::shared_ptr<JacobianFactor> toJacobian()
const;
132 boost::shared_ptr<HessianFactor> toHessian()
const;
138 static NonlinearFactorGraph convertLinearGraph(
const GaussianFactorGraph& linear_graph,
139 const Values& linearizationPoint = Values());
142 void initializeLinearizationPoint(
const Values& linearizationPoint);
147 friend class boost::serialization::access;
148 template<
class ARCHIVE>
149 void serialize(ARCHIVE & ar,
const unsigned int version) {
150 ar & boost::serialization::make_nvp(
"NonlinearFactor",
151 boost::serialization::base_object<Base>(*
this));
152 ar & BOOST_SERIALIZATION_NVP(factor_);
153 ar & BOOST_SERIALIZATION_NVP(linearizationPoint_);
A Gaussian factor using the canonical parameters (information form)
Definition: HessianFactor.h:131
NonlinearFactor::shared_ptr clone() const
Creates a shared_ptr clone of the factor - needs to be specialized to allow for subclasses.
Definition: LinearContainerFactor.h:114
A Gaussian factor in the squared-error form.
Definition: JacobianFactor.h:82
size_t dim(const Vector &v)
dimensionality == size
Definition: Vector.h:90
Factor Graph Constsiting of non-linear factors.
A non-templated config holding any types of Manifold-group elements.
Definition: Values.h:75
Dummy version of a generic linear factor to be injected into a nonlinear factor graph.
Definition: LinearContainerFactor.h:27
void print(const Matrix &A, const string &s, ostream &stream)
print a matrix
Definition: Matrix.cpp:183
boost::shared_ptr< This > shared_ptr
shared_ptr to this class
Definition: GaussianFactor.h:39
Nonlinear factor base class.
Definition: NonlinearFactor.h:54
LinearContainerFactor()
Default constructor - necessary for serialization.
Definition: LinearContainerFactor.h:34
const boost::optional< Values > & linearizationPoint() const
Extract the linearization point used in recalculating error.
Definition: LinearContainerFactor.h:78
boost::function< std::string(Key)> KeyFormatter
Typedef for a function to format a key, i.e. to convert it to a string.
Definition: types.h:62