Loading...
Searching...
No Matches
gtsam::RegularHessianFactor< D > Class Template Reference
Inheritance diagram for gtsam::RegularHessianFactor< D >:

## Public Member Functions

| RegularHessianFactor (const KeyVector &js, const std::vector< Matrix > &Gs, const std::vector< Vector > &gs, double f)
| Construct an n-way factor.
| RegularHessianFactor (Key j1, Key j2, const MatrixD &G11, const MatrixD &G12, const VectorD &g1, const MatrixD &G22, const VectorD &g2, double f)
| Construct a binary factor.
| RegularHessianFactor (Key j1, Key j2, Key j3, const MatrixD &G11, const MatrixD &G12, const MatrixD &G13, const VectorD &g1, const MatrixD &G22, const MatrixD &G23, const VectorD &g2, const MatrixD &G33, const VectorD &g3, double f)
| Construct a ternary factor.
template<typename KEYS>
| RegularHessianFactor (const KEYS &keys, const SymmetricBlockMatrix &augmentedInformation)
| Constructor with an arbitrary number of keys and with the augmented information matrix specified as a block matrix.
| RegularHessianFactor (const RegularJacobianFactor< D > &jf)
| Construct from RegularJacobianFactor.
| RegularHessianFactor (const GaussianFactorGraph &factors, const Scatter &scatter)
| Construct from a GaussianFactorGraph.
| RegularHessianFactor (const GaussianFactorGraph &factors)
| Construct from a GaussianFactorGraph.
void | multiplyHessianAdd (double alpha, const VectorValues &x, VectorValues &y) const override
| y += alpha * A'*A*x
void | multiplyHessianAdd (double alpha, const double *x, double *yvalues) const
| y += alpha * A'*A*x
void | multiplyHessianAdd (double alpha, const double *x, double *yvalues, std::vector< size_t > offsets) const
| Raw memory version, with offsets TODO document reasoning.
void | hessianDiagonal (double *d) const override
| Return the diagonal of the Hessian for this factor (raw memory version).
void | gradientAtZero (double *d) const override
| Add gradient at zero to d TODO: is it really the goal to add ??
Public Member Functions inherited from gtsam::HessianFactor
| HessianFactor ()
| default constructor for I/O
| HessianFactor (Key j, const Matrix &G, const Vector &g, double f)
| Construct a unary factor.
| HessianFactor (Key j, const Vector &mu, const Matrix &Sigma)
| Construct a unary factor, given a mean and covariance matrix.
| HessianFactor (Key j1, Key j2, const Matrix &G11, const Matrix &G12, const Vector &g1, const Matrix &G22, const Vector &g2, double f)
| Construct a binary factor.
| HessianFactor (Key j1, Key j2, Key j3, const Matrix &G11, const Matrix &G12, const Matrix &G13, const Vector &g1, const Matrix &G22, const Matrix &G23, const Vector &g2, const Matrix &G33, const Vector &g3, double f)
| Construct a ternary factor.
| HessianFactor (const KeyVector &js, const std::vector< Matrix > &Gs, const std::vector< Vector > &gs, double f)
| Construct an n-way factor.
template<typename KEYS>
| HessianFactor (const KEYS &keys, const SymmetricBlockMatrix &augmentedInformation)
| Constructor with an arbitrary number of keys and with the augmented information matrix specified as a block matrix.
| HessianFactor (const JacobianFactor &cg)
| Construct from a JacobianFactor (or from a GaussianConditional since it derives from it).
| HessianFactor (const GaussianFactor &factor)
| Attempt to construct from any GaussianFactor - currently supports JacobianFactor, HessianFactor, GaussianConditional, or any derived classes.
| HessianFactor (const GaussianFactorGraph &factors, const Scatter &scatter)
| Combine a set of factors into a single dense HessianFactor.
| HessianFactor (const GaussianFactorGraph &factors)
| Combine a set of factors into a single dense HessianFactor.
| ~HessianFactor () override
| Destructor.
GaussianFactor::shared_ptr | clone () const override
| Clone this HessianFactor.
void | print (const std::string &s="", const KeyFormatter &formatter=DefaultKeyFormatter) const override
| Print the factor for debugging and testing (implementing Testable).
bool | equals (const GaussianFactor &lf, double tol=1e-9) const override
| Compare to another factor for testing (implementing Testable).
double | error (const VectorValues &c) const override
| Evaluate the factor error f(x).
DenseIndex | getDim (const_iterator variable) const override
| Return the dimension of the variable pointed to by the given key iterator todo: Remove this in favor of keeping track of dimensions with variables?
size_t | rows () const
| Return the number of columns and rows of the Hessian matrix, including the information vector.
GaussianFactor::shared_ptr | negate () const override
| Construct the corresponding anti-factor to negate information stored stored in this factor.
double | constantTerm () const
| Return the constant term \( f \) as described above.
double & | constantTerm ()
| Return the constant term \( f \) as described above.
SymmetricBlockMatrix::constBlock | linearTerm (const_iterator j) const
| Return the part of linear term \( g \) as described above corresponding to the requested variable.
SymmetricBlockMatrix::constBlock | linearTerm () const
| Return the complete linear term \( g \) as described above.
SymmetricBlockMatrix::Block | linearTerm ()
| Return the complete linear term \( g \) as described above.
const SymmetricBlockMatrix & | info () const
| Return underlying information matrix.
SymmetricBlockMatrix & | info ()
| Return non-const information matrix.
Matrix | augmentedInformation () const override
| Return the augmented information matrix represented by this GaussianFactor.
Eigen::SelfAdjointView< SymmetricBlockMatrix::constBlock, Eigen::Upper > | informationView () const
| Return self-adjoint view onto the information matrix (NOT augmented).
Matrix | information () const override
| Return the non-augmented information matrix represented by this GaussianFactor.
void | hessianDiagonalAdd (VectorValues &d) const override
| Add the current diagonal to a VectorValues instance.
std::map< Key, Matrix > | hessianBlockDiagonal () const override
| Return the block diagonal of the Hessian for this factor.
std::pair< Matrix, Vector > | jacobian () const override
| Return (dense) matrix associated with factor.
Matrix | augmentedJacobian () const override
| Return (dense) matrix associated with factor The returned system is an augmented matrix: [A b].
void | updateHessian (const KeyVector &keys, SymmetricBlockMatrix *info) const override
| Update an information matrix by adding the information corresponding to this factor (used internally during elimination).
void | updateHessian (HessianFactor *other) const
| Update another Hessian factor.
VectorValues | gradientAtZero () const override
| eta for Hessian
Vector | gradient (Key key, const VectorValues &x) const override
| Compute the gradient at a key: \( \grad f(x_i) = \sum_j G_ij*x_j - g_i \).
boost::shared_ptr< GaussianConditional > | eliminateCholesky (const Ordering &keys)
| In-place elimination that returns a conditional on (ordered) keys specified, and leaves this factor to be on the remaining keys (separator) only.
VectorValues | solve ()
| Solve the system A'*A delta = A'*b in-place, return delta as VectorValues.
double | error (const HybridValues &c) const override
| All factor types need to implement an error function.
VectorValues | hessianDiagonal () const
| Using the base method.
Public Member Functions inherited from gtsam::GaussianFactor
| GaussianFactor ()
| Default constructor creates empty factor.
template<typename CONTAINER>
| GaussianFactor (const CONTAINER &keys)
| Construct from container of keys.
virtual | ~GaussianFactor ()
| Destructor.
VectorValues | hessianDiagonal () const
| Return the diagonal of the Hessian for this factor.
Public Member Functions inherited from gtsam::Factor
virtual | ~Factor ()=default
| Default destructor.
bool | empty () const
| Whether the factor is empty (involves zero variables).
Key | front () const
| First key.
Key | back () const
| Last key.
const_iterator | find (Key key) const
| find
const KeyVector & | keys () const
| Access the factor's involved variable keys.
const_iterator | begin () const
| Iterator at beginning of involved variable keys.
const_iterator | end () const
| Iterator at end of involved variable keys.
size_t | size () const
virtual void | printKeys (const std::string &s="Factor", const KeyFormatter &formatter=DefaultKeyFormatter) const
| print only keys
bool | equals (const This &other, double tol=1e-9) const
| check equality
KeyVector & | keys ()
iterator | begin ()
| Iterator at beginning of involved variable keys.
iterator | end ()
| Iterator at end of involved variable keys.

