gtsam 4.1.1
gtsam
|
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 ¶ms, 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. More... | |
static KeySet | CheckRelinearizationFull (const VectorValues &delta, const ISAM2Params::RelinearizationThreshold &relinearizeThreshold) |
Find the set of variables to be relinearized according to relinearizeThreshold. More... | |
static void | ExpmapMasked (const VectorValues &delta, const KeySet &mask, Values *theta) |
Apply expmap to the given values, but only for indices appearing in mask . More... | |
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_ |
|
inlinestatic |
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.
delta | The linear delta to check against the threshold |
keyFormatter | Formatter for printing nonlinear keys during debugging |
|
inlinestatic |
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.
delta | The linear delta to check against the threshold |
keyFormatter | Formatter for printing nonlinear keys during debugging |
|
inlinestatic |
Apply expmap to the given values, but only for indices appearing in mask
.
Values are expmapped in-place.
mask | Mask on linear indices, only true entries are expmapped |