diff options
author | 2009-08-06 14:10:02 +0200 | |
---|---|---|
committer | 2009-08-06 14:10:02 +0200 | |
commit | 1d4fea48b57ef2fdd20df909c65e3432e26e91f9 (patch) | |
tree | 4e4c1992d149860c1ea4cd81644e430e7d85856f /Eigen/src/Geometry/Umeyama.h | |
parent | c2861dd41a1b0f86757af98011d20e156b05979b (diff) |
fix a couple of compilations issues
Diffstat (limited to 'Eigen/src/Geometry/Umeyama.h')
-rw-r--r-- | Eigen/src/Geometry/Umeyama.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/Eigen/src/Geometry/Umeyama.h b/Eigen/src/Geometry/Umeyama.h index 67747d94f..64c06fe66 100644 --- a/Eigen/src/Geometry/Umeyama.h +++ b/Eigen/src/Geometry/Umeyama.h @@ -174,8 +174,10 @@ umeyama(const MatrixBase<Derived>& src, const MatrixBase<OtherDerived>& dst, boo const Scalar c = 1/src_var * svd.singularValues().dot(S); // Eq. (41) - // TODO: lazyness does not make much sense over here, right? - Rt.col(m).segment(0,m) = dst_mean - c*Rt.block(0,0,m,m)*src_mean; + // Note that we first assign dst_mean to the destination so that there no need + // for a temporary. + Rt.col(m).start(m) = dst_mean; + Rt.col(m).start(m) -= (c*Rt.corner(TopLeft,m,m)*src_mean).lazy(); if (with_scaling) Rt.block(0,0,m,m) *= c; |