10 #include <gtsam/inference/Symbol.h>
15 #include <boost/foreach.hpp>
26 typedef Eigen::Matrix<double, 2, D> Matrix2D;
27 typedef std::pair<Key, Matrix2D> KeyMatrix2D;
30 typedef Eigen::Matrix<double, D, 1> DVector;
31 typedef Eigen::Map<DVector> DMap;
32 typedef Eigen::Map<const DVector> ConstDMap;
40 if (
empty())
return Ax;
43 for(
size_t pos=0; pos<
size(); ++pos)
44 Ax += Ab_(pos) * ConstDMap(x + D *
keys_[pos]);
46 return model_ ? model_->whiten(Ax) : Ax;
55 Vector E = alpha * (model_ ? model_->whiten(e) : e);
57 for(
size_t pos=0; pos<
size(); ++pos)
58 DMap(x + D *
keys_[pos]) += Ab_(pos).transpose() * E;
77 for(
size_t pos=0; pos<
size(); ++pos)
78 Ax += Ab_(pos) * ConstDMap(x + D *
keys_[pos]);
81 if (model_) { model_->whitenInPlace(Ax); model_->whitenInPlace(Ax); }
87 for(
size_t pos=0; pos<
size(); ++pos)
88 DMap(y + D *
keys_[pos]) += Ab_(pos).transpose() * Ax;
DenseIndex rows() const
Row size.
Definition: VerticalBlockMatrix.h:111
Vector operator*(const double *x) const
double* Matrix-vector multiply, i.e.
Definition: JacobianSchurFactor.h:38
void multiplyHessianAdd(double alpha, const VectorValues &x, VectorValues &y) const
y += alpha * A'*A*x
Definition: JacobianFactor.cpp:525
Chordal Bayes Net, the result of eliminating a factor graph.
FastVector< Key > keys_
The keys involved in this factor.
Definition: Factor.h:69
A Gaussian factor in the squared-error form.
Definition: JacobianFactor.h:82
void multiplyHessianAdd(double alpha, const VectorValues &x, VectorValues &y) const
y += alpha * A'*A*x
Definition: JacobianSchurFactor.h:62
void multiplyHessianAdd(double alpha, const double *x, double *y) const
double* Hessian-vector multiply, i.e.
Definition: JacobianSchurFactor.h:70
bool zero(const Vector &v)
check if all zero
Definition: Vector.cpp:39
void transposeMultiplyAdd(double alpha, const Vector &e, double *x) const
double* Transpose Matrix-vector multiply, i.e.
Definition: JacobianSchurFactor.h:53
size_t size() const
Definition: Factor.h:126
virtual bool empty() const
Check if the factor is empty.
Definition: JacobianFactor.h:228
This class represents a collection of vector-valued variables associated each with a unique integer i...
Definition: VectorValues.h:89
JacobianFactor for Schur complement that uses Q noise model.
Definition: JacobianSchurFactor.h:22
Linear Factor Graph where all factors are Gaussians.