diff --git a/modules/mol/alg/src/svd_superpose.cc b/modules/mol/alg/src/svd_superpose.cc index ef3d4de2538e7a86db94ba4602c2be0e08b0ccc5..22fa34c1d8c48a9aa370d006a3ab68a5276af091 100644 --- a/modules/mol/alg/src/svd_superpose.cc +++ b/modules/mol/alg/src/svd_superpose.cc @@ -152,58 +152,24 @@ SuperposerSVD::SuperposerSVD(int natoms, bool alloc_atoms): } -geom::Vec3 SuperposerSVDImpl::EigenVec3ToVec3(const EVec3 &vec){ -#if defined _MSC_VER - geom::Vec3 myvec3; - for (int i=0; i<3; ++i) { - myvec3[i]=vec[i]; - } - return myvec3; -#else - return *reinterpret_cast<const geom::Vec3*>(&vec); -#endif +geom::Vec3 SuperposerSVDImpl::EigenVec3ToVec3(const EVec3 &vec) +{ + return geom::Vec3(vec.data()); } geom::Mat3 SuperposerSVDImpl::EigenMat3ToMat3(const EMat3 &mat) { -#if defined _MSC_VER - geom::Mat3 mymat3; - for (int i=0; i<3; ++i) { - for (int j=0; j<3; ++j) { - mymat3(j,i)=mat(i,j); - } - } - return mymat3; -#else - return *reinterpret_cast<const geom::Mat3*>(&mat); -#endif - + return geom::Mat3(mat.data()); } EVec3 SuperposerSVDImpl::Vec3ToEigenRVec(const geom::Vec3 &vec) { -#if defined _MSC_VER - EVec3 myvec3=EVec3::Zero(); - for (int counter=0; counter<3; ++counter) { - myvec3[counter]=vec[counter]; - } - return myvec3; -#else - return *reinterpret_cast<const ERVec3*>(&vec); -#endif + return EVec3(&vec[0]); } EVec3 SuperposerSVDImpl::Vec3ToEigenVec(const geom::Vec3 &vec) { -#if defined _MSC_VER - EVec3 myvec3=EVec3::Zero(); - for (int counter=0; counter<3; ++counter) { - myvec3[counter]=vec[counter]; - } - return myvec3; -#else - return *reinterpret_cast<const EVec3*>(&vec); -#endif + return EVec3(&vec[0]); } EMatX SuperposerSVDImpl::SubtractVecFromMatrixRows(EMatX Mat,