#include "sfactor.h"
+#include <cmath>
+
+#include <algorithm>
+
#include "gromacs/fileio/confio.h"
#include "gromacs/fileio/strdb.h"
#include "gromacs/fileio/trxio.h"
k_factor[YY] = 2 * M_PI / box[YY][YY];
k_factor[ZZ] = 2 * M_PI / box[ZZ][ZZ];
- maxkx = (int) (end_q / k_factor[XX] + 0.5);
- maxky = (int) (end_q / k_factor[YY] + 0.5);
- maxkz = (int) (end_q / k_factor[ZZ] + 0.5);
+ maxkx = static_cast<int>(end_q / k_factor[XX] + 0.5);
+ maxky = static_cast<int>(end_q / k_factor[YY] + 0.5);
+ maxkz = static_cast<int>(end_q / k_factor[ZZ] + 0.5);
snew (counter, sf->n_angles);
fprintf(stderr, "\n");
for (i = 0; i < maxkx; i++)
{
- fprintf (stderr, "\rdone %3.1f%% ", (double)(100.0*(i+1))/maxkx);
+ fprintf (stderr, "\rdone %3.1f%% ", (100.0*(i+1))/maxkx);
kx = i * k_factor[XX];
for (j = 0; j < maxky; j++)
{
if (i != 0 || j != 0 || k != 0)
{
kz = k * k_factor[ZZ];
- krr = sqrt (sqr (kx) + sqr (ky) + sqr (kz));
+ krr = std::sqrt (sqr (kx) + sqr (ky) + sqr (kz));
if (krr >= start_q && krr <= end_q)
{
- kr = (int) (krr/sf->ref_k + 0.5);
+ kr = static_cast<int>(krr/sf->ref_k + 0.5);
if (kr < sf->n_angles)
{
counter[kr]++; /* will be used for the copmutation
kdotx = kx * redt[p].x[XX] +
ky * redt[p].x[YY] + kz * redt[p].x[ZZ];
- tmpSF[i][j][k].re += cos (kdotx) * asf;
- tmpSF[i][j][k].im += sin (kdotx) * asf;
+ tmpSF[i][j][k].re += std::cos(kdotx) * asf;
+ tmpSF[i][j][k].im += std::sin(kdotx) * asf;
}
}
}
{
ky = j * k_factor[YY]; for (k = 0; k < maxkz; k++)
{
- kz = k * k_factor[ZZ]; krr = sqrt (sqr (kx) + sqr (ky)
- + sqr (kz)); if (krr >= start_q && krr <= end_q)
+ kz = k * k_factor[ZZ]; krr = std::sqrt (sqr (kx) + sqr (ky)
+ + sqr (kz)); if (krr >= start_q && krr <= end_q)
{
- kr = (int) (krr / sf->ref_k + 0.5);
+ kr = static_cast<int>(krr / sf->ref_k + 0.5);
if (kr < sf->n_angles && counter[kr] != 0)
{
sf->F[group][kr] +=
structure_factor *sf;
rvec *xtop;
real **sf_table;
- int nsftable;
matrix box;
- double r_tmp;
+ real r_tmp;
gmx_structurefactors_t *gmx_sf;
real *a, *b, c;
- int success;
snew(a, 4);
snew(b, 4);
gmx_sf = gmx_structurefactors_init(fnDAT);
- success = gmx_structurefactors_get_sf(gmx_sf, 0, a, b, &c);
+ gmx_structurefactors_get_sf(gmx_sf, 0, a, b, &c);
snew (sf, 1);
sf->energy = energy;
snew (red, ng);
snew (index_atp, ng);
- r_tmp = max (box[XX][XX], box[YY][YY]);
- r_tmp = (double) max (box[ZZ][ZZ], r_tmp);
+ r_tmp = std::max(box[XX][XX], box[YY][YY]);
+ r_tmp = std::max(box[ZZ][ZZ], r_tmp);
sf->ref_k = (2.0 * M_PI) / (r_tmp);
/* ref_k will be the reference momentum unit */
- sf->n_angles = (int) (end_q / sf->ref_k + 0.5);
+ sf->n_angles = static_cast<int>(end_q / sf->ref_k + 0.5);
snew (sf->F, ng);
for (i = 0; i < ng; i++)
* sin(theta) = q/(2k) := A -> sin^2(theta) = 4*A^2 (1-A^2) ->
* -> 0.5*(1+cos^2(2*theta)) = 1 - 2 A^2 (1-A^2)
*/
- A = (double) (i * sf->ref_k) / (2.0 * sf->momentum);
+ A = static_cast<double>(i * sf->ref_k) / (2.0 * sf->momentum);
polarization_factor = 1 - 2.0 * sqr (A) * (1 - sqr (A));
sf->F[g][i] *= polarization_factor;
}
* vectors. See g_sq.h for a short description of CM fit.
*/
{
- int i, success;
+ int i;
double tmp = 0.0, k2;
real *a, *b;
real c;
else
{
k2 = (sqr (sin_theta) / sqr (10.0 * lambda));
- success = gmx_structurefactors_get_sf(gsf, type, a, b, &c);
+ gmx_structurefactors_get_sf(gsf, type, a, b, &c);
tmp = c;
for (i = 0; (i < 4); i++)
{
snew (sf_table[i], n_angles);
for (j = 0; j < n_angles; j++)
{
- q = ((double) j * ref_k);
+ q = static_cast<double>(j * ref_k);
/* theta is half the angle between incoming
and scattered wavevectors. */
sin_theta = q / (2.0 * momentum);
/* \hbar \omega \lambda = hc = 1239.842 eV * nm */
- sf->momentum = ((double) (2. * 1000.0 * M_PI * sf->energy) / hc);
+ sf->momentum = (static_cast<double>(2. * 1000.0 * M_PI * sf->energy) / hc);
sf->lambda = hc / (1000.0 * sf->energy);
fprintf (stderr, "\nwavelenght = %f nm\n", sf->lambda);