## Public Types

typedef Eigen::Matrix< double, D, 1 > | VectorD
typedef Eigen::Matrix< double, D, D > | MatrixD
Public Types inherited from gtsam::HessianFactor
typedef GaussianFactor | Base
| Typedef to base class.
typedef HessianFactor | This
| Typedef to this class.
typedef boost::shared_ptr< This > | shared_ptr
| A shared_ptr to this class.
typedef SymmetricBlockMatrix::Block | Block
| A block from the Hessian matrix.
typedef SymmetricBlockMatrix::constBlock | constBlock
| A block from the Hessian matrix (const version).
Public Types inherited from gtsam::GaussianFactor
typedef GaussianFactor | This
| This class.
typedef boost::shared_ptr< This > | shared_ptr
| shared_ptr to this class
typedef Factor | Base
| Our base class.
Public Types inherited from gtsam::Factor
typedef KeyVector::iterator | iterator
| Iterator over keys.
typedef KeyVector::const_iterator | const_iterator
| Const iterator over keys.

## Additional Inherited Members

Static Public Member Functions inherited from gtsam::GaussianFactor
template<typename CONTAINER>
static DenseIndex | Slot (const CONTAINER &keys, Key key)
| Factor ()
| Default constructor for I/O.
template<typename CONTAINER>
| Factor (const CONTAINER &keys)
| Construct factor from container of keys.
template<typename ITERATOR>
| Factor (ITERATOR first, ITERATOR last)
| Construct factor from iterator keys.
template<typename CONTAINER>
static Factor | FromKeys (const CONTAINER &keys)
| Construct factor from container of keys.
template<typename ITERATOR>
static Factor | FromIterators (ITERATOR first, ITERATOR last)
| Construct factor from iterator keys.
Protected Attributes inherited from gtsam::HessianFactor
SymmetricBlockMatrix | info_
| The full augmented information matrix, s.t. the quadratic error is 0.5*[x -1]'H[x -1].
Protected Attributes inherited from gtsam::Factor
KeyVector | keys_
| The keys involved in this factor.

