Comments
parent
268838a962
commit
c7284ec8fa
|
|
@ -23,6 +23,15 @@ namespace gtsam {
|
|||
/**
|
||||
* An elimination tree is a data structure used intermediately during
|
||||
* elimination, and it can be used to save work between multiple eliminations.
|
||||
*
|
||||
* When a variable is eliminated, a new factor is created, which will involve
|
||||
* other variables. Of those, the first one that will be eliminated next, will
|
||||
* need that factor. In the elimination tree, that first variable is exactly
|
||||
* the parent of each variable. This yields a tree in general, and not a chain
|
||||
* because of the implicit sparse structure of the resulting Bayes net.
|
||||
*
|
||||
* This structures is examined even more closely in a JunctionTree, which
|
||||
* additionally identifies cliques in the chordal Bayes net.
|
||||
*/
|
||||
template<class FACTOR>
|
||||
class EliminationTree: public Testable<EliminationTree<FACTOR> > {
|
||||
|
|
|
|||
|
|
@ -26,6 +26,14 @@
|
|||
|
||||
namespace gtsam {
|
||||
|
||||
/**
|
||||
* A Generic Multifrontal Solver class
|
||||
* Takes two template arguments:
|
||||
* FACTOR the factor type, e.g., GaussianFactor, DiscreteFactor
|
||||
* JUNCTIONTREE annoyingly, you also have to supply a compatible JT type
|
||||
* i.e., one templated on a factor graph with the same factors
|
||||
* TODO: figure why this is so and possibly fix it
|
||||
*/
|
||||
template<class FACTOR, class JUNCTIONTREE>
|
||||
class GenericMultifrontalSolver {
|
||||
|
||||
|
|
@ -41,7 +49,8 @@ public:
|
|||
|
||||
/**
|
||||
* Construct the solver for a factor graph. This builds the junction
|
||||
* tree, which already does some of the work of elimination.
|
||||
* tree, which does the symbolic elimination, identifies the cliques,
|
||||
* and distributes all the factors to the right cliques.
|
||||
*/
|
||||
GenericMultifrontalSolver(const FactorGraph<FACTOR>& factorGraph);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue