28 template<
size_t D,
size_t ZDim>
45 Matrix zeroMatrix = Matrix::Zero(0,
D);
46 Vector zeroVector = Vector::Zero(0);
47 std::vector<KeyMatrix> QF;
48 QF.reserve(keys.size());
70 size_t numKeys = Enull.rows() /
ZDim;
71 size_t m2 =
ZDim * numKeys - 3;
77 std::vector<KeyMatrix> QF;
79 for (
size_t k = 0; k < Fblocks.size(); ++k) {
82 key, (Enull.transpose()).
block(0,
ZDim * k, m2,
ZDim) * Fblocks[k]);
const gtsam::Symbol key('X', 0)
static const int ZDim
Measurement dimension (Point2)
Eigen::Matrix< double, ZDim, D > MatrixZD
m m block(1, 0, 2, 2)<< 4
noiseModel::Diagonal::shared_ptr model
JacobianFactorSVD(const KeyVector &keys, const SharedDiagonal &model=SharedDiagonal())
Empty constructor with keys.
RegularJacobianFactor< D > Base
JacobianFactorSVD()
Default constructor.
STL compatible allocator to use with types requiring a non standrad alignment.
std::pair< Key, Matrix > KeyMatrix
void fillTerms(const TERMS &terms, const Vector &b, const SharedDiagonal &noiseModel)
Internal function to fill blocks and set dimensions.
JacobianFactor class with fixed sized blcoks.
JacobianFactorSVD(const KeyVector &keys, const std::vector< MatrixZD, Eigen::aligned_allocator< MatrixZD > > &Fblocks, const Matrix &Enull, const Vector &b, const SharedDiagonal &model=SharedDiagonal())
Construct a new JacobianFactorSVD object, createing a reduced-rank Jacobian factor on the CameraSet...
noiseModel::Diagonal::shared_ptr SharedDiagonal
const KeyVector & keys() const
Access the factor's involved variable keys.
FastVector< Key > KeyVector
Define collection type once and for all - also used in wrappers.
The matrix class, also used for vectors and row-vectors.
std::uint64_t Key
Integer nonlinear key type.