Removed unnecessary header.
authorTeemu Murtola <teemu.murtola@gmail.com>
Tue, 3 Apr 2012 04:45:18 +0000 (07:45 +0300)
committerTeemu Murtola <teemu.murtola@gmail.com>
Tue, 3 Apr 2012 04:45:18 +0000 (07:45 +0300)
Removed src/gromacs/basicmath.h, which was a leftover from a time when I
had parts of the code compiling independent of Gromacs.  In due time,
legacyheaders/maths.h will probably be moved somewhere to serve the same
need.  Also removed the use of smalloc.h from average.cpp.

Change-Id: I651d9214fe698aff27138a145a501f6b1f1bf351

src/gromacs/analysisdata/modules/average.cpp
src/gromacs/analysisdata/modules/average.h
src/gromacs/analysisdata/modules/displacement.cpp
src/gromacs/analysisdata/modules/histogram.cpp
src/gromacs/basicmath.h [deleted file]

index bb22ac5e085ed1c56537862ac30da19588e9d6d1..3fd117e7db0432e74dbe4515c51c47fbe09ec8fb 100644 (file)
 
 #include <cmath>
 
-// Legacy include
-#include "smalloc.h"
-
-#include "gromacs/basicmath.h"
 #include "gromacs/analysisdata/dataframe.h"
 
 namespace gmx
 {
 
 AnalysisDataAverageModule::AnalysisDataAverageModule()
-    : _nsamples(NULL)
 {
     setColumnCount(2);
 }
@@ -57,7 +52,6 @@ AnalysisDataAverageModule::AnalysisDataAverageModule()
 
 AnalysisDataAverageModule::~AnalysisDataAverageModule()
 {
-    sfree(_nsamples);
 }
 
 
@@ -74,7 +68,7 @@ AnalysisDataAverageModule::dataStarted(AbstractAnalysisData *data)
     int nrows = data->columnCount();
     setRowCount(nrows);
     allocateValues();
-    snew(_nsamples, nrows);
+    nsamples_.resize(nrows);
 }
 
 
@@ -95,7 +89,7 @@ AnalysisDataAverageModule::pointsAdded(const AnalysisDataPointSetRef &points)
             real y = points.y(i);
             value(firstcol + i, 0)  += y;
             value(firstcol + i, 1)  += y * y;
-            _nsamples[firstcol + i] += 1;
+            nsamples_[firstcol + i] += 1;
         }
     }
 }
@@ -112,8 +106,8 @@ AnalysisDataAverageModule::dataFinished()
 {
     for (int i = 0; i < rowCount(); ++i)
     {
-        real ave = value(i, 0) / _nsamples[i];
-        real std = sqrt(value(i, 1) / _nsamples[i] - ave * ave);
+        real ave = value(i, 0) / nsamples_[i];
+        real std = sqrt(value(i, 1) / nsamples_[i] - ave * ave);
         setValue(i, 0, ave);
         setValue(i, 1, std);
     }
index 661814a0cd113c5061c515b23cc23f478bc05700..70a9552fc73cf09b190d83b7b4747578e54ab1cf 100644 (file)
@@ -39,6 +39,8 @@
 #ifndef GMX_ANALYSISDATA_MODULES_AVERAGE_H
 #define GMX_ANALYSISDATA_MODULES_AVERAGE_H
 
+#include <vector>
+
 #include "../arraydata.h"
 #include "../datamodule.h"
 
@@ -83,7 +85,7 @@ class AnalysisDataAverageModule : public AbstractAnalysisArrayData,
         real stddev(int index) const;
 
     private:
-        int                    *_nsamples;
+        std::vector<int>        nsamples_;
 
         // Copy and assign disallowed by base.
 };
index 8cd9370cb9cbdf5f2a4a04dce7e25f471111cced..9c3722154bba5d74782b5ad6dba69a98fd49cd34 100644 (file)
 #include <config.h>
 #endif
 
-// Legacy include.
-#include "smalloc.h"
+#include "gromacs/legacyheaders/smalloc.h"
+#include "gromacs/legacyheaders/maths.h"
 
