diff --git a/gtsam/linear/NoiseModel.h b/gtsam/linear/NoiseModel.h index 14886d64d..9577b2b09 100644 --- a/gtsam/linear/NoiseModel.h +++ b/gtsam/linear/NoiseModel.h @@ -75,10 +75,7 @@ namespace gtsam { */ virtual Vector unwhiten(const Vector& v) const = 0; - /** - * Mahalanobis distance v'*R'*R*v = - */ - virtual double Mahalanobis(const Vector& v) const = 0; + virtual double distance(const Vector& v) const = 0; virtual void WhitenSystem(Matrix& A, Vector& b) const = 0; virtual void WhitenSystem(Matrix& A1, Matrix& A2, Vector& b) const = 0; @@ -168,6 +165,10 @@ namespace gtsam { */ virtual double Mahalanobis(const Vector& v) const; + inline virtual double distance(const Vector& v) const { + return Mahalanobis(v); + } + /** * Multiply a derivative with R (derivative of whiten) * Equivalent to whitening each column of the input matrix. @@ -591,8 +592,8 @@ namespace gtsam { { return noise_->whiten(v); } inline virtual Vector unwhiten(const Vector& v) const { return noise_->unwhiten(v); } - inline virtual double Mahalanobis(const Vector& v) const - { return noise_->Mahalanobis(v); } + inline virtual double distance(const Vector& v) const + { return noise_->distance(v); } virtual void WhitenSystem(Matrix& A, Vector& b) const ; virtual void WhitenSystem(Matrix& A1, Matrix& A2, Vector& b) const ; virtual void WhitenSystem(Matrix& A1, Matrix& A2, Matrix& A3, Vector& b) const; diff --git a/gtsam/nonlinear/NonlinearFactor.h b/gtsam/nonlinear/NonlinearFactor.h index 87a586d37..eab7fcea2 100644 --- a/gtsam/nonlinear/NonlinearFactor.h +++ b/gtsam/nonlinear/NonlinearFactor.h @@ -217,7 +217,7 @@ namespace gtsam { * to transform it to (h(x)-z)^2/sigma^2, and then multiply by 0.5. */ virtual double error(const VALUES& c) const { - return 0.5 * noiseModel_->Mahalanobis(unwhitenedError(c)); + return 0.5 * noiseModel_->distance(unwhitenedError(c)); } private: