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