diff --git a/gtsam/base/Lie.h b/gtsam/base/Lie.h index c93456a28..1e19bfc0e 100644 --- a/gtsam/base/Lie.h +++ b/gtsam/base/Lie.h @@ -324,13 +324,12 @@ T expm(const Vector& x, int K=7) { */ template T interpolate(const T& X, const T& Y, double t, - OptionalJacobian< traits::dimension, traits::dimension > Hx = boost::none, - OptionalJacobian< traits::dimension, traits::dimension > Hy = boost::none) { + typename MakeOptionalJacobian::type Hx = boost::none, + typename MakeOptionalJacobian::type Hy = boost::none) { assert(t >= 0.0 && t <= 1.5); if (Hx || Hy) { - typedef Eigen::Matrix::dimension, traits::dimension> Jacobian; typename traits::TangentVector log_Xinv_Y; - Jacobian Hx_tmp, Hy_tmp, H1, H2; + typename MakeJacobian::type Hx_tmp, Hy_tmp, H1, H2; T Xinv_Y = traits::Between(X, Y, Hx_tmp, Hy_tmp); log_Xinv_Y = traits::Logmap(Xinv_Y, H1);