GTSAM
4.0.2
C++ library for smoothing and mapping (SAM)
|
Public Types | |
typedef ISAM< HybridBayesTree > | Base |
typedef HybridGaussianISAM | This |
typedef std::shared_ptr< This > | shared_ptr |
typedef Base::BayesNetType | BayesNetType |
typedef Base::FactorGraphType | FactorGraphType |
typedef Base::Clique | Clique |
typedef Base::sharedClique | sharedClique |
typedef Base::Cliques | Cliques |
typedef Clique | Node |
Synonym for Clique (TODO: remove) | |
typedef sharedClique | sharedNode |
Synonym for sharedClique (TODO: remove) | |
typedef HybridBayesTreeClique ::ConditionalType | ConditionalType |
typedef std::shared_ptr< ConditionalType > | sharedConditional |
typedef std::shared_ptr< BayesNetType > | sharedBayesNet |
typedef HybridBayesTreeClique ::FactorType | FactorType |
typedef std::shared_ptr< FactorType > | sharedFactor |
typedef std::shared_ptr< FactorGraphType > | sharedFactorGraph |
typedef ConcurrentMap< Key, sharedClique > | Nodes |
typedef FastVector< sharedClique > | Roots |
Public Member Functions | |
void | update (const HybridGaussianFactorGraph &newFactors, const std::optional< size_t > &maxNrLeaves={}, const std::optional< Ordering > &ordering={}, const HybridBayesTree::Eliminate &function=HybridBayesTree::EliminationTraitsType::DefaultEliminate) |
Perform update step with new factors. More... | |
Standard Constructors | |
HybridGaussianISAM () | |
HybridGaussianISAM (const HybridBayesTree &bayesTree) | |
Advanced Interface Interface | |
void | update (const FactorGraphType &newFactors, const Eliminate &function=EliminationTraitsType::DefaultEliminate) |
void | updateInternal (const FactorGraphType &newFactors, Cliques *orphans, const Eliminate &function=EliminationTraitsType::DefaultEliminate) |
Standard interface | |
bool | equals (const This &other, double tol=1e-9) const |
GaussianBayesTree | choose (const DiscreteValues &assignment) const |
Get the Gaussian Bayes Tree which corresponds to a specific discrete value assignment. More... | |
HybridValues | optimize () const |
Optimize the hybrid Bayes tree by computing the MPE for the current set of discrete variables and using it to compute the best continuous update delta. More... | |
VectorValues | optimize (const DiscreteValues &assignment) const |
Recursively optimize the BayesTree to produce a vector solution. More... | |
void | prune (const size_t maxNumberLeaves) |
Prune the underlying Bayes tree. More... | |
Standard Interface | |
size_t | size () const |
bool | empty () const |
const Nodes & | nodes () const |
sharedClique | operator[] (Key j) const |
const Roots & | roots () const |
const sharedClique & | clique (Key j) const |
BayesTreeCliqueData | getCliqueData () const |
size_t | numCachedSeparatorMarginals () const |
sharedConditional | marginalFactor (Key j, const Eliminate &function=EliminationTraitsType::DefaultEliminate) const |
sharedFactorGraph | joint (Key j1, Key j2, const Eliminate &function=EliminationTraitsType::DefaultEliminate) const |
sharedBayesNet | jointBayesNet (Key j1, Key j2, const Eliminate &function=EliminationTraitsType::DefaultEliminate) const |
Graph Display | |
void | dot (std::ostream &os, const KeyFormatter &keyFormatter=DefaultKeyFormatter) const |
Output to graphviz format, stream version. | |
std::string | dot (const KeyFormatter &keyFormatter=DefaultKeyFormatter) const |
Output to graphviz format string. | |
void | saveGraph (const std::string &filename, const KeyFormatter &keyFormatter=DefaultKeyFormatter) const |
output to file with graphviz format. | |
Static Public Member Functions | |
static Ordering | GetOrdering (HybridGaussianFactorGraph &factors, const HybridGaussianFactorGraph &newFactors) |
Helper method to get an ordering given the existing factors and any new factors added. More... | |
Protected Attributes | |
Nodes | nodes_ |
Roots | roots_ |
Testable | |
void | print (const std::string &s="", const KeyFormatter &keyFormatter=DefaultKeyFormatter) const |
bool | equals (const This &other, double tol=1e-9) const |
Advanced Interface | |
Key | findParentClique (const CONTAINER &parents) const |
void | clear () |
void | deleteCachedShortcuts () |
void | removePath (sharedClique clique, BayesNetType *bn, Cliques *orphans) |
void | removeTop (const KeyVector &keys, BayesNetType *bn, Cliques *orphans) |
Cliques | removeSubtree (const sharedClique &subtree) |
void | insertRoot (const sharedClique &subtree) |
void | addClique (const sharedClique &clique, const sharedClique &parent_clique=sharedClique()) |
void | addFactorsToGraph (FactorGraph< FactorType > *graph) const |
void | getCliqueData (sharedClique clique, BayesTreeCliqueData *stats) const |
void | dot (std::ostream &s, sharedClique clique, const KeyFormatter &keyFormatter, int parentnum=0) const |
void | removeClique (sharedClique clique) |
void | fillNodesIndex (const sharedClique &subtree) |
|
inherited |
Map from keys to Clique
|
inherited |
Root cliques
gtsam::HybridGaussianISAM::HybridGaussianISAM | ( | ) |
Create an empty Bayes Tree
gtsam::HybridGaussianISAM::HybridGaussianISAM | ( | const HybridBayesTree & | bayesTree | ) |
Copy constructor
|
inherited |
add a clique (top down)
|
inherited |
Add all cliques in this BayesTree to the specified factor graph
|
inherited |
Get the Gaussian Bayes Tree which corresponds to a specific discrete value assignment.
assignment | The discrete value assignment for the discrete keys. |
|
inherited |
Remove all nodes
|
inlineinherited |
alternate syntax for matlab: find the clique that contains the variable with Key j
|
inherited |
Clear all shortcut caches - use before timing on marginal calculation to avoid residual cache data
|
protectedinherited |
private helper method for saving the Tree to a text file in GraphViz format
|
inlineinherited |
Check if there are any cliques in the tree
|
inherited |
Check equality
|
protectedinherited |
check equality
|
protectedinherited |
Fill the nodes index for a subtree
|
inherited |
Find parent clique of a conditional. It will look at all parents and return the one with the lowest index in the ordering.
|
inherited |
Gather data on all cliques
|
protectedinherited |
Gather data on a single clique
|
static |
|
inherited |
Insert a new subtree with known parent clique. This function does not check that the specified parent is the correct parent. This function updates all of the internal data structures associated with adding a subtree, such as populating the nodes index.
|
inherited |
return joint on two variables Limitation: can only calculate joint if cliques are disjoint or one of them is root
|
inherited |
return joint on two variables as a BayesNet Limitation: can only calculate joint if cliques are disjoint or one of them is root
|
inherited |
Return marginal on any variable. Note that this actually returns a conditional, for which a solution may be directly obtained by calling .solve() on the returned object. Alternatively, it may be directly used as its factor base class. For example, for Gaussian systems, this returns a GaussianConditional, which inherits from JacobianFactor and GaussianFactor.
|
inlineinherited |
Return nodes. Each node is a clique of variables obtained after elimination.
|
inherited |
Collect number of cliques with cached separator marginals
|
inlineinherited |
Access node by variable
|
inherited |
Optimize the hybrid Bayes tree by computing the MPE for the current set of discrete variables and using it to compute the best continuous update delta.
|
inherited |
Recursively optimize the BayesTree to produce a vector solution.
assignment | The discrete values assignment to select the Gaussian mixtures. |
|
inherited |
|
inherited |
Prune the underlying Bayes tree.
maxNumberLeaves | The max number of leaf nodes to keep. |
|
protectedinherited |
remove a clique: warning, can result in a forest
|
inherited |
Remove path from clique to root and return that path as factors plus a list of orphaned subtree roots. Used in removeTop below.
|
inherited |
Remove the requested subtree.
|
inherited |
Given a list of indices, turn "contaminated" part of the tree back into a factor graph. Factors and orphans are added to the in/out arguments.
|
inlineinherited |
return root cliques
|
inherited |
number of cliques
|
inherited |
update the Bayes tree with a set of new factors, typically derived from measurements
newFactors | is a factor graph that contains the new factors |
function | an elimination routine |
void gtsam::HybridGaussianISAM::update | ( | const HybridGaussianFactorGraph & | newFactors, |
const std::optional< size_t > & | maxNrLeaves = {} , |
||
const std::optional< Ordering > & | ordering = {} , |
||
const HybridBayesTree::Eliminate & | function = HybridBayesTree::EliminationTraitsType::DefaultEliminate |
||
) |
Perform update step with new factors.
newFactors | Factor graph of new factors to add and eliminate. |
maxNrLeaves | The maximum number of leaves to keep after pruning. |
ordering | Custom elimination ordering. |
function | Elimination function. |
|
inherited |
updateInternal provides access to list of orphans for drawing purposes
|
protectedinherited |
Map from indices to Clique
|
protectedinherited |
Root cliques