Merge pull request #2004 from borglab/hybrid-fixes

Hybrid Fixes
release/4.3a0
Varun Agrawal 2025-01-26 15:51:44 -05:00 committed by GitHub
commit 648c68d130
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 7 additions and 1 deletions

View File

@ -202,6 +202,11 @@ VectorValues HybridBayesTree::optimize(const DiscreteValues& assignment) const {
/* ************************************************************************* */
void HybridBayesTree::prune(const size_t maxNrLeaves) {
if (!this->roots_.at(0)->conditional()->asDiscrete()) {
// Root of the BayesTree is not a discrete clique, so we do nothing.
return;
}
auto prunedDiscreteProbs =
this->roots_.at(0)->conditional()->asDiscrete<TableDistribution>();

View File

@ -99,7 +99,8 @@ AlgebraicDecisionTree<Key> HybridNonlinearFactor::errorTree(
auto errorFunc =
[continuousValues](const std::pair<sharedFactor, double>& f) {
auto [factor, val] = f;
return factor->error(continuousValues) + val;
return factor ? factor->error(continuousValues) + val
: std::numeric_limits<double>::infinity();
};
return {factors_, errorFunc};
}