| 1 |
|
#include "math/RMSD.hpp" |
| 2 |
|
#include "math/SVD.hpp" |
| 3 |
|
|
| 4 |
< |
using namespace oopse; |
| 4 |
> |
using namespace OpenMD; |
| 5 |
|
using namespace JAMA; |
| 6 |
|
|
| 7 |
|
RealType RMSD::calculate_rmsd(std::vector<Vector3d> mov, |
| 72 |
|
stmp.getSubVector(0,s); |
| 73 |
|
wtmp.getSubMatrix(0,0,w); |
| 74 |
|
|
| 75 |
< |
int is_reflection = (v.determinant() * w.determinant()) < 0.0; |
| 75 |
> |
int is_reflection = (v.determinant() * w.determinant()) < RealType(0.0); |
| 76 |
|
if (is_reflection) |
| 77 |
|
s(2) = -s(2); |
| 78 |
|
|
| 79 |
|
RealType rmsd_sq = (E0 - 2.0 * s.sum() )/ (RealType)n_vec; |
| 80 |
< |
rmsd_sq = max(rmsd_sq,0.0); |
| 80 |
> |
rmsd_sq = max(rmsd_sq, RealType(0.0)); |
| 81 |
|
RealType rmsd = sqrt(rmsd_sq); |
| 82 |
|
return rmsd; |
| 83 |
|
} |
| 109 |
|
|
| 110 |
|
/* initialize */ |
| 111 |
|
Mat3x3d R(0.0); |
| 112 |
– |
RealType E0 = 0.0; |
| 112 |
|
|
| 113 |
|
for (n=0; n < n_vec; n++) { |
| 114 |
|
|