In class_Molecule_Complex.cpp line 1071:
Quat rotQuat{};
rotQuat.x = (sinX * cosY * cosZ) - (cosX * sinY * sinZ);
rotQuat.y = (cosX * sinY * cosZ) + (sinX * cosY * sinZ);
rotQuat.z = (cosX * cosY * sinZ) - (sinX * sinY * cosZ);
rotQuat.w = (cosX * cosY * cosZ) + (sinX * sinY * sinZ);
rotQuat.unit(); # <---
const auto preparedTrajectoryRotation = rotQuat.prepareRotation();
This line produces a redundant matrix:
- The math above for
rotQuat guarantees the rotQuat to be unit quaternion within double error range.
rotQuat.unit() is only written as a output function, not a overwrite function so this line does nothing to begin with.
In
class_Molecule_Complex.cppline 1071:Quat rotQuat{}; rotQuat.x = (sinX * cosY * cosZ) - (cosX * sinY * sinZ); rotQuat.y = (cosX * sinY * cosZ) + (sinX * cosY * sinZ); rotQuat.z = (cosX * cosY * sinZ) - (sinX * sinY * cosZ); rotQuat.w = (cosX * cosY * cosZ) + (sinX * sinY * sinZ); rotQuat.unit(); # <--- const auto preparedTrajectoryRotation = rotQuat.prepareRotation();This line produces a redundant matrix:
rotQuatguarantees therotQuatto be unit quaternion withindoubleerror range.rotQuat.unit()is only written as a output function, not a overwrite function so this line does nothing to begin with.