32 template<
int M,
int N1,
int N2>
53 gttic(updateHessian_BinaryJacobianFactor);
56 if (model && !model->isUnit()) {
57 if (model->isConstrained())
58 throw std::invalid_argument(
59 "BinaryJacobianFactor::updateHessian: cannot update information with " 60 "constrained noise model");
86 template<
int M,
int N1,
int N2>
88 BinaryJacobianFactor<M, N1, N2> > {
Matrix< RealScalar, Dynamic, Dynamic > M
Access to matrices via blocks of pre-defined sizes. Used in GaussianFactor and GaussianConditional.
noiseModel::Diagonal::shared_ptr model
const Matrix & matrix() const
KeyVector keys_
The keys involved in this factor.
ptrdiff_t DenseIndex
The index type for Eigen objects.
const_iterator end() const
DenseIndex nBlocks() const
Block count.
const constBVector getb() const
void updateDiagonalBlock(DenseIndex I, const XprType &xpr)
Increment the diagonal block by the values in xpr. Only reads the upper triangular part of xpr...
noiseModel::Diagonal::shared_ptr SharedDiagonal
void updateHessian(const KeyVector &infoKeys, SymmetricBlockMatrix *info) const override
Expression of a fixed-size or dynamic-size block.
void updateOffDiagonalBlock(DenseIndex I, DenseIndex J, const XprType &xpr)
BinaryJacobianFactor(Key key1, const Eigen::Matrix< double, M, N1 > &A1, Key key2, const Eigen::Matrix< double, M, N2 > &A2, const Eigen::Matrix< double, M, 1 > &b, const SharedDiagonal &model=SharedDiagonal())
Constructor.
Eigen::SelfAdjointView< Block, Eigen::Upper > diagonalBlock(DenseIndex J)
Return the J'th diagonal block as a self adjoint view.
FastVector< Key > KeyVector
Define collection type once and for all - also used in wrappers.
The matrix class, also used for vectors and row-vectors.
const_iterator begin() const
static DenseIndex Slot(const CONTAINER &keys, Key key)
std::uint64_t Key
Integer nonlinear key type.
const SharedDiagonal & get_model() const