Merge branch 'master' into pygromacs
[alexxy/gromacs.git] / src / gromacs / gmxana / gmx_sigeps.cpp
similarity index 87%
rename from src/gromacs/gmxana/gmx_sigeps.c
rename to src/gromacs/gmxana/gmx_sigeps.cpp
index 3866506b280c0e65b57091e7a9bada03eb1c743d..59df10f858440561b85ec5524b0c30af1054c5b8 100644 (file)
  */
 #include "gmxpre.h"
 
-#include <math.h>
-#include <stdio.h>
+#include <cmath>
+#include <cstdio>
 
 #include "gromacs/commandline/pargs.h"
 #include "gromacs/fileio/xvgr.h"
+#include "gromacs/gmxana/gmx_ana.h"
 #include "gromacs/legacyheaders/macros.h"
 #include "gromacs/legacyheaders/names.h"
 #include "gromacs/legacyheaders/txtdump.h"
 
 real pot(real x, real qq, real c6, real cn, int npow)
 {
-    return cn*pow(x, -npow)-c6*pow(x, -6)+qq*ONE_4PI_EPS0/x;
+    return cn*pow(x, -npow)-c6*std::pow(x, -6)+qq*ONE_4PI_EPS0/x;
 }
 
 real bhpot(real x, real A, real B, real C)
 {
-    return A*exp(-B*x) - C*pow(x, -6.0);
+    return A*std::exp(-B*x) - C*std::pow(x, -6);
 }
 
 real dpot(real x, real qq, real c6, real cn, int npow)
 {
-    return -(npow*cn*pow(x, -npow-1)-6*c6*pow(x, -7)+qq*ONE_4PI_EPS0/sqr(x));
+    return -(npow*cn*std::pow(x, -npow-1)-6*c6*std::pow(x, -7)+qq*ONE_4PI_EPS0/sqr(x));
 }
 
 int gmx_sigeps(int argc, char *argv[])
@@ -98,7 +99,7 @@ int gmx_sigeps(int argc, char *argv[])
     FILE         *fp;
     int           i;
     gmx_bool      bBham;
-    real          qq, x, oldx, minimum, mval, dp[2], pp[2];
+    real          qq, x, oldx, minimum, mval, dp[2];
     int           cur = 0;
 #define next (1-cur)
 
@@ -116,24 +117,24 @@ int gmx_sigeps(int argc, char *argv[])
     if (bBham)
     {
         c6  = Cbh;
-        sig = pow((6.0/npow)*pow(npow/Bbh, npow-6.0), 1.0/(npow-6.0));
-        eps = c6/(4*pow(sig, 6.0));
-        cn  = 4*eps*pow(sig, npow);
+        sig = std::pow((6.0/npow)*std::pow(npow/Bbh, npow-6), 1.0/(npow-6));
+        eps = c6/(4*std::pow(sig, 6));
+        cn  = 4*eps*std::pow(sig, npow);
     }
     else
     {
         if (opt2parg_bSet("-sig", asize(pa), pa) ||
             opt2parg_bSet("-eps", asize(pa), pa))
         {
-            c6  = 4*eps*pow(sig, 6);
-            cn  = 4*eps*pow(sig, npow);
+            c6  = 4*eps*std::pow(sig, 6);
+            cn  = 4*eps*std::pow(sig, npow);
         }
         else if (opt2parg_bSet("-c6", asize(pa), pa) ||
                  opt2parg_bSet("-cn", asize(pa), pa) ||
                  opt2parg_bSet("-pow", asize(pa), pa))
         {
-            sig = pow(cn/c6, 1.0/(npow-6.0));
-            eps = 0.25*c6*pow(sig, -6.0);
+            sig = std::pow(cn/c6, static_cast<real>(1.0/(npow-6)));
+            eps = 0.25*c6*std::pow(sig, -6);
         }
         else
         {
@@ -142,13 +143,13 @@ int gmx_sigeps(int argc, char *argv[])
         printf("c6    = %12.5e, c%d    = %12.5e\n", c6, npow, cn);
         printf("sigma = %12.5f, epsilon = %12.5f\n", sig, eps);
 
-        minimum = pow(npow/6.0*pow(sig, npow-6.0), 1.0/(npow-6));
+        minimum = std::pow(npow/6.0*std::pow(sig, npow-6), 1.0/(npow-6));
         printf("Van der Waals minimum at %g, V = %g\n\n",
                minimum, pot(minimum, 0, c6, cn, npow));
         printf("Fit of Lennard Jones (%d-6) to Buckingham:\n", npow);
         Bbh = npow/minimum;
         Cbh = c6;
-        Abh = 4*eps*pow(sig/minimum, npow)*exp(npow);
+        Abh = 4*eps*std::pow(sig/minimum, static_cast<real>(npow))*std::exp(static_cast<real>(npow));
         printf("A = %g, B = %g, C = %g\n", Abh, Bbh, Cbh);
     }
     qq = qi*qj;
@@ -161,8 +162,6 @@ int gmx_sigeps(int argc, char *argv[])
     {
         sig = 0.25;
     }
-    minimum = -1;
-    mval    = 0;
     oldx    = 0;
     for (i = 0; (i < 100); i++)
     {