#include <EliminationTree.h>
| Classes | |
| struct | Node | 
| Public Types | |
| typedef BAYESNET | BayesNetType | 
| The BayesNet corresponding to FACTOR.  More... | |
| typedef BayesNetType::ConditionalType | ConditionalType | 
| The type of conditionals.  More... | |
| typedef GRAPH::Eliminate | Eliminate | 
| typedef GRAPH | FactorGraphType | 
| The factor graph type.  More... | |
| typedef GRAPH::FactorType | FactorType | 
| The type of factors.  More... | |
| typedef std::shared_ptr< ConditionalType > | sharedConditional | 
| Shared pointer to a conditional.  More... | |
| typedef std::shared_ptr< FactorType > | sharedFactor | 
| Shared pointer to a factor.  More... | |
| typedef std::shared_ptr< Node > | sharedNode | 
| Shared pointer to Node.  More... | |
| Protected Types | |
| typedef std::shared_ptr< This > | shared_ptr | 
| Shared pointer to this class.  More... | |
| typedef EliminationTree< BAYESNET, GRAPH > | This | 
| This class.  More... | |
| Protected Member Functions | |
| ~EliminationTree () | |
| Protected Attributes | |
| FastVector< sharedFactor > | remainingFactors_ | 
| FastVector< sharedNode > | roots_ | 
| Standard Constructors | |
| EliminationTree (const FactorGraphType &factorGraph, const VariableIndex &structure, const Ordering &order) | |
| EliminationTree (const FactorGraphType &factorGraph, const Ordering &order) | |
| EliminationTree (const This &other) | |
| This & | operator= (const This &other) | 
| Standard Interface | |
| std::pair< std::shared_ptr< BayesNetType >, std::shared_ptr< FactorGraphType > > | eliminate (Eliminate function) const | 
| Testable | |
| bool | equals (const This &other, double tol=1e-9) const | 
| void | print (const std::string &name="EliminationTree: ", const KeyFormatter &formatter=DefaultKeyFormatter) const | 
| Advanced Interface | |
| class | ::EliminationTreeTester | 
| Allow access to constructor and add methods for testing purposes.  More... | |
| EliminationTree () | |
| Protected default constructor.  More... | |
| const FastVector< sharedNode > & | roots () const | 
| const FastVector< sharedFactor > & | remainingFactors () const | 
| void | swap (This &other) | 
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 lowest-ordered one of those variables is eliminated, it consumes that combined factor. In the elimination tree, that lowest-ordered 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.
Definition at line 51 of file EliminationTree.h.
| typedef BAYESNET gtsam::EliminationTree< BAYESNET, GRAPH >::BayesNetType | 
The BayesNet corresponding to FACTOR.
Definition at line 61 of file EliminationTree.h.
| typedef BayesNetType::ConditionalType gtsam::EliminationTree< BAYESNET, GRAPH >::ConditionalType | 
The type of conditionals.
Definition at line 62 of file EliminationTree.h.
| typedef GRAPH::Eliminate gtsam::EliminationTree< BAYESNET, GRAPH >::Eliminate | 
Definition at line 64 of file EliminationTree.h.
| typedef GRAPH gtsam::EliminationTree< BAYESNET, GRAPH >::FactorGraphType | 
The factor graph type.
Definition at line 58 of file EliminationTree.h.
| typedef GRAPH::FactorType gtsam::EliminationTree< BAYESNET, GRAPH >::FactorType | 
The type of factors.
Definition at line 59 of file EliminationTree.h.
| 
 | protected | 
Shared pointer to this class.
Definition at line 55 of file EliminationTree.h.
| typedef std::shared_ptr<ConditionalType> gtsam::EliminationTree< BAYESNET, GRAPH >::sharedConditional | 
Shared pointer to a conditional.
Definition at line 63 of file EliminationTree.h.
| typedef std::shared_ptr<FactorType> gtsam::EliminationTree< BAYESNET, GRAPH >::sharedFactor | 
Shared pointer to a factor.
Definition at line 60 of file EliminationTree.h.
| typedef std::shared_ptr<Node> gtsam::EliminationTree< BAYESNET, GRAPH >::sharedNode | 
Shared pointer to Node.
Definition at line 80 of file EliminationTree.h.
| 
 | protected | 
This class.
Definition at line 54 of file EliminationTree.h.
| 
 | protected | 
Build the elimination tree of a factor graph using pre-computed 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. | 
Definition at line 78 of file EliminationTree-inst.h.
| 
 | 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 | 
Definition at line 160 of file EliminationTree-inst.h.
| 
 | inlineprotected | 
Copy constructor - makes a deep copy of the tree structure, but only pointers to factors are copied, factors are not cloned.
Definition at line 112 of file EliminationTree.h.
| 
 | protected | 
Destructor Using default destructor causes stack overflow for large trees due to recursive destruction of nodes; so we manually decrease the reference count of each node in the tree through a BFS, and the nodes with reference count 0 will be deleted. Please see PR-1441 for more details.
Definition at line 193 of file EliminationTree-inst.h.
| 
 | inlineprotected | 
Protected default constructor.
Definition at line 164 of file EliminationTree.h.
| std::pair< std::shared_ptr< BAYESNET >, std::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 | 
Definition at line 224 of file EliminationTree-inst.h.
| 
 | protected | 
Test whether the tree is equal to another
Definition at line 251 of file EliminationTree-inst.h.
| 
 | protected | 
Assignment operator - makes a deep copy of the tree structure, but only pointers to factors are copied, factors are not cloned.
Definition at line 173 of file EliminationTree-inst.h.
| void gtsam::EliminationTree< BAYESNET, GRAPH >::print | ( | const std::string & | name = "EliminationTree< BAYESNET, GRAPH >: ", | 
| const KeyFormatter & | formatter = DefaultKeyFormatter | ||
| ) | const | 
Print the tree to cout
Definition at line 244 of file EliminationTree-inst.h.
| 
 | inline | 
Return the remaining factors that are not pulled into elimination
Definition at line 157 of file EliminationTree.h.
| 
 | inline | 
Return the set of roots (one for a tree, multiple for a forest)
Definition at line 154 of file EliminationTree.h.
| void gtsam::EliminationTree< BAYESNET, GRAPH >::swap | ( | This & | other | ) | 
Swap the data of this tree with another one, this operation is very fast.
Definition at line 320 of file EliminationTree-inst.h.
| 
 | friend | 
Allow access to constructor and add methods for testing purposes.
Definition at line 168 of file EliminationTree.h.
| 
 | protected | 
Definition at line 87 of file EliminationTree.h.
| 
 | protected | 
concept check
Definition at line 86 of file EliminationTree.h.