gtsam
Loading...
Searching...
No Matches
gtsam::FlatGaussianFactor Class Referenceabstract

Detailed Description

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.

Inheritance diagram for gtsam::FlatGaussianFactor:

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.

Member Function Documentation

◆ gradientAtZeroAdd()

virtual void gtsam::FlatGaussianFactor::gradientAtZeroAdd ( const std::vector< size_t > & scalarOffsets,
double * gradient ) const
pure virtual

◆ hessianBlockDiagonalAdd()

virtual void gtsam::FlatGaussianFactor::hessianBlockDiagonalAdd ( const std::vector< size_t > & blockSlots,
std::vector< Matrix > * diagonalBlocks ) const
pure virtual

◆ multiplyHessianAdd()

virtual void gtsam::FlatGaussianFactor::multiplyHessianAdd ( double alpha,
const std::vector< size_t > & scalarOffsets,
const double * x,
double * y ) const
pure virtual

The documentation for this class was generated from the following files: