*/
#include "gmxpre.h"
-#include <math.h>
+#include <cmath>
#include "gromacs/commandline/pargs.h"
#include "gromacs/fileio/trxio.h"
t_topology *top = NULL;
real t;
- rvec *x = NULL, dx;
+ rvec *x = NULL;
matrix box;
t_trxstatus *status;
int natoms;
real theta1, theta2, theta3;
- int d, i, j, teller = 0;
+ int i, j, teller = 0;
int iCA, iSC;
atom_id *ind_CA;
atom_id *ind_SC;
char *gn_CA;
char *gn_SC;
- rvec averageaxis;
- rvec v1, v2, p1, p2, vtmp, vproj;
+ rvec v1, v2;
rvec *x_CA, *x_SC;
rvec *r12;
rvec *r23;
rvec *residuevector;
rvec *sidechainvector;
- rvec axes_t0[3];
- rvec axes[3];
rvec *residuehelixaxis_t0;
rvec *residuevector_t0;
rvec *axis3_t0;
real *rise, *residuerise;
real *residuebending;
- real tmp, rotangle;
+ real tmp;
real weight[3];
t_pbc pbc;
matrix A;
svmul(1.0/norm(helixaxis[i]), helixaxis[i], helixaxis[i]);
tmp = cos_angle(diff13[i], diff24[i]);
- twist[i] = 180.0/M_PI * acos( tmp );
- radius[i] = sqrt( norm(diff13[i])*norm(diff24[i]) ) / (2.0* (1.0-tmp) );
- rise[i] = fabs(iprod(r23[i], helixaxis[i]));
+ twist[i] = 180.0/M_PI * std::acos( tmp );
+ radius[i] = std::sqrt( norm(diff13[i])*norm(diff24[i]) ) / (2.0* (1.0-tmp) );
+ rise[i] = std::abs(iprod(r23[i], helixaxis[i]));
svmul(radius[i]/norm(diff13[i]), diff13[i], v1);
svmul(radius[i]/norm(diff24[i]), diff24[i], v2);
residueradius[i] = 0.5*(radius[i-2]+radius[i-1]);
residuetwist[i] = 0.5*(twist[i-2]+twist[i-1]);
residuerise[i] = 0.5*(rise[i-2]+rise[i-1]);
- residuebending[i] = 180.0/M_PI*acos( cos_angle(helixaxis[i-2], helixaxis[i-1]) );
+ residuebending[i] = 180.0/M_PI*std::acos( cos_angle(helixaxis[i-2], helixaxis[i-1]) );
}
residueradius[iCA-2] = radius[iCA-4];
residuetwist[iCA-2] = twist[iCA-4];
fprintf(fpradius, "%15.12g ", residueradius[i]);
fprintf(fptwist, "%15.12g ", residuetwist[i]);
fprintf(fpbending, "%15.12g ", residuebending[i]);
-
- /* angle with local vector? */
- /*
- printf("res[%2d]: axis: %g %g %g origin: %g %g %g vector: %g %g %g angle: %g\n",i,
- residuehelixaxis[i][0],
- residuehelixaxis[i][1],
- residuehelixaxis[i][2],
- residueorigin[i][0],
- residueorigin[i][1],
- residueorigin[i][2],
- residuevector[i][0],
- residuevector[i][1],
- residuevector[i][2],
- 180.0/M_PI*acos( cos_angle(residuevector[i],residuehelixaxis[i]) ));
- */
- /* fprintf(fp,"%15.12g %15.12g %15.12g %15.12g %15.12g %15.12g\n",
- residuehelixaxis[i][0],
- residuehelixaxis[i][1],
- residuehelixaxis[i][2],
- residuevector[i][0],
- residuevector[i][1],
- residuevector[i][2]);
- */
}
}
fprintf(fprise, "\n");
copy_rvec(residuevector[i], newaxes[1]);
copy_rvec(axis3[i], newaxes[2]);
- /*
- printf("frame %d, i=%d:\n old: %g %g %g , %g %g %g , %g %g %g\n new: %g %g %g , %g %g %g , %g %g %g\n",
- teller,i,
- refaxes[0][0],refaxes[0][1],refaxes[0][2],
- refaxes[1][0],refaxes[1][1],refaxes[1][2],
- refaxes[2][0],refaxes[2][1],refaxes[2][2],
- newaxes[0][0],newaxes[0][1],newaxes[0][2],
- newaxes[1][0],newaxes[1][1],newaxes[1][2],
- newaxes[2][0],newaxes[2][1],newaxes[2][2]);
- */
-
/* rotate reference frame onto unit axes */
calc_fit_R(3, 3, weight, unitaxes, refaxes, A);
for (j = 0; j < 3; j++)
* A contains rotation column vectors.
*/
- /*
- printf("frame %d, i=%d, A: %g %g %g , %g %g %g , %g %g %g\n",
- teller,i,A[0][0],A[0][1],A[0][2],A[1][0],A[1][1],A[1][2],A[2][0],A[2][1],A[2][2]);
- */
-
- theta1 = 180.0/M_PI*atan2(A[0][2], A[0][0]);
- theta2 = 180.0/M_PI*asin(-A[0][1]);
- theta3 = 180.0/M_PI*atan2(A[2][1], A[1][1]);
+ theta1 = 180.0/M_PI*std::atan2(A[0][2], A[0][0]);
+ theta2 = 180.0/M_PI*std::asin(-A[0][1]);
+ theta3 = 180.0/M_PI*std::atan2(A[2][1], A[1][1]);
- tilt = sqrt(theta1*theta1+theta2*theta2);
+ tilt = std::sqrt(theta1*theta1+theta2*theta2);
rotation = theta3;
fprintf(fptheta1, "%15.12g ", theta1);
fprintf(fptheta2, "%15.12g ", theta2);