gtsam
Loading...
Searching...
No Matches
gtsam::BlockJacobiPreconditioner Class Reference
Inheritance diagram for gtsam::BlockJacobiPreconditioner:

Public Member Functions

void solve (const Vector &y, Vector &x) const override
 implement x = L^{-1} y
void transposeSolve (const Vector &y, Vector &x) const override
 implement x = L^{-T} y
void build (const GaussianFactorGraph &gfg, const KeyInfo &info, const std::map< Key, Vector > &lambda) override
 build/factorize the preconditioner
void build (const std::vector< Matrix > &blocks, const KeyInfo &info)
 Build and factorize block diagonals already arranged in KeyInfo ordering.

Public Types

typedef Preconditioner Base
Public Types inherited from gtsam::Preconditioner
typedef std::shared_ptr< Preconditioner > shared_ptr
typedef std::vector< size_t > Dimensions

Protected Member Functions

void clean ()
void solveInPlaceRange (Vector &x, size_t begin, size_t end, bool transpose) const
 Apply a triangular solve to a contiguous range of independent blocks.

Protected Attributes

std::vector< size_t > dims_
std::vector< size_t > scalarOffsets_
std::vector< size_t > bufferOffsets_
double * buffer_
size_t bufferSize_
size_t nnz_

Friends

class GaussianFactorGraphSystem

Member Function Documentation

◆ build() [1/2]

void gtsam::BlockJacobiPreconditioner::build ( const GaussianFactorGraph & gfg,
const KeyInfo & info,
const std::map< Key, Vector > & lambda )
overridevirtual

build/factorize the preconditioner

Implements gtsam::Preconditioner.

◆ build() [2/2]

void gtsam::BlockJacobiPreconditioner::build ( const std::vector< Matrix > & blocks,
const KeyInfo & info )

Build and factorize block diagonals already arranged in KeyInfo ordering.

This avoids keyed maps when a compiled linear operator has already accumulated the blocks.

Parameters
blocksSquare Hessian diagonal blocks in info.ordering() order.
infoExpected block ordering and dimensions.
Exceptions
std::invalid_argumentif block count or dimensions do not match.

◆ solve()

void gtsam::BlockJacobiPreconditioner::solve ( const Vector & y,
Vector & x ) const
overridevirtual

implement x = L^{-1} y

Implements gtsam::Preconditioner.

◆ transposeSolve()

void gtsam::BlockJacobiPreconditioner::transposeSolve ( const Vector & y,
Vector & x ) const
overridevirtual

implement x = L^{-T} y

Implements gtsam::Preconditioner.


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