22 #include <boost/foreach.hpp>
32 template<
class BAYESTREE>
33 void optimizeInPlace(
const typename BAYESTREE::sharedClique& clique, VectorValues& result) {
35 clique->conditional()->solveInPlace(result);
38 BOOST_FOREACH(
const typename BAYESTREE::sharedClique& child, clique->children_)
39 optimizeInPlace<BAYESTREE>(child, result);
43 template<class BAYESTREE>
44 double logDeterminant(const typename BAYESTREE::sharedClique& clique) {
48 result += clique->conditional()->get_R().diagonal().unaryExpr(std::ptr_fun<double,double>(log)).sum();
51 BOOST_FOREACH(
const typename BAYESTREE::sharedClique& child, clique->children_)
52 result += logDeterminant<BAYESTREE>(child);
Gaussian Bayes Tree, the result of eliminating a GaussianJunctionTree.