From ede01ac6d319be12bf8cbffc41503dc053cb4f08 Mon Sep 17 00:00:00 2001 From: dellaert Date: Sun, 21 Dec 2014 19:00:15 +0100 Subject: [PATCH] Bugfix ScalarTraits --- gtsam/base/concepts.h | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/gtsam/base/concepts.h b/gtsam/base/concepts.h index 2bb87c9fa..82a0ee7e4 100644 --- a/gtsam/base/concepts.h +++ b/gtsam/base/concepts.h @@ -243,7 +243,9 @@ struct ScalarTraits { } static TangentVector Local(Scalar origin, Scalar other) { - return TangentVector(other - origin); + TangentVector result; + result(0) = other - origin; + return result; } static Scalar Retract(Scalar origin, const TangentVector& v) { @@ -254,7 +256,7 @@ struct ScalarTraits { ChartJacobian Hother = boost::none) { if (Horigin) (*Horigin)[0] = -1.0; if (Hother) (*Hother)[0] = 1.0; - return TangentVector(other - origin); + return Local(origin,other); } static Scalar Retract(Scalar origin, const TangentVector& v, @@ -291,12 +293,12 @@ struct ScalarTraits { } static Scalar Identity() { return 0; } - static TangentVector Logmap(Scalar m) {return TangentVector(m);} + static TangentVector Logmap(Scalar m) {return Local(0,m);} static Scalar Expmap(const TangentVector& v) { return v[0];} static TangentVector Logmap(Scalar m, ChartJacobian Hm) { if (Hm) (*Hm)[0] = 1.0; - return TangentVector(m); + return Local(0,m); } static Scalar Expmap(const TangentVector& v, ChartJacobian Hv) {