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

RegularHessianFactor (const RegularJacobianFactor< D > &jf)
Construct from RegularJacobianFactor.

RegularHessianFactor (const GaussianFactorGraph &factors, boost::optional< const Scatter & > scatter=boost::none)
Construct from a GaussianFactorGraph.

virtual void multiplyHessianAdd (double alpha, const VectorValues &x, VectorValues &y) const
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.

virtual void hessianDiagonal (double *d) const
Return the diagonal of the Hessian for this factor (raw memory version)

virtual void gradientAtZero (double *d) const 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. More...

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

HessianFactor (const GaussianFactorGraph &factors, boost::optional< const Scatter & > scatter=boost::none)
Combine a set of factors into a single dense HessianFactor.

virtual ~HessianFactor ()
Destructor.

virtual GaussianFactor::shared_ptr clone () const
Clone this HessianFactor.

virtual void print (const std::string &s="", const KeyFormatter &formatter=DefaultKeyFormatter) const
Print the factor for debugging and testing (implementing Testable)

virtual bool equals (const GaussianFactor &lf, double tol=1e-9) const
Compare to another factor for testing (implementing Testable)

virtual double error (const VectorValues &c) const
Evaluate the factor error f(x), see above. More...

virtual DenseIndex getDim (const_iterator variable) const
0.5*[x -1]'H[x -1] (also see constructor documentation) More...

size_t rows () const
Return the number of columns and rows of the Hessian matrix, including the information vector. More...

virtual GaussianFactor::shared_ptr negate () const
Construct the corresponding anti-factor to negate information stored stored in this factor. More...

virtual bool empty () const
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...

virtual Matrix augmentedInformation () const
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).

virtual Matrix information () const
Return the non-augmented information matrix represented by this GaussianFactor.

virtual VectorValues hessianDiagonal () const
Return the diagonal of the Hessian for this factor.

virtual std::map< Key, Matrix > hessianBlockDiagonal () const
Return the block diagonal of the Hessian for this factor.

virtual std::pair< Matrix, Vector > jacobian () const
Return (dense) matrix associated with factor.

virtual Matrix augmentedJacobian () const
Return (dense) matrix associated with factor The returned system is an augmented matrix: [A b]. More...

void updateHessian (const KeyVector &keys, SymmetricBlockMatrix *info) const
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
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. 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/4]

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/4]

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/4]

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.

## ◆ RegularHessianFactor() [4/4]

template<size_t D>
template<typename KEYS >
 gtsam::RegularHessianFactor< D >::RegularHessianFactor ( const KEYS & keys, const SymmetricBlockMatrix & augmentedInformation )
inline

Constructor with an arbitrary number of keys and with the augmented information matrix specified as a block matrix.

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