diff --git a/gtsam/hybrid/HybridBayesNet.cpp b/gtsam/hybrid/HybridBayesNet.cpp index 1a9a9dcc5..3bafe5a9c 100644 --- a/gtsam/hybrid/HybridBayesNet.cpp +++ b/gtsam/hybrid/HybridBayesNet.cpp @@ -139,27 +139,16 @@ DecisionTreeFactor HybridBayesNet::pruneDiscreteConditionals( for (size_t i = 0; i < this->size(); i++) { auto conditional = this->at(i); if (conditional->isDiscrete()) { - std::cout << ">>>" << std::endl; - conditional->print(); discreteProbs = discreteProbs * (*conditional->asDiscrete()); - // discreteProbs.print(); - // std::cout << "================\n" << std::endl; Ordering conditional_keys(conditional->frontals()); discrete_frontals += conditional_keys; discrete_factor_idxs.push_back(i); } } - std::cout << "Original Joint Prob:" << std::endl; - std::cout << discreteProbs.nrAssignments() << std::endl; - discreteProbs.print(); + const DecisionTreeFactor prunedDiscreteProbs = discreteProbs.prune(maxNrLeaves); - std::cout << "Pruned Joint Prob:" << std::endl; - std::cout << prunedDiscreteProbs.nrAssignments() << std::endl; - prunedDiscreteProbs.print(); - std::cout << "\n\n\n"; - gttoc_(HybridBayesNet_PruneDiscreteConditionals); // Eliminate joint probability back into conditionals DiscreteFactorGraph dfg{prunedDiscreteProbs}; @@ -168,8 +157,6 @@ DecisionTreeFactor HybridBayesNet::pruneDiscreteConditionals( // Assign pruned discrete conditionals back at the correct indices. for (size_t i = 0; i < discrete_factor_idxs.size(); i++) { size_t idx = discrete_factor_idxs.at(i); - // std::cout << i << std::endl; - // dbn->at(i)->print(); this->at(idx) = std::make_shared(dbn->at(i)); } diff --git a/gtsam/hybrid/HybridGaussianFactorGraph.cpp b/gtsam/hybrid/HybridGaussianFactorGraph.cpp index ee36ecc87..191e13d76 100644 --- a/gtsam/hybrid/HybridGaussianFactorGraph.cpp +++ b/gtsam/hybrid/HybridGaussianFactorGraph.cpp @@ -96,7 +96,6 @@ static GaussianFactorGraphTree addGaussian( // TODO(dellaert): it's probably more efficient to first collect the discrete // keys, and then loop over all assignments to populate a vector. GaussianFactorGraphTree HybridGaussianFactorGraph::assembleGraphTree() const { - GaussianFactorGraphTree result; for (auto &f : factors_) { @@ -175,7 +174,7 @@ discreteElimination(const HybridGaussianFactorGraph &factors, throwRuntimeError("continuousElimination", f); } } - dfg.print("The DFG to eliminate"); + // NOTE: This does sum-product. For max-product, use EliminateForMPE. auto result = EliminateDiscrete(dfg, frontalKeys);