diff --git a/gtsam/inference/JunctionTree-inst.h b/gtsam/inference/JunctionTree-inst.h index 296bdb434..c88d8927c 100644 --- a/gtsam/inference/JunctionTree-inst.h +++ b/gtsam/inference/JunctionTree-inst.h @@ -23,7 +23,7 @@ #include #include #include -#include +#include namespace gtsam { @@ -130,18 +130,16 @@ namespace gtsam { // current node did not introduce any parents beyond those already in the child. // Do symbolic elimination for this node - SymbolicFactorGraph symbolicFactors; + class : public FactorGraph {} symbolicFactors; symbolicFactors.reserve(ETreeNode->factors.size() + myData.childSymbolicFactors.size()); - // Add symbolic versions of the ETree node factors - BOOST_FOREACH(const typename GRAPH::sharedFactor& factor, ETreeNode->factors) { - symbolicFactors.push_back(boost::make_shared( - SymbolicFactor::FromKeys(*factor))); - } + // Add ETree node factors + symbolicFactors += ETreeNode->factors; // Add symbolic factors passed up from children - symbolicFactors.push_back(myData.childSymbolicFactors.begin(), myData.childSymbolicFactors.end()); + symbolicFactors += myData.childSymbolicFactors; + Ordering keyAsOrdering; keyAsOrdering.push_back(ETreeNode->key); std::pair symbolicElimResult = - EliminateSymbolic(symbolicFactors, keyAsOrdering); + internal::EliminateSymbolic(symbolicFactors, keyAsOrdering); // Store symbolic elimination results in the parent myData.parentData->childSymbolicConditionals.push_back(symbolicElimResult.first); diff --git a/gtsam/symbolic/SymbolicFactor-inst.h b/gtsam/symbolic/SymbolicFactor-inst.h index 7b626f2fa..d3d9f58d6 100644 --- a/gtsam/symbolic/SymbolicFactor-inst.h +++ b/gtsam/symbolic/SymbolicFactor-inst.h @@ -59,7 +59,7 @@ namespace gtsam std::set_difference(allKeys.begin(), allKeys.end(), frontals.begin(), frontals.end(), orderedKeys.begin() + nFrontals); // Return resulting conditional and factor - return make_pair( + return std::make_pair( boost::make_shared( SymbolicConditional::FromKeys(orderedKeys, nFrontals)), boost::make_shared(