handle nullptrsin GaussianMixture::error
parent
7695fd6de3
commit
39f7ac20a1
|
|
@ -316,8 +316,15 @@ AlgebraicDecisionTree<Key> GaussianMixture::logProbability(
|
||||||
AlgebraicDecisionTree<Key> GaussianMixture::error(
|
AlgebraicDecisionTree<Key> GaussianMixture::error(
|
||||||
const VectorValues &continuousValues) const {
|
const VectorValues &continuousValues) const {
|
||||||
auto errorFunc = [&](const GaussianConditional::shared_ptr &conditional) {
|
auto errorFunc = [&](const GaussianConditional::shared_ptr &conditional) {
|
||||||
return conditional->error(continuousValues) + //
|
// Check if valid pointer
|
||||||
logConstant_ - conditional->logNormalizationConstant();
|
if (conditional) {
|
||||||
|
return conditional->error(continuousValues) + //
|
||||||
|
logConstant_ - conditional->logNormalizationConstant();
|
||||||
|
} else {
|
||||||
|
// If not valid, pointer, it means this conditional was pruned,
|
||||||
|
// so we return maximum error.
|
||||||
|
return std::numeric_limits<double>::max();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
DecisionTree<Key, double> errorTree(conditionals_, errorFunc);
|
DecisionTree<Key, double> errorTree(conditionals_, errorFunc);
|
||||||
return errorTree;
|
return errorTree;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue