New classes for spline interpolation tables
authorErik Lindahl <erik@kth.se>
Sun, 21 Feb 2016 21:31:01 +0000 (22:31 +0100)
committerMark Abraham <mark.j.abraham@gmail.com>
Mon, 17 Oct 2016 17:29:40 +0000 (19:29 +0200)
commit231f0d30d49a15e83864a23dfd08f78ea467d0aa
tree552a6e6a8cd865c8391897ef4a9f4df51055bd57
parent594600cca136cbcad68fb0e4ac83d77190893e23
New classes for spline interpolation tables

Quadratic and cubic spline tables can be constructed either
from analytical functions or numerical vector input, and they
can contain an arbitrary number of functions as multi-tables.
Spacing is optimized to achieve the requested precision.
To make the class more generic it works with functions and
derivatives, and avoids worrying about swapping signs to get
forces. The interpolation functions are templated and will also
work with SIMD, without exposing any table internals.

Change-Id: If75f52b0601ad4b396d3cef74b5bbbe81ba91753
18 files changed:
cmake/gmxCFlags.cmake
docs/doxygen/suppressions.txt
src/gromacs/tables/CMakeLists.txt
src/gromacs/tables/cubicsplinetable.cpp [new file with mode: 0644]
src/gromacs/tables/cubicsplinetable.h [new file with mode: 0644]
src/gromacs/tables/forcetable.h
src/gromacs/tables/quadraticsplinetable.cpp [new file with mode: 0644]
src/gromacs/tables/quadraticsplinetable.h [new file with mode: 0644]
src/gromacs/tables/splineutil.cpp [new file with mode: 0644]
src/gromacs/tables/splineutil.h [new file with mode: 0644]
src/gromacs/tables/tableinput.h [new file with mode: 0644]
src/gromacs/tables/tests/CMakeLists.txt [new file with mode: 0644]
src/gromacs/tables/tests/splinetable.cpp [new file with mode: 0644]
src/gromacs/utility/errorcodes.cpp
src/gromacs/utility/errorcodes.h
src/gromacs/utility/exceptions.cpp
src/gromacs/utility/exceptions.h
src/testutils/testasserts.cpp