Loading...
Searching...
No Matches
gtsam::UpdateImpl Struct Reference

## Detailed Description

Implementation functions for update method All of the methods below have clear inputs and outputs, even if not functional: iSAM2 is inherintly imperative.

## Public Member Functions

| UpdateImpl (const ISAM2Params &params, const ISAM2UpdateParams &updateParams)
bool | relinarizationNeeded (size_t update_count) const
void | pushBackFactors (const NonlinearFactorGraph &newFactors, NonlinearFactorGraph *nonlinearFactors, GaussianFactorGraph *linearFactors, VariableIndex *variableIndex, FactorIndices *newFactorsIndices, KeySet *keysWithRemovedFactors) const
void | computeUnusedKeys (const NonlinearFactorGraph &newFactors, const VariableIndex &variableIndex, const KeySet &keysWithRemovedFactors, KeySet *unusedKeys) const
void | error (const NonlinearFactorGraph &nonlinearFactors, const Values &estimate, boost::optional< double > *result) const
void | gatherInvolvedKeys (const NonlinearFactorGraph &newFactors, const NonlinearFactorGraph &nonlinearFactors, const KeySet &keysWithRemovedFactors, KeySet *markedKeys) const
void | updateKeys (const KeySet &markedKeys, ISAM2Result *result) const
KeySet | gatherRelinearizeKeys (const ISAM2::Roots &roots, const VectorValues &delta, const KeySet &fixedVariables, KeySet *markedKeys) const
void | recordRelinearizeDetail (const KeySet &relinKeys, ISAM2Result::DetailedResults *detail) const
void | findFluid (const ISAM2::Roots &roots, const KeySet &relinKeys, KeySet *markedKeys, ISAM2Result::DetailedResults *detail) const
void | linearizeNewFactors (const NonlinearFactorGraph &newFactors, const Values &theta, size_t numNonlinearFactors, const FactorIndices &newFactorsIndices, GaussianFactorGraph *linearFactors) const
void | augmentVariableIndex (const NonlinearFactorGraph &newFactors, const FactorIndices &newFactorsIndices, VariableIndex *variableIndex) const

## Static Public Member Functions

static void | LogStartingUpdate (const NonlinearFactorGraph &newFactors, const ISAM2 &isam2)
static void | CheckRelinearizationRecursiveMap (const FastMap< char, Vector > &thresholds, const VectorValues &delta, const ISAM2::sharedClique &clique, KeySet *relinKeys)
static void | CheckRelinearizationRecursiveDouble (double threshold, const VectorValues &delta, const ISAM2::sharedClique &clique, KeySet *relinKeys)
static KeySet | CheckRelinearizationPartial (const ISAM2::Roots &roots, const VectorValues &delta, const ISAM2Params::RelinearizationThreshold &relinearizeThreshold)
| Find the set of variables to be relinearized according to relinearizeThreshold.
static KeySet | CheckRelinearizationFull (const VectorValues &delta, const ISAM2Params::RelinearizationThreshold &relinearizeThreshold)
| Find the set of variables to be relinearized according to relinearizeThreshold.
static void | LogRecalculateKeys (const ISAM2Result &result)
static FactorIndexSet | GetAffectedFactors (const KeyList &keys, const VariableIndex &variableIndex)
static GaussianFactorGraph | GetCachedBoundaryFactors (const ISAM2::Cliques &orphans)

## Public Attributes

const ISAM2Params & | params_
const ISAM2UpdateParams & | updateParams_

## Member Function Documentation

## CheckRelinearizationFull()

KeySet gtsam::UpdateImpl::CheckRelinearizationFull | ( | const VectorValues & | delta,
|  | const ISAM2Params::RelinearizationThreshold & | relinearizeThreshold )

inline static

Find the set of variables to be relinearized according to relinearizeThreshold.

Any variables in the VectorValues delta whose vector magnitude is greater than or equal to relinearizeThreshold are returned.

Parameters

  delta | The linear delta to check against the threshold
  keyFormatter | Formatter for printing nonlinear keys during debugging

Returns
  The set of variable indices in delta whose magnitude is greater than or equal to relinearizeThreshold

## CheckRelinearizationPartial()

KeySet gtsam::UpdateImpl::CheckRelinearizationPartial | ( | const ISAM2::Roots & | roots,
|  | const VectorValues & | delta,
|  | const ISAM2Params::RelinearizationThreshold & | relinearizeThreshold )

inline static

Find the set of variables to be relinearized according to relinearizeThreshold.

This check is performed recursively, starting at the top of the tree. Once a variable in the tree does not need to be relinearized, no further checks in that branch are performed. This is an approximation of the Full version, designed to save time at the expense of accuracy.

Parameters

  delta | The linear delta to check against the threshold
  keyFormatter | Formatter for printing nonlinear keys during debugging

Returns
  The set of variable indices in delta whose magnitude is greater than or equal to relinearizeThreshold

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

- /build/gtsam-RkN8wG/gtsam-4.2.2+dfsg/gtsam/nonlinear/ISAM2-impl.h