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