gtsam  4.1.0 gtsam
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. More...

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. More...

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. More...

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 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. More...

HessianFactor (Key j, const Vector &mu, const Matrix &Sigma)
Construct a unary factor, given a mean and covariance matrix. More...

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. More...

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. More...

HessianFactor (const KeyVector &js, const std::vector< Matrix > &Gs, const std::vector< Vector > &gs, double f)
Construct an n-way factor. More...

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.

virtual ~HessianFactor ()
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). More...

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? More...

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. More...

bool empty () const override
Check if the factor is empty. More...

double constantTerm () const
Return the constant term $$f$$ as described above. More...

double & constantTerm ()
Return the constant term $$f$$ as described above. More...

SymmetricBlockMatrix::constBlock linearTerm (const_iterator j) const
Return the part of linear term $$g$$ as described above corresponding to the requested variable. More...

SymmetricBlockMatrix::constBlock linearTerm () const
Return the complete linear term $$g$$ as described above. More...

SymmetricBlockMatrix::Block linearTerm ()
Return the complete linear term $$g$$ as described above. More...

const SymmetricBlockMatrixinfo () const
Return underlying information matrix.

SymmetricBlockMatrixinfo ()
Return non-const information matrix. More...

Matrix augmentedInformation () const override
Return the augmented information matrix represented by this GaussianFactor. More...

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]. More...

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). More...

void updateHessian (HessianFactor *other) const
Update another Hessian factor. More...

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< GaussianConditionaleliminateCholesky (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. More...

VectorValues solve ()
Solve the system A'*A delta = A'*b in-place, return delta as VectorValues. 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. More...

virtual ~GaussianFactor ()
Destructor.

VectorValues hessianDiagonal () const
Return the diagonal of the Hessian for this factor. Public Member Functions inherited from gtsam::Factor
Key front () const
First key.

Key back () const
Last key.

const_iterator find (Key key) const
find

const KeyVectorkeys () 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

void print (const std::string &s="Factor", const KeyFormatter &formatter=DefaultKeyFormatter) const
print

void printKeys (const std::string &s="Factor", const KeyFormatter &formatter=DefaultKeyFormatter) const
print only keys

KeyVectorkeys ()

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< Thisshared_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< Thisshared_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. Static Public Member Functions inherited from gtsam::GaussianFactor
template<typename CONTAINER >
static DenseIndex Slot (const CONTAINER &keys, Key key) Protected Member Functions inherited from gtsam::Factor
Factor ()
Default constructor for I/O.

template<typename CONTAINER >
Factor (const CONTAINER &keys)
Construct factor from container of keys. More...

template<typename ITERATOR >
Factor (ITERATOR first, ITERATOR last)
Construct factor from iterator keys. More...

bool equals (const This &other, double tol=1e-9) const
check equality Static Protected Member Functions inherited from gtsam::Factor
template<typename CONTAINER >
static Factor FromKeys (const CONTAINER &keys)
Construct factor from container of keys. More...

template<typename ITERATOR >
static Factor FromIterators (ITERATOR first, ITERATOR last)
Construct factor from iterator keys. More... 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.

## ◆ 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.

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