From 9cece14299cd0235e78f3593bbbe8e8417fb9019 Mon Sep 17 00:00:00 2001
From: Stefan Bienert <stefan.bienert@unibas.ch>
Date: Wed, 15 Jul 2015 13:25:56 +0200
Subject: [PATCH] Fixing Eigen3/ making it work on in house system

---
 modules/geom/src/vec3.cc                | 2 +-
 modules/mol/alg/src/superpose_frames.cc | 2 +-
 modules/mol/alg/src/svd_superpose.cc    | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/modules/geom/src/vec3.cc b/modules/geom/src/vec3.cc
index d55ab5d2c..a69b2682d 100644
--- a/modules/geom/src/vec3.cc
+++ b/modules/geom/src/vec3.cc
@@ -60,7 +60,7 @@ Mat3 Vec3List::GetPrincipalAxes() const
   Mat3 inertia=this->GetInertia();  
   EMat3 inertia_mat(inertia.Data());
 
-  Eigen::JacobiSVD<EMat3> svd(inertia_mat,Eigen::ComputeThinU);
+  Eigen::JacobiSVD<EMat3> svd(inertia_mat,Eigen::ComputeFullU);
   EMat3 rot=svd.matrixU();
   Mat3 axes(rot.data());
   return axes;
diff --git a/modules/mol/alg/src/superpose_frames.cc b/modules/mol/alg/src/superpose_frames.cc
index 8c7c789a7..ef8ebe921 100644
--- a/modules/mol/alg/src/superpose_frames.cc
+++ b/modules/mol/alg/src/superpose_frames.cc
@@ -97,7 +97,7 @@ void AddSuperposedFrame(CoordGroupHandle& superposed, EMatX3& ref_mat,EMatX3& re
   frame_center=frame_mat.rowwise().sum()/frame_mat.cols();
   frame_centered=row_sub(frame_mat, frame_center);
   //single value decomposition
-  Eigen::JacobiSVD<EMat3> svd(frame_centered*ref_centered,Eigen::ComputeThinU | Eigen::ComputeThinV);
+  Eigen::JacobiSVD<EMat3> svd(frame_centered*ref_centered,Eigen::ComputeFullU | Eigen::ComputeFullV);
   EMat3 matrixVT=svd.matrixV().transpose();
   //determine rotation
   Real detv=matrixVT.determinant();
diff --git a/modules/mol/alg/src/svd_superpose.cc b/modules/mol/alg/src/svd_superpose.cc
index c8c068c0b..89d6fcfdb 100644
--- a/modules/mol/alg/src/svd_superpose.cc
+++ b/modules/mol/alg/src/svd_superpose.cc
@@ -376,7 +376,7 @@ SuperpositionResult MeanSquareMinimizerImpl::Minimize(const EMatX& atoms, const
   EMatX atoms_ref_shifted = MatrixShiftedBy(atoms_ref, avg_ref).transpose();
 
   // determine rotational component
-  Eigen::JacobiSVD<EMat3> svd(atoms_ref_shifted*atoms_shifted,Eigen::ComputeThinU | Eigen::ComputeThinV);
+  Eigen::JacobiSVD<EMat3> svd(atoms_ref_shifted*atoms_shifted,Eigen::ComputeFullU | Eigen::ComputeFullV);
   EMatX matrixVT=svd.matrixV().transpose();
 
   //determine rotation
-- 
GitLab