GTSAM
4.0.2
C++ library for smoothing and mapping (SAM)
|
A clique in a SymbolicBayesTree. More...
#include <SymbolicBayesTree.h>
Public Types | |
typedef SymbolicBayesTreeClique | This |
typedef BayesTreeCliqueBase< SymbolicBayesTreeClique, SymbolicFactorGraph > | Base |
typedef std::shared_ptr< This > | shared_ptr |
typedef std::weak_ptr< This > | weak_ptr |
typedef SymbolicFactorGraph | FactorGraphType |
typedef EliminationTraitsType::BayesNetType | BayesNetType |
typedef BayesNetType::ConditionalType | ConditionalType |
typedef std::shared_ptr< ConditionalType > | sharedConditional |
typedef FactorGraphType::FactorType | FactorType |
typedef FactorGraphType::Eliminate | Eliminate |
Public Member Functions | |
SymbolicBayesTreeClique (const std::shared_ptr< SymbolicConditional > &conditional) | |
void | setEliminationResult (const typename FactorGraphType::EliminationResult &eliminationResult) |
Testable | |
bool | equals (const SymbolicBayesTreeClique &other, double tol=1e-9) const |
virtual void | print (const std::string &s="", const KeyFormatter &keyFormatter=DefaultKeyFormatter) const |
Standard Interface | |
const sharedConditional & | conditional () const |
bool | isRoot () const |
size_t | treeSize () const |
size_t | numCachedSeparatorMarginals () const |
derived_ptr | parent () const |
int | problemSize () const |
Public Attributes | |
sharedConditional | conditional_ |
derived_weak_ptr | parent_ |
FastVector< derived_ptr > | children |
int | problemSize_ |
bool | is_root |
Protected Attributes | |
std::optional< FactorGraphType > | cachedSeparatorMarginal_ |
This stores the Cached separator marginal P(S) | |
std::mutex | cachedSeparatorMarginalMutex_ |
Advanced Interface | |
BayesNetType | shortcut (const derived_ptr &root, Eliminate function=EliminationTraitsType::DefaultEliminate) const |
FactorGraphType | separatorMarginal (Eliminate function=EliminationTraitsType::DefaultEliminate) const |
FactorGraphType | marginal2 (Eliminate function=EliminationTraitsType::DefaultEliminate) const |
void | deleteCachedShortcuts () |
const std::optional< FactorGraphType > & | cachedSeparatorMarginal () const |
KeyVector | separator_setminus_B (const derived_ptr &B) const |
Calculate set \( S \setminus B \) for shortcut calculations. | |
KeyVector | shortcut_indices (const derived_ptr &B, const FactorGraphType &p_Cp_B) const |
void | deleteCachedShortcutsNonRecursive () |
A clique in a SymbolicBayesTree.
|
inlineinherited |
Access the conditional
|
inherited |
This deletes the cached shortcuts of all cliques (subtree) below this clique. This is performed when the bayes tree is modified.
|
inlineprotectedinherited |
Non-recursive delete cached shortcuts and marginals - internal only.
|
inherited |
check equality
|
inlineinherited |
is this the root of a Bayes tree ?
|
inherited |
return the marginal P(C) of the clique, using marginal caching
|
inherited |
Collect number of cliques with cached separator marginals
|
inlineinherited |
return a shared_ptr to the parent clique
|
virtualinherited |
print this node
|
inlineinherited |
Problem size (used for parallel traversal)
|
inherited |
return the marginal P(S) on the separator
|
inherited |
Fill the elimination result produced during elimination. Here this just stores the conditional and ignores the remaining factor, but this is overridden in ISAM2Clique to also cache the remaining factor.
|
inherited |
return the conditional P(S|Root) on the separator given the root
|
protectedinherited |
Determine variable indices to keep in recursive separator shortcut calculation The factor graph p_Cp_B has keys from the parent clique Cp and from B. But we only keep the variables not in S union B.
|
inherited |
The size of subtree rooted at this clique, i.e., nr of Cliques
|
mutableprotectedinherited |
This protects Cached seperator marginal P(S) from concurrent read/writes as many the functions which access it are const (hence the mutable) leading to the false impression that these const functions are thread-safe which is not true due to these mutable values. This is fixed by applying this mutex.