From c7284ec8faedf24c84f0d19871bd6ec0563bac14 Mon Sep 17 00:00:00 2001 From: Frank Dellaert Date: Mon, 28 Feb 2011 04:02:38 +0000 Subject: [PATCH] Comments --- gtsam/inference/EliminationTree.h | 9 +++++++++ gtsam/inference/GenericMultifrontalSolver.h | 11 ++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/gtsam/inference/EliminationTree.h b/gtsam/inference/EliminationTree.h index d2aa7df90..0848a4b53 100644 --- a/gtsam/inference/EliminationTree.h +++ b/gtsam/inference/EliminationTree.h @@ -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 EliminationTree: public Testable > { diff --git a/gtsam/inference/GenericMultifrontalSolver.h b/gtsam/inference/GenericMultifrontalSolver.h index 8ad85bee1..3ac85fc70 100644 --- a/gtsam/inference/GenericMultifrontalSolver.h +++ b/gtsam/inference/GenericMultifrontalSolver.h @@ -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 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& factorGraph);