gtsam
4.0.0
gtsam

An elimination tree is a data structure used intermediately during elimination.
In future versions it will be used to save work between multiple eliminations.
When a variable is eliminated, a new factor is created by combining that variable's neighboring factors. The new combined factor involves the combined factors' involved variables. When the lowestordered one of those variables is eliminated, it consumes that combined factor. In the elimination tree, that lowestordered variable is the parent of the variable that was eliminated to produce the combined factor. This yields a tree in general, and not a chain because of the implicit sparse structure of the resulting Bayes net.
This structure is examined even more closely in a JunctionTree, which additionally identifies cliques in the chordal Bayes net.
Standard Constructors  
EliminationTree (const FactorGraphType &factorGraph, const VariableIndex &structure, const Ordering &order)  
Build the elimination tree of a factor graph using precomputed column structure. More...  
EliminationTree (const FactorGraphType &factorGraph, const Ordering &order)  
Build the elimination tree of a factor graph. More...  
EliminationTree (const This &other)  
Copy constructor  makes a deep copy of the tree structure, but only pointers to factors are copied, factors are not cloned. More...  
This &  operator= (const This &other) 
Assignment operator  makes a deep copy of the tree structure, but only pointers to factors are copied, factors are not cloned. More...  
Standard Interface  
std::pair< boost::shared_ptr< BayesNetType >, boost::shared_ptr< FactorGraphType > >  eliminate (Eliminate function) const 
Eliminate the factors to a Bayes net and remaining factor graph. More...  
Testable  
bool  equals (const This &other, double tol=1e9) const 
Test whether the tree is equal to another.  
void  print (const std::string &name="EliminationTree: ", const KeyFormatter &formatter=DefaultKeyFormatter) const 
Print the tree to cout.  
Advanced Interface  
class  ::EliminationTreeTester 
Allow access to constructor and add methods for testing purposes.  
EliminationTree ()  
Protected default constructor.  
const FastVector< sharedNode > &  roots () const 
Return the set of roots (one for a tree, multiple for a forest)  
const FastVector< sharedFactor > &  remainingFactors () const 
Return the remaining factors that are not pulled into elimination.  
void  swap (This &other) 
Swap the data of this tree with another one, this operation is very fast. More...  
Public Types  
typedef GRAPH  FactorGraphType 
The factor graph type.  
typedef GRAPH::FactorType  FactorType 
The type of factors.  
typedef boost::shared_ptr< FactorType >  sharedFactor 
Shared pointer to a factor.  
typedef BAYESNET  BayesNetType 
The BayesNet corresponding to FACTOR.  
typedef BayesNetType::ConditionalType  ConditionalType 
The type of conditionals.  
typedef boost::shared_ptr< ConditionalType >  sharedConditional 
Shared pointer to a conditional.  
typedef GRAPH::Eliminate  Eliminate 
typedef boost::shared_ptr< Node >  sharedNode 
Shared pointer to Node.  
Classes  
struct  Node 
Protected Types  
typedef EliminationTree< BAYESNET, GRAPH >  This 
This class.  
typedef boost::shared_ptr< This >  shared_ptr 
Shared pointer to this class.  
Protected Member Functions  
GTSAM_CONCEPT_TESTABLE_TYPE (FactorType)  
concept check  
Protected Attributes  
FastVector< sharedNode >  roots_ 
FastVector< sharedFactor >  remainingFactors_ 

protected 
Build the elimination tree of a factor graph using precomputed column structure.
factorGraph  The factor graph for which to build the elimination tree 
structure  The set of factors involving each variable. If this is not precomputed, you can call the Create(const FactorGraph<DERIVEDFACTOR>&) named constructor instead. 

protected 
Build the elimination tree of a factor graph.
Note that this has to compute the column structure as a VariableIndex, so if you already have this precomputed, use the other constructor instead.
factorGraph  The factor graph for which to build the elimination tree 

inlineprotected 
Copy constructor  makes a deep copy of the tree structure, but only pointers to factors are copied, factors are not cloned.
std::pair< boost::shared_ptr< BAYESNET >, boost::shared_ptr< GRAPH > > gtsam::EliminationTree< BAYESNET, GRAPH >::eliminate  (  Eliminate  function  )  const 
Eliminate the factors to a Bayes net and remaining factor graph.
function  The function to use to eliminate, see the namespace functions in GaussianFactorGraph.h 

protected 
Assignment operator  makes a deep copy of the tree structure, but only pointers to factors are copied, factors are not cloned.
void gtsam::EliminationTree< BAYESNET, GRAPH >::swap  (  This &  other  ) 
Swap the data of this tree with another one, this operation is very fast.