X-Git-Url: http://biod.pnpi.spb.ru/gitweb/?a=blobdiff_plain;f=src%2Fgromacs%2Fgmxana%2Fsfactor.cpp;fp=src%2Fgromacs%2Fgmxana%2Fsfactor.c;h=454247452026ab17a2c741f0d8b2ec2abe48902e;hb=8a9ed358b11c7181e46129f811c6f9a9805cbdd3;hp=3fcb408faf15c8b9782a6fb0ba4a3d2e14266e96;hpb=87823c5ebe2ecab05a07cfdfd5165e53cb07c30d;p=alexxy%2Fgromacs.git diff --git a/src/gromacs/gmxana/sfactor.c b/src/gromacs/gmxana/sfactor.cpp similarity index 93% rename from src/gromacs/gmxana/sfactor.c rename to src/gromacs/gmxana/sfactor.cpp index 3fcb408faf..4542474520 100644 --- a/src/gromacs/gmxana/sfactor.c +++ b/src/gromacs/gmxana/sfactor.cpp @@ -38,6 +38,10 @@ #include "sfactor.h" +#include + +#include + #include "gromacs/fileio/confio.h" #include "gromacs/fileio/strdb.h" #include "gromacs/fileio/trxio.h" @@ -170,9 +174,9 @@ extern void compute_structure_factor (structure_factor_t * sft, matrix box, 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(end_q / k_factor[XX] + 0.5); + maxky = static_cast(end_q / k_factor[YY] + 0.5); + maxkz = static_cast(end_q / k_factor[ZZ] + 0.5); snew (counter, sf->n_angles); @@ -185,7 +189,7 @@ extern void compute_structure_factor (structure_factor_t * sft, matrix box, 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++) { @@ -195,10 +199,10 @@ extern void compute_structure_factor (structure_factor_t * sft, matrix box, 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(krr/sf->ref_k + 0.5); if (kr < sf->n_angles) { counter[kr]++; /* will be used for the copmutation @@ -210,8 +214,8 @@ extern void compute_structure_factor (structure_factor_t * sft, matrix box, 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; } } } @@ -231,10 +235,10 @@ extern void compute_structure_factor (structure_factor_t * sft, matrix box, { 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(krr / sf->ref_k + 0.5); if (kr < sf->n_angles && counter[kr] != 0) { sf->F[group][kr] += @@ -450,13 +454,11 @@ extern int do_scattering_intensity (const char* fnTPS, const char* fnNDX, 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); @@ -464,7 +466,7 @@ extern int do_scattering_intensity (const char* fnTPS, const char* fnNDX, 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; @@ -497,12 +499,12 @@ extern int do_scattering_intensity (const char* fnTPS, const char* fnNDX, 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(end_q / sf->ref_k + 0.5); snew (sf->F, ng); for (i = 0; i < ng; i++) @@ -575,7 +577,7 @@ extern void save_data (structure_factor_t *sft, const char *file, int ngrps, * 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(i * sf->ref_k) / (2.0 * sf->momentum); polarization_factor = 1 - 2.0 * sqr (A) * (1 - sqr (A)); sf->F[g][i] *= polarization_factor; } @@ -605,7 +607,7 @@ extern double CMSF (gmx_structurefactors_t *gsf, int type, int nh, double lambda * 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; @@ -632,7 +634,7 @@ extern double CMSF (gmx_structurefactors_t *gsf, int type, int nh, double lambda 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++) { @@ -663,7 +665,7 @@ extern real **gmx_structurefactors_table(gmx_structurefactors_t *gsf, real momen snew (sf_table[i], n_angles); for (j = 0; j < n_angles; j++) { - q = ((double) j * ref_k); + q = static_cast(j * ref_k); /* theta is half the angle between incoming and scattered wavevectors. */ sin_theta = q / (2.0 * momentum); @@ -718,7 +720,7 @@ extern real **compute_scattering_factor_table (gmx_structurefactors_t *gsf, stru /* \hbar \omega \lambda = hc = 1239.842 eV * nm */ - sf->momentum = ((double) (2. * 1000.0 * M_PI * sf->energy) / hc); + sf->momentum = (static_cast(2. * 1000.0 * M_PI * sf->energy) / hc); sf->lambda = hc / (1000.0 * sf->energy); fprintf (stderr, "\nwavelenght = %f nm\n", sf->lambda);