/* ---------------------------------------------------------------------------- * GTSAM Copyright 2010, Georgia Tech Research Corporation, * Atlanta, Georgia 30332-0415 * All Rights Reserved * Authors: Frank Dellaert, et al. (see THANKS for the full author list) * See LICENSE for the license information * -------------------------------------------------------------------------- */ /** * @file DiscreteBayesTree.cpp * @brief Discrete Bayes Tree, the result of eliminating a DiscreteJunctionTree * @brief DiscreteBayesTree * @author Frank Dellaert * @author Richard Roberts */ #include #include #include #include #include namespace gtsam { // Instantiate base class template class BayesTreeCliqueBase; template class BayesTree; /* ************************************************************************* */ double DiscreteBayesTreeClique::evaluate( const DiscreteConditional::Values& values) const { // evaluate all conditionals and multiply double result = (*conditional_)(values); for (const auto& child : children) { result *= child->evaluate(values); } return result; } /* ************************************************************************* */ bool DiscreteBayesTree::equals(const This& other, double tol) const { return Base::equals(other, tol); } /* ************************************************************************* */ double DiscreteBayesTree::evaluate( const DiscreteConditional::Values& values) const { double result = 1.0; for (const auto& root : roots_) { result *= root->evaluate(values); } return result; } } // \namespace gtsam