diff --git a/Eigen/src/Geometry/Umeyama.h b/Eigen/src/Geometry/Umeyama.h index d12a83b43..0a9dd355c 100644 --- a/Eigen/src/Geometry/Umeyama.h +++ b/Eigen/src/Geometry/Umeyama.h @@ -124,9 +124,6 @@ umeyama(const MatrixBase& src, const MatrixBase& dst, boo const RowMajorMatrixType src_demean = src.colwise() - src_mean; const RowMajorMatrixType dst_demean = dst.colwise() - dst_mean; - // Eq. (36)-(37) - const Scalar src_var = src_demean.rowwise().squaredNorm().sum() * one_over_n; - // Eq. (38) const MatrixType sigma = one_over_n * dst_demean * src_demean.transpose(); @@ -146,6 +143,9 @@ umeyama(const MatrixBase& src, const MatrixBase& dst, boo if (with_scaling) { + // Eq. (36)-(37) + const Scalar src_var = src_demean.rowwise().squaredNorm().sum() * one_over_n; + // Eq. (42) const Scalar c = Scalar(1)/src_var * svd.singularValues().dot(S);