HybridGaussianFactorGraph::errorTree is better encompassing
parent
d145872916
commit
939fdcc720
|
@ -542,10 +542,15 @@ AlgebraicDecisionTree<Key> HybridGaussianFactorGraph::errorTree(
|
||||||
// Iterate over each factor.
|
// Iterate over each factor.
|
||||||
for (auto &factor : factors_) {
|
for (auto &factor : factors_) {
|
||||||
if (auto f = std::dynamic_pointer_cast<HybridFactor>(factor)) {
|
if (auto f = std::dynamic_pointer_cast<HybridFactor>(factor)) {
|
||||||
|
// Check for HybridFactor, and call errorTree
|
||||||
error_tree = error_tree + f->errorTree(continuousValues);
|
error_tree = error_tree + f->errorTree(continuousValues);
|
||||||
} else if (auto f = std::dynamic_pointer_cast<GaussianFactor>(factor)) {
|
} else if (auto f = std::dynamic_pointer_cast<DiscreteFactor>(factor)) {
|
||||||
error_tree =
|
// Skip discrete factors
|
||||||
error_tree + AlgebraicDecisionTree<Key>(f->error(continuousValues));
|
continue;
|
||||||
|
} else {
|
||||||
|
// Everything else is a continuous only factor
|
||||||
|
HybridValues hv(continuousValues, DiscreteValues());
|
||||||
|
error_tree = error_tree + AlgebraicDecisionTree<Key>(factor->error(hv));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return error_tree;
|
return error_tree;
|
||||||
|
|
Loading…
Reference in New Issue