From 88b136dd6ba47ba628194d72b82b6378db3d2baf Mon Sep 17 00:00:00 2001 From: asantamaria <somriu@gmail.com> Date: Thu, 25 Aug 2016 09:30:25 +0200 Subject: [PATCH] CalcPinv again with transpose to avoid RR laptop error --- src/common_fc.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/common_fc.h b/src/common_fc.h index 2523d17..3c4b37f 100644 --- a/src/common_fc.h +++ b/src/common_fc.h @@ -61,9 +61,10 @@ class CCommon_Fc */ template<typename _Matrix_Type_> static _Matrix_Type_ CalcPinv(const _Matrix_Type_ &a, double epsilon = std::numeric_limits<double>::epsilon()) { - Eigen::JacobiSVD< _Matrix_Type_ > svdd(a, Eigen::ComputeThinU | Eigen::ComputeThinV); - double tolerance = epsilon * std::max(a.cols(), a.rows()) *svdd.singularValues().array().abs()(0); - _Matrix_Type_ mpinv = svdd.matrixV() * (svdd.singularValues().array().abs() > tolerance).select(svdd.singularValues().array().inverse(), 0).matrix().asDiagonal() * svdd.matrixU().adjoint(); + // Eigen::JacobiSVD< _Matrix_Type_ > svdd(a, Eigen::ComputeThinU | Eigen::ComputeThinV); + // double tolerance = epsilon * std::max(a.cols(), a.rows()) *svdd.singularValues().array().abs()(0); + // _Matrix_Type_ mpinv = svdd.matrixV() * (svdd.singularValues().array().abs() > tolerance).select(svdd.singularValues().array().inverse(), 0).matrix().asDiagonal() * svdd.matrixU().adjoint(); + _Matrix_Type_ mpinv = a.transpose(); return mpinv; } -- GitLab