#
# This file is part of the GROMACS molecular simulation package.
#
-# Copyright (c) 2014, by the GROMACS development team, led by
+# Copyright (c) 2014,2015, by the GROMACS development team, led by
# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
# and including many others, as listed in the AUTHORS file in the
# top-level source directory and at http://www.gromacs.org.
# To help us fund GROMACS development, we humbly ask that you cite
# the research papers on the package. Check out http://www.gromacs.org.
-file(GLOB GMXCORRFUNC_SOURCES *.c *.cpp)
+file(GLOB GMXCORRFUNC_SOURCES *.cpp)
file(GLOB LMFIT_SOURCES ${CMAKE_SOURCE_DIR}/src/external/lmfit/*.c)
set(LIBGROMACS_SOURCES ${LIBGROMACS_SOURCES} ${GMXCORRFUNC_SOURCES} ${LMFIT_SOURCES} PARENT_SCOPE)
#include "autocorr.h"
-#include <math.h>
#include <stdio.h>
#include <string.h>
+#include <cmath>
+
+#include <algorithm>
+
#include "gromacs/correlationfunctions/expfit.h"
#include "gromacs/correlationfunctions/integrate.h"
#include "gromacs/correlationfunctions/manyautocorrelation.h"
int nCos)
{
int i = 0;
- int fftcode;
- real aver, *ans;
- aver = 0.0;
switch (nCos)
{
case enNorm:
for (i = 0; (i < nframes); i++)
{
- aver += c1[i];
cfour[i] = c1[i];
}
break;
gmx_fatal(FARGS, "nCos = %d, %s %d", nCos, __FILE__, __LINE__);
}
- fftcode = many_auto_correl(1, nframes, nfour, &cfour);
+ many_auto_correl(1, nframes, nfour, &cfour);
}
/*! \brief Routine to comput ACF without FFT. */
}
if (bFour)
{
- c0 = log((double)nframes)/log(2.0);
- k = c0;
+ c0 = std::log(static_cast<double>(nframes))/std::log(2.0);
+ k = static_cast<int>(c0);
if (k < c0)
{
k++;
* In this loop the actual correlation functions are computed, but without
* normalizing them.
*/
- k = max(1, pow(10, (int)(log(nitem)/log(100))));
- for (i = 0; i < nitem; i++)
+ for (int i = 0; i < nitem; i++)
{
- if (bVerbose && ((i%k == 0 || i == nitem-1)))
+ if (bVerbose && (((i % 100) == 0) || (i == nitem-1)))
{
fprintf(stderr, "\rThingie %d", i+1);
}
else
{
sum = print_and_integrate(fp, nout, dt, c1[0], NULL, 1);
- if (bVerbose)
- {
- printf("Correlation time (integral over corrfn): %g (ps)\n", sum);
- }
+ }
+ if (bVerbose)
+ {
+ printf("Correlation time (integral over corrfn): %g (ps)\n", sum);
}
}
else
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2014, by the GROMACS development team, led by
+ * Copyright (c) 2014,2015, by the GROMACS development team, led by
* Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
* and including many others, as listed in the AUTHORS file in the
* top-level source directory and at http://www.gromacs.org.
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2013,2014, by the GROMACS development team, led by
+ * Copyright (c) 2013,2014,2015, by the GROMACS development team, led by
* Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
* and including many others, as listed in the AUTHORS file in the
* top-level source directory and at http://www.gromacs.org.
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2014, by the GROMACS development team, led by
+ * Copyright (c) 2014,2015, by the GROMACS development team, led by
* Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
* and including many others, as listed in the AUTHORS file in the
* top-level source directory and at http://www.gromacs.org.
#include "manyautocorrelation.h"
-#include <math.h>
#include <stdio.h>
#include <stdlib.h>
+#include <cmath>
+
+#include <algorithm>
+
#include "gromacs/fft/fft.h"
#include "gromacs/legacyheaders/macros.h"
#include "gromacs/utility/gmxomp.h"
#pragma omp parallel
{
typedef real complex[2];
- int i, t, j, fftcode;
+ int i, j;
gmx_fft_t fft1;
complex *in, *out;
int i0, i1;
// fprintf(stderr, "There are %d threads for correlation functions\n", nthreads);
}
i0 = thread_id*nfunc/nthreads;
- i1 = min(nfunc, (thread_id+1)*nfunc/nthreads);
+ i1 = std::min(nfunc, (thread_id+1)*nfunc/nthreads);
- fftcode = gmx_fft_init_1d(&fft1, nfft, GMX_FFT_FLAG_CONSERVATIVE);
+ gmx_fft_init_1d(&fft1, nfft, GMX_FFT_FLAG_CONSERVATIVE);
/* Allocate temporary arrays */
snew(in, nfft);
snew(out, nfft);
in[j][0] = in[j][1] = 0;
}
- fftcode = gmx_fft_1d(fft1, GMX_FFT_BACKWARD, (void *)in, (void *)out);
+ gmx_fft_1d(fft1, GMX_FFT_BACKWARD, (void *)in, (void *)out);
for (j = 0; j < nfft; j++)
{
in[j][0] = (out[j][0]*out[j][0] + out[j][1]*out[j][1])/nfft;
in[j][0] = in[j][1] = 0;
}
- fftcode = gmx_fft_1d(fft1, GMX_FFT_FORWARD, (void *)in, (void *)out);
+ gmx_fft_1d(fft1, GMX_FFT_FORWARD, (void *)in, (void *)out);
for (j = 0; (j < nfft); j++)
{
c[i][j] = out[j][0]/ndata;
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2013,2014, by the GROMACS development team, led by
+ * Copyright (c) 2013,2014,2015, by the GROMACS development team, led by
* Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
* and including many others, as listed in the AUTHORS file in the
* top-level source directory and at http://www.gromacs.org.