Specialized Clique structure for ISAM2, incorporating caching and gradient contribution TODO: more documentation.
|
| ISAM2Clique () |
| Default constructor.
|
|
| ISAM2Clique (const ISAM2Clique &other) |
| Copy constructor, does not copy solution pointers as these are invalid in different trees. More...
|
|
ISAM2Clique & | operator= (const ISAM2Clique &other) |
| Assignment operator, does not copy solution pointers as these are invalid in different trees. More...
|
|
void | setEliminationResult (const FactorGraphType::EliminationResult &eliminationResult) |
| Overridden to also store the remaining factor and gradient contribution.
|
|
Base::FactorType::shared_ptr & | cachedFactor () |
| Access the cached factor.
|
|
const Vector & | gradientContribution () const |
| Access the gradient contribution.
|
|
bool | equals (const This &other, double tol=1e-9) const |
|
void | print (const std::string &s="", const KeyFormatter &formatter=DefaultKeyFormatter) const |
| print this node
|
|
void | optimizeWildfire (const KeySet &replaced, double threshold, KeySet *changed, VectorValues *delta, size_t *count) const |
|
bool | optimizeWildfireNode (const KeySet &replaced, double threshold, KeySet *changed, VectorValues *delta, size_t *count) const |
|
void | nnz_internal (size_t *result) const |
| Starting from the root, add up entries of frontal and conditional matrices of each conditional.
|
|
size_t | calculate_nnz () const |
|
void | findAll (const KeySet &markedMask, KeySet *keys) const |
| Recursively search this clique and its children for marked keys appearing in the separator, and add the frontal keys of any cliques whose separator contains any marked keys to the set keys . More...
|
|
void | setEliminationResult (const typename FactorGraphType::EliminationResult &eliminationResult) |
| Fill the elimination result produced during elimination. More...
|
|
bool | equals (const ISAM2Clique &other, double tol=1e-9) const |
| check equality
|
|
void | print (const std::string &s="", const KeyFormatter &keyFormatter=DefaultKeyFormatter) const |
| print this node
|
|
const sharedConditional & | conditional () const |
| Access the conditional.
|
|
bool | isRoot () const |
| is this the root of a Bayes tree ?
|
|
size_t | treeSize () const |
| The size of subtree rooted at this clique, i.e., nr of Cliques.
|
|
size_t | numCachedSeparatorMarginals () const |
| Collect number of cliques with cached separator marginals.
|
|
derived_ptr | parent () const |
| return a shared_ptr to the parent clique
|
|
int | problemSize () const |
| Problem size (used for parallel traversal)
|
|
BayesNetType | shortcut (const derived_ptr &root, Eliminate function=EliminationTraitsType::DefaultEliminate) const |
| return the conditional P(S|Root) on the separator given the root
|
|
FactorGraphType | separatorMarginal (Eliminate function=EliminationTraitsType::DefaultEliminate) const |
| return the marginal P(S) on the separator
|
|
FactorGraphType | marginal2 (Eliminate function=EliminationTraitsType::DefaultEliminate) const |
| return the marginal P(C) of the clique, using marginal caching
|
|
void | deleteCachedShortcuts () |
| This deletes the cached shortcuts of all cliques (subtree) below this clique. More...
|
|
const boost::optional< FactorGraphType > & | cachedSeparatorMarginal () const |
|
void gtsam::ISAM2Clique::findAll |
( |
const KeySet & |
markedMask, |
|
|
KeySet * |
keys |
|
) |
| const |
Recursively search this clique and its children for marked keys appearing in the separator, and add the frontal keys of any cliques whose separator contains any marked keys to the set keys
.
The purpose of this is to discover the cliques that need to be redone due to information propagating to them from cliques that directly contain factors being relinearized.
The original comment says this finds all variables directly connected to the marked ones by measurements. Is this true, because it seems like this would also pull in variables indirectly connected through other frontal or separator variables?
Alternatively could we trace up towards the root for each variable here?