-#include "gromacs/basicmath.h"
 #include "gromacs/analysisdata/dataframe.h"
 #include "gromacs/analysisdata/modules/histogram.h"
 #include "gromacs/fatalerror/exceptions.h"
@@ -247,8 +246,9 @@ AnalysisDataDisplacementModule::frameFinished(const AnalysisDataFrameHeader & /*
 
             for (int d = 0; d < _impl->ndim; ++d)
             {
-                dist2 += sqr(_impl->oldval[_impl->ci + j + d]
-                             - _impl->oldval[i + j + d]);
+                real displ = _impl->oldval[_impl->ci + j + d]
+                             - _impl->oldval[i + j + d];
+                dist2 += displ * displ;
             }
             _impl->currValues_.push_back(AnalysisDataValue(dist2));
         }
index c0abc9fbf6b15bdedc92e02dec7a8991ab6bf132..aafd293be5814d08dee47498828c2a76efce49ad 100644 (file)
@@ -41,7 +41,6 @@
 
 #include <limits>
 
-#include "gromacs/basicmath.h"
 #include "gromacs/analysisdata/dataframe.h"
 #include "gromacs/analysisdata/datastorage.h"
 #include "gromacs/fatalerror/exceptions.h"
diff --git a/src/gromacs/basicmath.h b/src/gromacs/basicmath.h
deleted file mode 100644 (file)
index 673b7fd..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- *
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- *          GROningen MAchine for Chemical Simulations
- *
- *                        VERSION 3.2.0
- * Written by David van der Spoel, Erik Lindahl, Berk Hess, and others.
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2004, The GROMACS development team,
- * check out http://www.gromacs.org for more information.
-
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * If you want to redistribute modifications, please consider that
- * scientific software is very special. Version control is crucial -
- * bugs must be traceable. We will be happy to consider code for
- * inclusion in the official distribution, but derived work must not
- * be called official GROMACS. Details are found in the README & COPYING
- * files - if they are missing, get the official version at www.gromacs.org.
- *
- * To help us fund GROMACS development, we humbly ask that you cite
- * the papers on the package - you can find them in the top README file.
- *
- * For more info, check our website at http://www.gromacs.org
- */
-#ifndef GMX_BASICMATH_H
-#define GMX_BASICMATH_H
-
-#include <cmath>
-
-#include "types/simple.h"
-
-namespace gmx
-{
-
-template <typename T> static inline
-T sqr(const T &value)
-{
-    return value * value;
-}
-
-/*! \brief
- * Check if two numbers are within a tolerance
- *
- * This routine checks if the relative difference between two numbers is
- * approximately within the given tolerance, defined as
- * fabs(f1-f2)<=tolerance*fabs(f1+f2).
- *
- * To check if two floating-point numbers are almost identical, use this routine
- * with the tolerance GMX_REAL_EPS, or GMX_DOUBLE_EPS if the check should be
- * done in double regardless of Gromacs precision.
- *
- * To check if two algorithms produce similar results you will normally need
- * to relax the tolerance significantly since many operations (e.g. summation)
- * accumulate floating point errors.
- *
- * \param f1  First number to compare
- * \param f2  Second number to compare
- * \param tol Tolerance to use
- *
- * \return 1 if the relative difference is within tolerance, 0 if not.
- */
-static int
-gmx_within_tol(double   f1,
-               double   f2,
-               double   tol)
-{
-    /* The or-equal is important - otherwise we return false if f1==f2==0 */
-    if (std::fabs(f1-f2) <= tol * 0.5 * (std::fabs(f1) + std::fabs(f2)))
-    {
-        return 1;
-    }
-    else
-    {
-        return 0;
-    }
-}
-
-
-
-/*! \brief
- * Check if a number is smaller than some preset safe minimum
- * value, currently defined as GMX_REAL_MIN/GMX_REAL_EPS.
- *
- * If a number is smaller than this value we risk numerical overflow
- * if any number larger than 1.0/GMX_REAL_EPS is divided by it.
- *
- * \return 1  if 'almost' numerically zero, 0 otherwise.
- */
-static int
-gmx_numzero(double a)
-{
-  return gmx_within_tol(a,0.0,GMX_REAL_MIN/GMX_REAL_EPS);
-}
-
-}
-
-#endif