GTSAM  4.0.2
C++ library for smoothing and mapping (SAM)
Functions | Friends
Solving of sparse linear systems with least-squares

Functions

GTSAM_EXPORT std::pair< std::shared_ptr< GaussianConditional >, std::shared_ptr< HessianFactor > > gtsam::EliminateCholesky (const GaussianFactorGraph &factors, const Ordering &keys)
 
GTSAM_EXPORT std::pair< std::shared_ptr< GaussianConditional >, std::shared_ptr< GaussianFactor > > gtsam::EliminatePreferCholesky (const GaussianFactorGraph &factors, const Ordering &keys)
 

Friends

GTSAM_EXPORT std::pair< std::shared_ptr< GaussianConditional >, shared_ptrgtsam::JacobianFactor::EliminateQR (const GaussianFactorGraph &factors, const Ordering &keys)
 

Detailed Description

Function Documentation

◆ EliminateCholesky()

GTSAM_EXPORT std::pair<std::shared_ptr<GaussianConditional>, std::shared_ptr<HessianFactor> > gtsam::EliminateCholesky ( const GaussianFactorGraph factors,
const Ordering keys 
)

Densely partially eliminate with Cholesky factorization. JacobianFactors are left-multiplied with their transpose to form the Hessian using the conversion constructor HessianFactor(const JacobianFactor&).

If any factors contain constrained noise models, this function will fail because our current implementation cannot handle constrained noise models in Cholesky factorization. The function EliminatePreferCholesky() automatically does QR instead when this is the case.

Variables are eliminated in the order specified in keys.

Parameters
factorsFactors to combine and eliminate
keysThe variables to eliminate and their elimination ordering
Returns
The conditional and remaining factor

◆ EliminatePreferCholesky()

GTSAM_EXPORT std::pair<std::shared_ptr<GaussianConditional>, std::shared_ptr<GaussianFactor> > gtsam::EliminatePreferCholesky ( const GaussianFactorGraph factors,
const Ordering keys 
)

Densely partially eliminate with Cholesky factorization. JacobianFactors are left-multiplied with their transpose to form the Hessian using the conversion constructor HessianFactor(const JacobianFactor&).

This function will fall back on QR factorization for any cliques containing JacobianFactor's with constrained noise models.

Variables are eliminated in the order specified in keys.

Parameters
factorsFactors to combine and eliminate
keysThe variables to eliminate and their elimination ordering
Returns
The conditional and remaining factor

Friends

◆ EliminateQR

GTSAM_EXPORT std::pair<std::shared_ptr<GaussianConditional>, shared_ptr> EliminateQR ( const GaussianFactorGraph factors,
const Ordering keys 
)
friend

Densely partially eliminate with QR factorization, this is usually provided as an argument to one of the factor graph elimination functions (see EliminateableFactorGraph). HessianFactors are first factored with Cholesky decomposition to produce JacobianFactors, by calling the conversion constructor JacobianFactor(const HessianFactor&). Variables are eliminated in the order specified in keys.

Parameters
factorsFactors to combine and eliminate
keysThe variables to eliminate in the order as specified here in keys
Returns
The conditional and remaining factor

Multiply all factors and eliminate the given keys from the resulting factor using a QR variant that handles constraints (zero sigmas). Computation happens in noiseModel::Gaussian::QR Returns a conditional on those keys, and a new factor on the separator.