Fixed error calculation

release/4.3a0
Frank Dellaert 2022-12-30 13:59:20 -05:00
parent 395ffad979
commit 3a8220c264
2 changed files with 6 additions and 3 deletions

View File

@ -125,7 +125,8 @@ AlgebraicDecisionTree<Key> GaussianMixtureFactor::error(
/* *******************************************************************************/
double GaussianMixtureFactor::error(const HybridValues &values) const {
const FactorAndConstant factor_z = factors_(values.discrete());
return factor_z.factor->error(values.continuous()) + factor_z.constant;
return factor_z.error(values.continuous());
}
/* *******************************************************************************/
} // namespace gtsam

View File

@ -58,9 +58,11 @@ class GTSAM_EXPORT GaussianMixtureFactor : public HybridFactor {
sharedFactor factor;
double constant;
// Return error with constant added.
// Return error with constant correction.
double error(const VectorValues &values) const {
return factor->error(values) + constant;
// Note minus sign: constant is log of normalization constant for probabilities.
// Errors is the negative log-likelihood, hence we subtract the constant here.
return factor->error(values) - constant;
}
// Check pointer equality.