functional
parent
4ffc55d8a2
commit
d73ae62d78
|
|
@ -9,6 +9,7 @@
|
|||
#pragma once
|
||||
|
||||
#include <stdexcept>
|
||||
#include <functional>
|
||||
#include <boost/foreach.hpp>
|
||||
#include "EliminationTree.h"
|
||||
|
||||
|
|
@ -52,9 +53,12 @@ namespace gtsam {
|
|||
EliminationTree<FG>::EliminationTree(const OrderedGraphs& graphs) :
|
||||
nrVariables_(graphs.size()), nodes_(nrVariables_) {
|
||||
|
||||
// Create a temporary map from key to ordering index
|
||||
// Get ordering by (map first graphs)
|
||||
Ordering ordering;
|
||||
transform(graphs.begin(), graphs.end(), std::back_inserter(ordering), getName);
|
||||
transform(graphs.begin(), graphs.end(), back_inserter(ordering),
|
||||
_Select1st<typename OrderedGraphs::value_type> ());
|
||||
|
||||
// Create a temporary map from key to ordering index
|
||||
IndexTable<Symbol> indexTable(ordering);
|
||||
|
||||
// Go over the collection in reverse elimination order
|
||||
|
|
@ -68,7 +72,7 @@ namespace gtsam {
|
|||
EliminationTree<FG>::EliminationTree(FG& fg, const Ordering& ordering) :
|
||||
nrVariables_(ordering.size()), nodes_(nrVariables_) {
|
||||
|
||||
// Loop over all variables and get factors that have it
|
||||
// Loop over all variables and get factors that are connected
|
||||
OrderedGraphs graphs;
|
||||
BOOST_FOREACH(const Symbol& key, ordering) {
|
||||
// TODO: a collection of factors is a factor graph and this should be returned
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ namespace gtsam {
|
|||
/**
|
||||
* An elimination tree (see Gilbert01bit) associated with a factorg raph and an ordering
|
||||
* is a cluster-tree where there is one node j for each variable, and the parent of each node
|
||||
* corresponds to the first variable in the ordering that variable j is connected to.
|
||||
* corresponds to the first variable up the ordering in the Cholesky factor that j is connected to.
|
||||
*/
|
||||
template<class FG>
|
||||
class EliminationTree: public ClusterTree<FG> {
|
||||
|
|
@ -41,10 +41,6 @@ namespace gtsam {
|
|||
typedef std::vector<sharedNode> Nodes;
|
||||
Nodes nodes_;
|
||||
|
||||
static inline Symbol getName(const NamedGraph& namedGraph) {
|
||||
return namedGraph.first;
|
||||
}
|
||||
|
||||
/**
|
||||
* add a factor graph fragment with given frontal key into the tree. Assumes
|
||||
* parent node was already added (will throw exception if not).
|
||||
|
|
|
|||
Loading…
Reference in New Issue