|
gtsam
|
Optional preindexed kernels for matrix-free Gaussian factors.
A GaussianFactor can additionally implement this interface so iterative solvers can apply it using scalar offsets and block slots compiled from the solver's ordering. This avoids rebuilding VectorValues and keyed maps in hot loops without changing the factor's ordinary GaussianFactor interface.
Public Member Functions | |
| virtual void | multiplyHessianAdd (double alpha, const std::vector< size_t > &scalarOffsets, const double *x, double *y) const =0 |
| Add this factor's Hessian-vector product to a flat output vector. | |
| virtual void | gradientAtZeroAdd (const std::vector< size_t > &scalarOffsets, double *gradient) const =0 |
| Add this factor's zero-point gradient to a flat output vector. | |
| virtual void | hessianBlockDiagonalAdd (const std::vector< size_t > &blockSlots, std::vector< Matrix > *diagonalBlocks) const =0 |
| Add this factor's Hessian diagonal to ordered variable blocks. | |
|
pure virtual |
Add this factor's zero-point gradient to a flat output vector.
Implemented in gtsam::BatchJacobianFactor< ErrorDim, BlockDims >, gtsam::BatchJacobianFactor< ErrorDim, BlockDims... >, gtsam::BatchJacobianFactorBase, and gtsam::RegularImplicitSchurFactor< CAMERA >.
|
pure virtual |
Add this factor's Hessian diagonal to ordered variable blocks.
Implemented in gtsam::BatchJacobianFactor< ErrorDim, BlockDims >, gtsam::BatchJacobianFactor< ErrorDim, BlockDims... >, gtsam::BatchJacobianFactorBase, and gtsam::RegularImplicitSchurFactor< CAMERA >.
|
pure virtual |
Add this factor's Hessian-vector product to a flat output vector.
Implemented in gtsam::BatchJacobianFactor< ErrorDim, BlockDims >, gtsam::BatchJacobianFactor< ErrorDim, BlockDims... >, gtsam::BatchJacobianFactorBase, and gtsam::RegularImplicitSchurFactor< CAMERA >.