## Constructor & Destructor Documentation

## RegularHessianFactor() [1/3]

template<size_t D>

gtsam::RegularHessianFactor< D >::RegularHessianFactor | ( | const KeyVector & | js,
|  | const std::vector< Matrix > & | Gs,
|  | const std::vector< Vector > & | gs,
|  | double | f )

inline

Construct an n-way factor.

Gs contains the upper-triangle blocks of the quadratic term (the Hessian matrix) provided in row-order, gs the pieces of the linear vector term, and f the constant term.

## RegularHessianFactor() [2/3]

template<size_t D>

gtsam::RegularHessianFactor< D >::RegularHessianFactor | ( | Key | j1,
|  | Key | j2,
|  | const MatrixD & | G11,
|  | const MatrixD & | G12,
|  | const VectorD & | g1,
|  | const MatrixD & | G22,
|  | const VectorD & | g2,
|  | double | f )

inline

Construct a binary factor.

Gxx are the upper-triangle blocks of the quadratic term (the Hessian matrix), gx the pieces of the linear vector term, and f the constant term.

## RegularHessianFactor() [3/3]

template<size_t D>

gtsam::RegularHessianFactor< D >::RegularHessianFactor | ( | Key | j1,
|  | Key | j2,
|  | Key | j3,
|  | const MatrixD & | G11,
|  | const MatrixD & | G12,
|  | const MatrixD & | G13,
|  | const VectorD & | g1,
|  | const MatrixD & | G22,
|  | const MatrixD & | G23,
|  | const VectorD & | g2,
|  | const MatrixD & | G33,
|  | const VectorD & | g3,
|  | double | f )

inline

Construct a ternary factor.

Gxx are the upper-triangle blocks of the quadratic term (the Hessian matrix), gx the pieces of the linear vector term, and f the constant term.

## Member Function Documentation

## gradientAtZero()

template<size_t D>

void gtsam::RegularHessianFactor< D >::gradientAtZero | ( | double * | d | ) | const

inline override virtual

Add gradient at zero to d TODO: is it really the goal to add ??

Reimplemented from gtsam::HessianFactor.

## hessianDiagonal()

template<size_t D>

void gtsam::RegularHessianFactor< D >::hessianDiagonal | ( | double * | d | ) | const

inline override virtual

Return the diagonal of the Hessian for this factor (raw memory version).

Reimplemented from gtsam::HessianFactor.

## multiplyHessianAdd()

template<size_t D>

void gtsam::RegularHessianFactor< D >::multiplyHessianAdd | ( | double | alpha,
|  | const VectorValues & | x,
|  | VectorValues & | y ) const

inline override virtual

y += alpha * A'*A*x

Reimplemented from gtsam::HessianFactor.

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

- /build/gtsam-Xg031d/gtsam-4.2.0+dfsg/gtsam/linear/RegularHessianFactor.h