diff --git a/param.cpp b/param.cpp
index 8ad74cc2e939cbd3243e6494898e0a23da783104..7c564ca14cf332bfc73d85e65f259a837a44eae2 100644
--- a/param.cpp
+++ b/param.cpp
@@ -564,6 +564,13 @@ int bioem_param::forprintBest(const char* fileinput)
angles[0].pos[2] = atof(token);
cout << "Best Q3 " << angles[0].pos[2] << "\n";
}
+ else if (strcmp(token, "BEST_Q4") == 0)
+ {
+ token = strtok(NULL, " ");
+ angles[0].quat4= atof(token);
+ cout << "Best Q3 " << angles[0].quat4 << "\n";
+ }
+
else if (strcmp(token, "USE_PSF") == 0)
{
usepsf=true;
@@ -668,7 +675,12 @@ int bioem_param::forprintBest(const char* fileinput)
}
- if(doquater)angles[0].quat4=sqrt(1.f-angles[0].pos[0]*angles[0].pos[0]-angles[0].pos[1]*angles[0].pos[1]-angles[0].pos[2]*angles[0].pos[2]);
+ if(doquater){
+ if(angles[0].quat4*angles[0].quat4>1){cout << " Problem with quaternion "<< angles[0].quat4 << "\n";exit(1);}
+ if(angles[0].pos[0]*angles[0].pos[0]>1){cout << " Problem with quaternion "<< angles[0].pos[0] << "\n";exit(1);}
+ if(angles[0].pos[1]*angles[0].pos[1]>1){cout << " Problem with quaternion "<< angles[0].pos[1] << "\n";exit(1);}
+ if(angles[0].pos[2]*angles[0].pos[2]>1){cout << " Problem with quaternion "<< angles[0].pos[2] << "\n";exit(1);}
+ }
input.close();