|
GTSAM
4.0.2
C++ library for smoothing and mapping (SAM)
|
#include <DiscreteBayesTree.h>


Public Types | |
| typedef DiscreteBayesTreeClique | This |
| typedef BayesTreeCliqueBase< DiscreteBayesTreeClique, DiscreteFactorGraph > | Base |
| typedef std::shared_ptr< This > | shared_ptr |
| typedef std::weak_ptr< This > | weak_ptr |
| typedef DiscreteFactorGraph | 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 | |
| DiscreteBayesTreeClique (const std::shared_ptr< DiscreteConditional > &conditional) | |
| void | printSignature (const std::string &s="Clique: ", const KeyFormatter &formatter=DefaultKeyFormatter) const |
| print index signature only | |
| double | evaluate (const DiscreteValues &values) const |
| void | setEliminationResult (const typename FactorGraphType::EliminationResult &eliminationResult) |
Testable | |
| bool | equals (const DiscreteBayesTreeClique &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 DiscreteBayesTree
|
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.
1.8.13