Merge branch 'master' into pygromacs
[alexxy/gromacs.git] / src / gromacs / gmxana / gmx_densmap.cpp
similarity index 93%
rename from src/gromacs/gmxana/gmx_densmap.c
rename to src/gromacs/gmxana/gmx_densmap.cpp
index c88fa5da432006a76b5396a5530626e99b94a0bf..ebc90defe152d1894c3973e682c9349f58496f61 100644 (file)
@@ -36,8 +36,8 @@
  */
 #include "gmxpre.h"
 
-#include <math.h>
-#include <string.h>
+#include <cmath>
+#include <cstring>
 
 #include "gromacs/commandline/pargs.h"
 #include "gromacs/fileio/confio.h"
@@ -55,6 +55,7 @@
 #include "gromacs/utility/cstringutil.h"
 #include "gromacs/utility/fatalerror.h"
 #include "gromacs/utility/futil.h"
+#include "gromacs/utility/gmxassert.h"
 #include "gromacs/utility/smalloc.h"
 
 int gmx_densmap(int argc, char *argv[])
@@ -136,7 +137,7 @@ int gmx_densmap(int argc, char *argv[])
     matrix             box;
     real               t, m, mtot;
     t_pbc              pbc;
-    int                cav = 0, c1 = 0, c2 = 0, natoms;
+    int                cav = 0, c1 = 0, c2 = 0;
     char             **grpname, title[256], buf[STRLEN];
     const char        *unit;
     int                i, j, k, l, ngrps, anagrp, *gnx = NULL, nindex, nradial = 0, nfr, nmpower;
@@ -176,12 +177,14 @@ int gmx_densmap(int argc, char *argv[])
         }
     }
 
-    if (strcmp(eunit[0], "nm-3") == 0)
+    GMX_RELEASE_ASSERT(eunit[0] != NULL, "Option setting inconsistency; eunit[0] is NULL");
+
+    if (std::strcmp(eunit[0], "nm-3") == 0)
     {
         nmpower = -3;
         unit    = "(nm^-3)";
     }
-    else if (strcmp(eunit[0], "nm-2") == 0)
+    else if (std::strcmp(eunit[0], "nm-2") == 0)
     {
         nmpower = -2;
         unit    = "(nm^-2)";
@@ -223,6 +226,8 @@ int gmx_densmap(int argc, char *argv[])
         }
     }
 
+    GMX_RELEASE_ASSERT(eaver[0] != NULL, "Option setting inconsistency; eaver[0] is NULL");
+
     switch (eaver[0][0])
     {
         case 'x': cav = XX; c1 = YY; c2 = ZZ; break;
@@ -230,23 +235,23 @@ int gmx_densmap(int argc, char *argv[])
         case 'z': cav = ZZ; c1 = XX; c2 = YY; break;
     }
 
-    natoms = read_first_x(oenv, &status, ftp2fn(efTRX, NFILE, fnm), &t, &x, box);
+    read_first_x(oenv, &status, ftp2fn(efTRX, NFILE, fnm), &t, &x, box);
 
     if (!bRadial)
     {
         if (n1 == 0)
         {
-            n1 = (int)(box[c1][c1]/bin + 0.5);
+            n1 = static_cast<int>(box[c1][c1]/bin + 0.5);
         }
         if (n2 == 0)
         {
-            n2 = (int)(box[c2][c2]/bin + 0.5);
+            n2 = static_cast<int>(box[c2][c2]/bin + 0.5);
         }
     }
     else
     {
-        n1      = (int)(2*amax/bin + 0.5);
-        nradial = (int)(rmax/bin + 0.5);
+        n1      = static_cast<int>(2*amax/bin + 0.5);
+        nradial = static_cast<int>(rmax/bin + 0.5);
         /* cppcheck-suppress zerodiv fixed in 1.68-dev */
         invspa  = n1/(2*amax);
         /* cppcheck-suppress zerodiv fixed in 1.68-dev */
@@ -309,7 +314,7 @@ int gmx_densmap(int argc, char *argv[])
                     {
                         m2 += 1;
                     }
-                    grid[(int)(m1*n1)][(int)(m2*n2)] += invcellvol;
+                    grid[static_cast<int>(m1*n1)][static_cast<int>(m2*n2)] += invcellvol;
                 }
             }
         }
@@ -352,14 +357,14 @@ int gmx_densmap(int argc, char *argv[])
                 j = index[i];
                 pbc_dx(&pbc, x[j], center, dx);
                 axial = iprod(dx, direction);
-                r     = sqrt(norm2(dx) - axial*axial);
+                r     = std::sqrt(norm2(dx) - axial*axial);
                 if (axial >= -amax && axial < amax && r < rmax)
                 {
                     if (bMirror)
                     {
                         r += rmax;
                     }
-                    grid[(int)((axial + amax)*invspa)][(int)(r*invspz)] += 1;
+                    grid[static_cast<int>((axial + amax)*invspa)][static_cast<int>(r*invspz)] += 1;
                 }
             }
         }
@@ -482,15 +487,15 @@ int gmx_densmap(int argc, char *argv[])
     {
         if (!bXmax)
         {
-            sprintf(buf+strlen(buf), ", %c > %g nm", eaver[0][0], xmin);
+            sprintf(buf+std::strlen(buf), ", %c > %g nm", eaver[0][0], xmin);
         }
         else if (!bXmin)
         {
-            sprintf(buf+strlen(buf), ", %c < %g nm", eaver[0][0], xmax);
+            sprintf(buf+std::strlen(buf), ", %c < %g nm", eaver[0][0], xmax);
         }
         else
         {
-            sprintf(buf+strlen(buf), ", %c: %g - %g nm", eaver[0][0], xmin, xmax);
+            sprintf(buf+std::strlen(buf), ", %c: %g - %g nm", eaver[0][0], xmin, xmax);
         }
     }
     if (ftp2bSet(efDAT, NFILE, fnm))