Merge branch 'master' into pygromacs
[alexxy/gromacs.git] / src / gromacs / gmxana / gmx_dielectric.cpp
similarity index 96%
rename from src/gromacs/gmxana/gmx_dielectric.c
rename to src/gromacs/gmxana/gmx_dielectric.cpp
index 6e76ed186cb5edaf200fb12997a87f227dc0fc64..d8cd57f75c33af92c34b67c1b0ca72a3ca747651 100644 (file)
  */
 #include "gmxpre.h"
 
-#include <math.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
+#include <cmath>
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
+
+#include <algorithm>
 
 #include "gromacs/correlationfunctions/expfit.h"
 #include "gromacs/correlationfunctions/integrate.h"
@@ -65,7 +67,6 @@
 int calc_nbegin(int nx, real x[], real tbegin)
 {
     int  nbegin;
-    real dt, dtt;
 
     /* Assume input x is sorted */
     for (nbegin = 0; (nbegin < nx) && (x[nbegin] <= tbegin); nbegin++)
@@ -79,7 +80,7 @@ int calc_nbegin(int nx, real x[], real tbegin)
     }
 
     /* Take the one closest to tbegin */
-    if (fabs(x[nbegin]-tbegin) > fabs(x[nbegin-1]-tbegin))
+    if (std::abs(x[nbegin]-tbegin) > std::abs(x[nbegin-1]-tbegin))
     {
         nbegin--;
     }
@@ -113,8 +114,8 @@ real numerical_deriv(int nx, real x[], real y[], real fity[], real combined[], r
     }
     else
     {
-        i0 = max(0, nbegin);
-        i1 = min(nx-1, nbegin+nsmooth);
+        i0 = std::max(0, nbegin);
+        i1 = std::min(nx-1, nbegin+nsmooth);
         printf("Making smooth transition from %d through %d\n", i0, i1);
         for (i = 0; (i < i0); i++)
         {
@@ -122,8 +123,8 @@ real numerical_deriv(int nx, real x[], real y[], real fity[], real combined[], r
         }
         for (i = i0; (i <= i1); i++)
         {
-            fx = (i1-i)/(real)(i1-i0);
-            fy = (i-i0)/(real)(i1-i0);
+            fx = static_cast<real>(i1-i)/(i1-i0);
+            fy = static_cast<real>(i-i0)/(i1-i0);
             if (debug)
             {
                 fprintf(debug, "x: %g factors for smoothing: %10g %10g\n", x[i], fx, fy);
@@ -161,7 +162,7 @@ void do_four(const char *fn, const char *cn, int nx, real x[], real dy[],
     FILE      *fp, *cp;
     t_complex *tmp, gw, hw, kw;
     int        i, nnx, nxsav;
-    real       fac, nu, dt, *ptr, maxeps, numax;
+    real       fac, nu, dt, maxeps, numax;
     gmx_fft_t  fft;
     int        fftcode;
 
@@ -330,7 +331,7 @@ int gmx_dielectric(int argc, char *argv[])
 
     nx     = read_xvg(opt2fn("-f", NFILE, fnm), &yd, &ny);
     dt     = yd[0][1] - yd[0][0];
-    nxtail = min(tail/dt, nx);
+    nxtail = std::min(static_cast<int>(tail/dt), nx);
 
     printf("Read data set containing %d colums and %d rows\n", ny, nx);
     printf("Assuming (from data) that timestep is %g, nxtail = %d\n",
@@ -338,7 +339,7 @@ int gmx_dielectric(int argc, char *argv[])
     snew(y, 6);
     for (i = 0; (i < ny); i++)
     {
-        snew(y[i], max(nx, nxtail));
+        snew(y[i], std::max(nx, nxtail));
     }
     for (i = 0; (i < nx); i++)
     {
@@ -369,7 +370,7 @@ int gmx_dielectric(int argc, char *argv[])
         srenew(y, 3);
         snew(y[2], nx);
 
-        fac = 1.0/((real)nx);
+        fac = 1.0/nx;
         for (i = 0; (i < nx); i++)
         {
             y[2][i] = fac;