undo previous changes

release/4.3a0
Varun Agrawal 2023-07-23 17:09:51 -04:00
parent 52f26e3e97
commit 2df3cc80a9
2 changed files with 16 additions and 17 deletions

View File

@ -175,15 +175,14 @@ VectorValues HybridBayesTree::optimize(const DiscreteValues& assignment) const {
void HybridBayesTree::prune(const size_t maxNrLeaves) { void HybridBayesTree::prune(const size_t maxNrLeaves) {
auto discreteProbs = this->roots_.at(0)->conditional()->asDiscrete(); auto discreteProbs = this->roots_.at(0)->conditional()->asDiscrete();
// TODO(Varun) DecisionTreeFactor prunedDiscreteProbs = discreteProbs->prune(maxNrLeaves);
// TableFactor prunedDiscreteProbs = discreteProbs->prune(maxNrLeaves); discreteProbs->root_ = prunedDiscreteProbs.root_;
// discreteProbs->root_ = prunedDiscreteProbs.root_;
/// Helper struct for pruning the hybrid bayes tree. /// Helper struct for pruning the hybrid bayes tree.
struct HybridPrunerData { struct HybridPrunerData {
/// The discrete decision tree after pruning. /// The discrete decision tree after pruning.
TableFactor prunedDiscreteProbs; DecisionTreeFactor prunedDiscreteProbs;
HybridPrunerData(const TableFactor& prunedDiscreteProbs, HybridPrunerData(const DecisionTreeFactor& prunedDiscreteProbs,
const HybridBayesTree::sharedNode& parentClique) const HybridBayesTree::sharedNode& parentClique)
: prunedDiscreteProbs(prunedDiscreteProbs) {} : prunedDiscreteProbs(prunedDiscreteProbs) {}
@ -211,16 +210,15 @@ void HybridBayesTree::prune(const size_t maxNrLeaves) {
} }
}; };
// TODO(Varun) HybridPrunerData rootData(prunedDiscreteProbs, 0);
// HybridPrunerData rootData(prunedDiscreteProbs, 0); {
// { treeTraversal::no_op visitorPost;
// treeTraversal::no_op visitorPost; // Limits OpenMP threads since we're mixing TBB and OpenMP
// // Limits OpenMP threads since we're mixing TBB and OpenMP TbbOpenMPMixedScope threadLimiter;
// TbbOpenMPMixedScope threadLimiter; treeTraversal::DepthFirstForestParallel(
// treeTraversal::DepthFirstForestParallel( *this, rootData, HybridPrunerData::AssignmentPreOrderVisitor,
// *this, rootData, HybridPrunerData::AssignmentPreOrderVisitor, visitorPost);
// visitorPost); }
// }
} }
} // namespace gtsam } // namespace gtsam

View File

@ -273,8 +273,9 @@ hybridElimination(const HybridGaussianFactorGraph &factors,
DecisionTree<Key, double> probabilities(eliminationResults, probability); DecisionTree<Key, double> probabilities(eliminationResults, probability);
return {std::make_shared<HybridConditional>(gaussianMixture), return {
std::make_shared<TableFactor>(discreteSeparator, probabilities)}; std::make_shared<HybridConditional>(gaussianMixture),
std::make_shared<DecisionTreeFactor>(discreteSeparator, probabilities)};
} else { } else {
// Otherwise, we create a resulting GaussianMixtureFactor on the separator, // Otherwise, we create a resulting GaussianMixtureFactor on the separator,
// taking care to correct for conditional constant. // taking care to correct for conditional constant.