fix error using value for HybridNonlinearFactor

release/4.3a0
Varun Agrawal 2024-09-14 15:14:02 -04:00
parent cfe2ad56bf
commit 48e087e083
2 changed files with 3 additions and 3 deletions

View File

@ -119,7 +119,7 @@ class GTSAM_EXPORT HybridGaussianFactor : public HybridFactor {
/// @name Standard API
/// @{
/// Get the factor and scalar at a given discrete assignment.
/// Get factor at a given discrete assignment.
sharedFactor operator()(const DiscreteValues &assignment) const;
/**

View File

@ -138,7 +138,7 @@ class HybridNonlinearFactor : public HybridFactor {
auto errorFunc =
[continuousValues](const std::pair<sharedFactor, double>& f) {
auto [factor, val] = f;
return factor->error(continuousValues) + val;
return factor->error(continuousValues) + (0.5 * val * val);
};
DecisionTree<Key, double> result(factors_, errorFunc);
return result;
@ -157,7 +157,7 @@ class HybridNonlinearFactor : public HybridFactor {
auto [factor, val] = factors_(discreteValues);
// Compute the error for the selected factor
const double factorError = factor->error(continuousValues);
return factorError + val;
return factorError + (0.5 * val * val);
}
/**