scripts/GMXRC.* !filter
scripts/make_gromos_rtp.py !filter
src/contrib/* !filter
-src/gromacs/gmxlib/gpu_utils/memtestG80_core.* !filter
src/gromacs/gmxlib/nonbonded/preprocessor/gmxpreprocess.py !filter
src/gromacs/linearalgebra/gmx_blas/* !filter
src/gromacs/linearalgebra/gmx_lapack/* !filter
.project
.cproject
CMakeLists.txt.user
+/VersionInfo*.cmake
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
-# PROJECT_VERSION should have the following structure:
-# VERSION-dev[-SUFFIX] where the VERSION should have the for: vMajor.vMinor.vPatch
-#
-# The "-dev" suffix is important to keep because it makes possible to distinguish
-# between a build from official release and a build from git release branch on a
-# machine with no git.
-#
-# NOTE: when releasing the "-dev" suffix needs to be stripped off!
-# REGRESSIONTEST_VERSION and REGRESSIONTEST_BRANCH should always be
-# defined.
-set(PROJECT_VERSION "5.0.1-dev")
-# If this is a released tarball, "-dev" will not be present in
-# PROJECT_VERSION, and REGRESSIONTEST_VERSION specifies the version
-# number of the regressiontest tarball against which the code tarball
-# can be tested. This will be the version of the last patch release.
-set(REGRESSIONTEST_VERSION "5.0.1-dev")
-# The MD5 checksum of the regressiontest tarball. Only used if "-dev"
-# is not present in the PROJECT_VERSION
-set(REGRESSIONTEST_MD5SUM "a07524afebca5013540d4f2f72df2dce")
-# If this is not a released tarball, "-dev" will be present in
-# PROJECT_VERSION, and REGRESSIONTEST_BRANCH specifies the name of the
-# gerrit.gromacs.org branch whose HEAD can test this code, *if* this
-# code contains all recent fixes from the corresponding code branch.
-set(REGRESSIONTEST_BRANCH "refs/heads/release-5-0")
-
-set(CUSTOM_VERSION_STRING ""
- CACHE STRING "Custom version string (if empty, use hard-coded default)")
-mark_as_advanced(CUSTOM_VERSION_STRING)
-if (CUSTOM_VERSION_STRING)
- set(PROJECT_VERSION ${CUSTOM_VERSION_STRING})
-endif()
-set(LIBRARY_SOVERSION 0)
-set(LIBRARY_VERSION ${LIBRARY_SOVERSION}.0.0)
-# It is a bit irritating, but this has to be set separately for now!
-SET(CPACK_PACKAGE_VERSION_MAJOR "5")
-SET(CPACK_PACKAGE_VERSION_MINOR "0")
-#SET(CPACK_PACKAGE_VERSION_PATCH "0")
-
-# The numerical gromacs version. It is 40600 for 4.6.0.
-# The #define GMX_VERSION in gromacs/version.h is set to this value.
-math(EXPR NUM_VERSION
- "${CPACK_PACKAGE_VERSION_MAJOR}*10000 + ${CPACK_PACKAGE_VERSION_MINOR}*100")
-if(CPACK_PACKAGE_VERSION_PATCH)
- math(EXPR NUM_VERSION
- "${NUM_VERSION} + ${CPACK_PACKAGE_VERSION_PATCH}")
-endif()
-
-# The API version tracks the numerical Gromacs version (for now).
-# It is potentially different from the Gromacs version in the future, if
-# the programs/libraries diverge from the presumably more stable API.
-# The #define GMX_API_VERSION in version.h is set to this value to
-# provide backward compatibility of software written against the Gromacs API.
-set(API_VERSION ${NUM_VERSION})
+# Set up common version variables, as well as general information about
+# the build tree (whether the build is from a source package or from a git
+# repository). Also declares a few functions that will be used for generating
+# version info files later.
+include(gmxVersionInfo)
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT AND UNIX)
set(CMAKE_INSTALL_PREFIX "/usr/local/gromacs" CACHE STRING "Installation prefix (installation will need write permissions here)" FORCE)
endif()
include(gmxBuildTypeReference)
+include(gmxBuildTypeProfile)
include(gmxBuildTypeTSAN)
include(gmxBuildTypeASAN)
include(gmxBuildTypeReleaseWithAssert)
if(NOT CMAKE_BUILD_TYPE)
- set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel Reference RelWithAssert." FORCE)
+ set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel Reference RelWithAssert Profile." FORCE)
# There's no need to offer a user the choice of ThreadSanitizer
# Set the possible values of build type for cmake-gui
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release"
- "MinSizeRel" "RelWithDebInfo" "Reference" "RelWithAssert")
+ "MinSizeRel" "RelWithDebInfo" "Reference" "RelWithAssert" "Profile")
endif()
if(CMAKE_CONFIGURATION_TYPES)
# Add appropriate GROMACS-specific build types for the Visual
"List of configuration types"
FORCE)
endif()
-set(build_types_with_explicit_flags RELEASE DEBUG RELWITHDEBUGINFO RELWITHASSERT MINSIZEREL)
-
-enable_language(C)
-enable_language(CXX)
+set(build_types_with_explicit_flags RELEASE DEBUG RELWITHDEBUGINFO RELWITHASSERT MINSIZEREL PROFILE)
set(CPACK_PACKAGE_NAME "gromacs")
-set(CPACK_PACKAGE_VERSION ${PROJECT_VERSION})
+set(CPACK_PACKAGE_VERSION_MAJOR ${GMX_VERSION_MAJOR})
+set(CPACK_PACKAGE_VERSION_MINOR ${GMX_VERSION_MINOR})
+set(CPACK_PACKAGE_VERSION_PATCH ${GMX_VERSION_PATCH})
+set(CPACK_PACKAGE_VERSION ${GMX_VERSION_STRING})
set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}")
set(CPACK_PACKAGE_VENDOR "gromacs.org")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Gromacs - a toolkit for high-performance molecular simulation")
"File that contains suppressions for the memory checker")
include(CTest)
-set(SOURCE_IS_GIT_REPOSITORY OFF)
-set(SOURCE_IS_SOURCE_DISTRIBUTION OFF)
-if(EXISTS "${CMAKE_SOURCE_DIR}/.git")
- set(SOURCE_IS_GIT_REPOSITORY ON)
-endif()
-if(NOT EXISTS "${CMAKE_SOURCE_DIR}/admin/.isreposource")
- set(SOURCE_IS_SOURCE_DISTRIBUTION ON)
-endif()
+# Variables that accumulate stuff influencing the installed headers
+set(INSTALLED_HEADER_INCLUDE_DIRS "")
+set(INSTALLED_HEADER_DEFINITIONS "")
########################################################################
# Check and warn if cache generated on a different host is being reused
option(GMX_USE_TNG "Use the TNG library for trajectory I/O" ON)
-option(GMX_GIT_VERSION_INFO "Generate git version information" ${SOURCE_IS_GIT_REPOSITORY})
-mark_as_advanced(GMX_GIT_VERSION_INFO)
-
if(UNIX)
option(GMX_SYMLINK_OLD_BINARY_NAMES "Create symbolic links for pre-5.0 binary names" ON)
endif()
endif()
-
-set(PKG_CFLAGS "")
if(GMX_DOUBLE)
add_definitions(-DGMX_DOUBLE)
- set(PKG_CFLAGS "${PKG_CFLAGS} -DGMX_DOUBLE")
+ list(APPEND INSTALLED_HEADER_DEFINITIONS "-DGMX_DOUBLE")
endif()
if(GMX_SOFTWARE_INVSQRT)
- set(PKG_CFLAGS "${PKG_CFLAGS} -DGMX_SOFTWARE_INVSQRT")
+ list(APPEND INSTALLED_HEADER_DEFINITIONS "-DGMX_SOFTWARE_INVSQRT")
endif()
if(WIN32 AND NOT CYGWIN)
add_definitions(-DNOMINMAX)
endif()
-# only bother with finding git and using version.h if the source is a git repo
-if(GMX_GIT_VERSION_INFO)
- if (NOT SOURCE_IS_GIT_REPOSITORY)
- message(FATAL_ERROR
- "Cannot generate git version information from source tree not under git. "
- "Set GMX_GIT_VERSION_INFO=OFF to proceed.")
- endif()
- # We need at least git v1.5.3 be able to parse git's date output. If not
- # found or the version is too small, we can't generate version information.
- find_package(Git)
-
- if(NOT GIT_FOUND OR GIT_VERSION_STRING VERSION_LESS "1.5.3")
- message(FATAL_ERROR
- "No compatible git version found (>= 1.5.3 required). "
- "Won't be able to generate development version information. "
- "Set GMX_GIT_VERSION_INFO=OFF to proceed.")
- endif()
-endif()
-
# Detect boost unless GMX_EXTERNAL_BOOST is explicitly OFF
# Used for default if GMX_EXTERNAL_BOOST is not defined (first CMake pass)
if(NOT DEFINED GMX_EXTERNAL_BOOST OR GMX_EXTERNAL_BOOST)
"Either set GMX_BUILD_UNITTESTS=OFF or tell CMake how to find a working version of libxml2.")
endif()
-########################################################################
-# Generate development version info for cache
-########################################################################
-# set(GEN_VERSION_INFO_INTERNAL "ON")
-# include(gmxGenerateVersionString)
-
########################################################################
# Our own GROMACS tests
########################################################################
include_directories(BEFORE ${CMAKE_SOURCE_DIR}/src/external/thread_mpi/include)
# Required for config.h, maybe should only be set in src/CMakeLists.txt
include_directories(BEFORE ${CMAKE_BINARY_DIR}/src)
-# Required for gmx_header_config_gen.h to be found before installation
-include_directories(BEFORE ${CMAKE_BINARY_DIR}/src/gromacs/utility)
# Required for now to make old code compile
include_directories(BEFORE ${CMAKE_SOURCE_DIR}/src/gromacs/legacyheaders)
set(GMX_EXE_LINKER_FLAGS ${GMX_EXE_LINKER_FLAGS} ${OpenMP_LINKER_FLAGS})
set(GMX_SHARED_LINKER_FLAGS ${GMX_SHARED_LINKER_FLAGS} ${OpenMP_SHARED_LINKER_FLAGS})
endif()
-set(PKG_CFLAGS "${PKG_CFLAGS} ${OpenMP_C_FLAGS}")
########################################################################
# Specify install locations
# These variables are used internally to provide a central location for
# customizing the install locations.
-set(LIB_INSTALL_DIR ${GMX_LIB_INSTALL_DIR})
-set(BIN_INSTALL_DIR bin)
-set(DATA_INSTALL_DIR share/${GMX_DATA_INSTALL_DIR})
-set(MAN_INSTALL_DIR share/man)
-set(INCL_INSTALL_DIR include)
+set(LIB_INSTALL_DIR ${GMX_LIB_INSTALL_DIR})
+set(BIN_INSTALL_DIR bin)
+set(DATA_INSTALL_DIR share/${GMX_DATA_INSTALL_DIR})
+set(MAN_INSTALL_DIR share/man)
+# If the nesting level wrt. the installation root is changed,
+# gromacs-config.cmake.cmakein needs to be adapted.
+set(CMAKE_INSTALL_DIR share/cmake)
+# TODO: Make GMXRC adapt if this is changed
+set(PKGCONFIG_INSTALL_DIR ${LIB_INSTALL_DIR}/pkgconfig)
+set(INCL_INSTALL_DIR include)
# These variables get written into config.h for use in finding the data
# directories.
set(GMXLIB_SEARCH_DIR share/${GMX_DATA_INSTALL_DIR}/top)
set(GMXLIB_FALLBACK ${CMAKE_INSTALL_PREFIX}/${DATA_INSTALL_DIR}/top)
+list(APPEND INSTALLED_HEADER_INCLUDE_DIRS ${INCL_INSTALL_DIR})
+
# Binary and library suffix options
include(gmxManageSuffixes)
if(GMX_EXTERNAL_BOOST)
include_directories(${Boost_INCLUDE_DIRS})
- set(PKG_CFLAGS "${PKG_CFLAGS} -I${Boost_INCLUDE_DIRS}")
+ list(APPEND INSTALLED_HEADER_INCLUDE_DIRS ${Boost_INCLUDE_DIRS})
else()
include_directories(BEFORE ${CMAKE_SOURCE_DIR}/src/external/boost)
+ list(APPEND INSTALLED_HEADER_INCLUDE_DIRS ${INCL_INSTALL_DIR}/gromacs/external/boost)
+ list(APPEND INSTALLED_HEADED_DEFINITIONS "-DBOOST_NO_TYPEID")
# typeid not supported for minimal internal version
# (would add significant amount of code)
add_definitions(-DBOOST_NO_TYPEID)
- # TODO: Propagate the above settings to the installed CMakeFiles.txt template
- # (from share/template/)
- set(PKG_CFLAGS "${PKG_CFLAGS} -DBOOST_NO_TYPEID -I${CMAKE_INSTALL_PREFIX}/${INCL_INSTALL_DIR}/gromacs/external/boost")
if (NOT GMX_BUILD_MDRUN_ONLY)
install(DIRECTORY ${CMAKE_SOURCE_DIR}/src/external/boost/boost
DESTINATION ${INCL_INSTALL_DIR}/gromacs/external/boost
1. GROMACS
2. Trajectory file reading using VMD plugins
3. Internal FFT (fftpack)
-4. The memtestG80 library
-5. thread_mpi
-6. Blas
-7. Lapack
-8. Subset of Boost C++ library
-9. Google Test and Google Mock
-10. Sun XDR implementation (External Data Representation)
-11. Sun FDLIBM (Freely Distributable Maths Library)
-12. Random123
-13. md5
+4. thread_mpi
+5. Blas
+6. Lapack
+7. Subset of Boost C++ library
+8. Google Test and Google Mock
+9. Sun XDR implementation (External Data Representation)
+10. Sun FDLIBM (Freely Distributable Maths Library)
+11. Random123
+12. md5
Our chosen method for packaging distributions (CPack) only permits a
package to have a single license file, so we are unfortunately forced
fftpack.c : A set of FFT routines in C.
Algorithmically based on Fortran-77 FFTPACK by Paul N. Swarztrauber (Version 4, 1985).
-4. The memtestG80 library
-=========================
-
- Files: src/gromacs/gmxlib/gpu_utils/memtestG80_core.*
-
-The memtestG80 library, written by Imran Haque, is Copyright 2009 Stanford University,
-covered by the LGPL license. It may be used under the following terms:
-
-IN NO EVENT SHALL STANFORD UNIVERSITY BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,
-SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF
-THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF STANFORD UNIVERSITY HAS BEEN
-ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-STANFORD UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED
-TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-THE SOFTWARE AND ACCOMPANYING DOCUMENTATION PROVIDED HEREUNDER IS PROVIDED "AS IS".
-Folding@home HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
-OR MODIFICATIONS.
-
-Restrictions:
-
-You may use this software on a computer system only if you own the system or have the
-written permission of the owner.
-
-You may not alter the software or associated data files.
-
-Certain builds of this software incorporate by linkage code from the libintl
-and libiconv libraries, which are covered by the Library GNU Public License,
-available at http://www.gnu.org/licenses/lgpl-3.0.txt.
-
-5. thread_mpi
+4. thread_mpi
=============
Files: src/external/thread_mpi/
inclusion in the official distribution, but derived work should not
be called official thread_mpi.
-6. Blas
+5. Blas
=======
These files are semi-automatic translations by f2c from the original netlib BLAS library.
Erik Lindahl, 2008-10-07.
-7. Lapack
+6. Lapack
=========
These files are semi-automatic translations by f2c from the original netlib LAPACK library.
Erik Lindahl, 2008-10-07.
-8. Subset of Boost C++ library
+7. Subset of Boost C++ library
==============================
Files: src/external/boost/boost/*
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
-9. Google Test and Google Mock
+8. Google Test and Google Mock
===============================
Files: src/external/gmock-1.7.0/*
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-10. Sun Extensible Data Representation routines (XDR)
+9. Sun Extensible Data Representation routines (XDR)
=====================================================
Files: src/gromacs/fileio/gmx_system_xdr.c
Mountain View, California 94043
-11. Sun FDLIBM (Freely Distributable Maths Library)
+10. Sun FDLIBM (Freely Distributable Maths Library)
===================================================
Files: src/gromacs/math/utilities.c
is preserved.
-12. Random123
+11. Random123
============================================
Copyright 2010-2012, D. E. Shaw Research.
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-13. md5
+12. md5
============================================
Copyright (C) 1999, 2002 Aladdin Enterprises. All rights reserved.
--- /dev/null
+#
+# This file is part of the GROMACS molecular simulation package.
+#
+# Copyright (c) 2014, 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.
+#
+# GROMACS is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public License
+# as published by the Free Software Foundation; either version 2.1
+# of the License, or (at your option) any later version.
+#
+# GROMACS is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with GROMACS; if not, see
+# http://www.gnu.org/licenses, or write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# If you want to redistribute modifications to GROMACS, 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 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.
+
+set(GMX_VERSION "@GMX_VERSION@")
+set(GMX_VERSION_MAJOR "@GMX_VERSION_MAJOR@")
+set(GMX_VERSION_MINOR "@GMX_VERSION_MINOR@")
+set(GMX_VERSION_PATCH "@GMX_VERSION_PATCH@")
+set(GMX_VERSION_STRING "@GMX_VERSION_STRING@")
+
+set(GMX_VERSION_STRING_FULL "@GMX_VERSION_STRING_FULL@")
+set(GMX_VERSION_FULL_HASH "@GMX_VERSION_FULL_HASH@")
+set(GMX_VERSION_CENTRAL_BASE_HASH "@GMX_VERSION_CENTRAL_BASE_HASH@")
--- /dev/null
+#
+# This file is part of the GROMACS molecular simulation package.
+#
+# Copyright (c) 2014, 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.
+#
+# GROMACS is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public License
+# as published by the Free Software Foundation; either version 2.1
+# of the License, or (at your option) any later version.
+#
+# GROMACS is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with GROMACS; if not, see
+# http://www.gnu.org/licenses, or write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# If you want to redistribute modifications to GROMACS, 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 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.
+
+# Custom build type "Profile", based on "RelWithAssert".
+set( CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_RELEASE_INIT} -pg" CACHE STRING "C flags for profile builds.")
+set( CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_RELEASE_INIT} -pg" CACHE STRING "C++ flags for profile builds.")
+set( CMAKE_LD_FLAGS_PROFILE "${CMAKE_LD_FLAGS_RELEASE_INIT} -pg" CACHE STRING "Linking flags for profile builds.")
+mark_as_advanced( CMAKE_CXX_FLAGS_PROFILE CMAKE_C_FLAGS_PROFILE CMAKE_LD_FLAGS_PROFILE)
+
# be set up elsewhere and passed to this function, but it is
# inconvenient in CMake to pass more than one list, and such a
# list is only used here.
- foreach(build_type RELWITHDEBUGINFO RELWITHASSERT MINSIZEREL)
+ foreach(build_type RELWITHDEBUGINFO RELWITHASSERT MINSIZEREL PROFILE)
set(GMXC_${language}FLAGS_${build_type} "${GMXC_${language}FLAGS_RELEASE}")
endforeach()
# Copy the flags that are only used by the real Release build
# Since 4.8 on by default. For previous version disabling is a no-op. Only disabling for Release because with assert
# the warnings are OK.
GMX_TEST_CFLAG(CFLAGS_WARN_REL "-Wno-array-bounds" GMXC_CFLAGS_RELEASE_ONLY)
- # Since gcc 4.8 strict - false postives with old gmx_fatal. TODO: Remove in master
- GMX_TEST_CFLAG(CFLAGS_WARN_UNINIT "-Wno-maybe-uninitialized" GMXC_CFLAGS)
if(CYGWIN)
GMX_TEST_CFLAG(CFLAGS_WARN_SUBSCRIPT "-Wno-char-subscripts" GMXC_CFLAGS)
endif()
# new in gcc 4.5
GMX_TEST_CFLAG(CFLAGS_EXCESS_PREC "-fexcess-precision=fast" GMXC_CFLAGS_RELEASE)
- GMX_TEST_CFLAG(CFLAGS_COPT "-fomit-frame-pointer -funroll-all-loops"
+ GMX_TEST_CFLAG(CFLAGS_COPT "-funroll-all-loops"
GMXC_CFLAGS_RELEASE)
GMX_TEST_CFLAG(CFLAGS_NOINLINE "-fno-inline" GMXC_CFLAGS_DEBUG)
endif()
GMX_TEST_CFLAG(CXXFLAGS_WARN_REL "-Wno-array-bounds" GMXC_CXXFLAGS_RELEASE_ONLY)
# new in gcc 4.5
GMX_TEST_CXXFLAG(CXXFLAGS_EXCESS_PREC "-fexcess-precision=fast" GMXC_CXXFLAGS_RELEASE)
- GMX_TEST_CXXFLAG(CXXFLAGS_COPT "-fomit-frame-pointer -funroll-all-loops"
+ GMX_TEST_CXXFLAG(CXXFLAGS_COPT "-funroll-all-loops"
GMXC_CXXFLAGS_RELEASE)
GMX_TEST_CXXFLAG(CXXFLAGS_NOINLINE "-fno-inline" GMXC_CXXFLAGS_DEBUG)
endif()
--- /dev/null
+#
+# This file is part of the GROMACS molecular simulation package.
+#
+# Copyright (c) 2014, 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.
+#
+# GROMACS is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public License
+# as published by the Free Software Foundation; either version 2.1
+# of the License, or (at your option) any later version.
+#
+# GROMACS is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with GROMACS; if not, see
+# http://www.gnu.org/licenses, or write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# If you want to redistribute modifications to GROMACS, 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 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.
+
+include(${VERSION_VARIABLES})
+configure_file(${VERSION_CMAKEIN} ${VERSION_OUT} @ONLY)
# PROJECT_SOURCE_DIR - top level source directory (which has to be in git)
# VERSION_CMAKEIN - path to an input template file
# VERSION_OUT - path to the output file
-# VERSION_NO_REMOTE_HASH - if set, GMX_GIT_REMOTE_HASH is not generated
#
# Output:
-# i) Script mode: VERSION_OUT is configured from the input VERSION_CMAKEIN
+# VERSION_OUT is configured from the input VERSION_CMAKEIN
# using the variables listed below.
-# ii) Cache variable mode: the variables below are set in cache.
#
-# GMX_PROJECT_VERSION_STR - version string
-# GMX_GIT_HEAD_HASH - git hash of current local HEAD
-# GMX_GIT_REMOTE_HASH - git hash of the first ancestor commit from the
-# main Gromacs repository
+# GMX_VERSION_STRING_FULL - version string
+# GMX_VERSION_FULL_HASH - git hash of current local HEAD
+# GMX_VERSION_CENTRAL_BASE_HASH - git hash of the first ancestor commit from the
+# main Gromacs repository
#
# Szilard Pall (pszilard@cbr.su.se)
# Teemu Murtola (teemu.murtola@gmail.com)
+# Check input variables.
if("${PROJECT_VERSION}" STREQUAL "")
message(FATAL_ERROR "PROJECT_VERSION undefined!")
endif()
-
-# if we're generating variables for cache unset the variables
-if(GEN_VERSION_INFO_INTERNAL)
- set(GMX_PROJECT_VERSION_STR)
- set(GMX_GIT_HEAD_HASH)
- set(GMX_GIT_REMOTE_HASH)
+if (NOT EXISTS "${GIT_EXECUTABLE}")
+ message(FATAL_ERROR "Git executable is not set correctly")
endif()
-
-# bail if the source tree is not in a git repository
-if(NOT EXISTS "${PROJECT_SOURCE_DIR}/.git")
+if (NOT EXISTS "${PROJECT_SOURCE_DIR}/.git")
message(FATAL_ERROR "Project source directory ${PROJECT_SOURCE_DIR} not in git")
endif()
+if ("${VERSION_CMAKEIN}" STREQUAL "")
+ message(FATAL_ERROR "Missing input parameter VERSION_CMAKEIN!")
+endif()
+if ("${VERSION_OUT}" STREQUAL "")
+ message(FATAL_ERROR "Missing input parameter VERSION_OUT!")
+endif()
-# If git executable exists, build the development version string.
-if(EXISTS "${GIT_EXECUTABLE}")
- # refresh git index
- execute_process(COMMAND ${GIT_EXECUTABLE} update-index -q --refresh
- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
- TIMEOUT 5
- OUTPUT_QUIET
- ERROR_VARIABLE EXEC_ERR
- OUTPUT_STRIP_TRAILING_WHITESPACE
- )
+# refresh git index
+execute_process(COMMAND ${GIT_EXECUTABLE} update-index -q --refresh
+ WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
+ TIMEOUT 5
+ OUTPUT_QUIET
+ ERROR_VARIABLE EXEC_ERR
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+)
- # get the full hash of the current HEAD
- execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse HEAD
- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
- OUTPUT_VARIABLE HEAD_HASH
- ERROR_VARIABLE EXEC_ERR
- OUTPUT_STRIP_TRAILING_WHITESPACE
- )
- set(GMX_GIT_HEAD_HASH ${HEAD_HASH})
- # extract the shortened hash (7 char)
- execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD
- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
- OUTPUT_VARIABLE HEAD_HASH_SHORT
- ERROR_VARIABLE EXEC_ERR
- OUTPUT_STRIP_TRAILING_WHITESPACE
- )
+# get the full hash of the current HEAD
+execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse HEAD
+ WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
+ OUTPUT_VARIABLE HEAD_HASH
+ ERROR_VARIABLE EXEC_ERR
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+)
+set(GMX_VERSION_FULL_HASH ${HEAD_HASH})
- # if there are local uncommitted changes, the build gets labeled "dirty"
- execute_process(COMMAND ${GIT_EXECUTABLE} diff-index --name-only HEAD
- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
- OUTPUT_VARIABLE SRC_LOCAL_CHANGES
- ERROR_VARIABLE EXEC_ERR
- OUTPUT_STRIP_TRAILING_WHITESPACE
- )
- if(NOT "${SRC_LOCAL_CHANGES}" STREQUAL "")
- set(DIRTY_STR "-dirty")
- set(GMX_GIT_HEAD_HASH "${GMX_GIT_HEAD_HASH} (dirty)")
- endif()
+# extract the shortened hash (7 char)
+execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD
+ WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
+ OUTPUT_VARIABLE HEAD_HASH_SHORT
+ ERROR_VARIABLE EXEC_ERR
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+)
- # get the date of the HEAD commit
- execute_process(COMMAND ${GIT_EXECUTABLE} rev-list -n1 "--pretty=format:%ci" HEAD
- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
- OUTPUT_VARIABLE HEAD_DATE
- ERROR_VARIABLE EXEC_ERR
- OUTPUT_STRIP_TRAILING_WHITESPACE
- )
- string(REGEX REPLACE "\n| " ";" HEAD_DATE "${HEAD_DATE}")
- list(GET HEAD_DATE 2 HEAD_DATE)
- string(REGEX REPLACE "-" "" HEAD_DATE "${HEAD_DATE}")
+# if there are local uncommitted changes, the build gets labeled "dirty"
+execute_process(COMMAND ${GIT_EXECUTABLE} diff-index --name-only HEAD
+ WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
+ OUTPUT_VARIABLE SRC_LOCAL_CHANGES
+ ERROR_VARIABLE EXEC_ERR
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+)
+if(NOT "${SRC_LOCAL_CHANGES}" STREQUAL "")
+ set(DIRTY_STR "-dirty")
+ set(GMX_VERSION_FULL_HASH "${GMX_VERSION_FULL_HASH} (dirty)")
+endif()
- # compile the version string suffix
- set(VERSION_STR_SUFFIX "${HEAD_DATE}-${HEAD_HASH_SHORT}${DIRTY_STR}")
+# get the date of the HEAD commit
+execute_process(COMMAND ${GIT_EXECUTABLE} rev-list -n1 "--pretty=format:%ci" HEAD
+ WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
+ OUTPUT_VARIABLE HEAD_DATE
+ ERROR_VARIABLE EXEC_ERR
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+)
+string(REGEX REPLACE "\n| " ";" HEAD_DATE "${HEAD_DATE}")
+list(GET HEAD_DATE 2 HEAD_DATE)
+string(REGEX REPLACE "-" "" HEAD_DATE "${HEAD_DATE}")
- if (DEFINED VERSION_NO_REMOTE_HASH)
- set(GMX_REMOTES "")
- else()
- # find the names of remotes that are located on the official gromacs
- # git/gerrit servers
- execute_process(COMMAND ${GIT_EXECUTABLE} config --get-regexp
- "remote\\..*\\.url" "\\.gromacs\\.org[:/].*gromacs(\\.git)?$"
- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
- OUTPUT_VARIABLE GMX_REMOTES
- ERROR_VARIABLE EXEC_ERR
- OUTPUT_STRIP_TRAILING_WHITESPACE
- )
- endif()
+# compile the version string suffix
+set(VERSION_STR_SUFFIX "${HEAD_DATE}-${HEAD_HASH_SHORT}${DIRTY_STR}")
- # if there are remotes from the gromacs git servers, try to find ancestor
- # commits of the current HEAD from this remote;
- # otherwise, label the build "unknown"
- if("${GMX_REMOTES}" STREQUAL "")
- if (NOT DEFINED VERSION_NO_REMOTE_HASH)
- set(VERSION_STR_SUFFIX "${VERSION_STR_SUFFIX}-unknown")
- endif()
- set(GMX_GIT_REMOTE_HASH "unknown")
- else()
- string(REPLACE "\n" ";" GMX_REMOTES ${GMX_REMOTES})
- # construct a command pipeline that produces a reverse-time-ordered
- # list of commits and their annotated names in GMX_REMOTES
- # the max-count limit is there to put an upper bound on the execution time
- set(BASEREVCOMMAND "COMMAND ${GIT_EXECUTABLE} rev-list --max-count=1000 HEAD")
- foreach(REMOTE ${GMX_REMOTES})
- string(REGEX REPLACE "remote\\.(.*)\\.url.*" "\\1" REMOTE ${REMOTE})
- set(BASEREVCOMMAND "${BASEREVCOMMAND} COMMAND ${GIT_EXECUTABLE} name-rev --stdin --refs=refs/remotes/${REMOTE}/*")
- endforeach(REMOTE)
- # this is necessary for CMake to properly split the variable into
- # parameters for execute_process().
- string(REPLACE " " ";" BASEREVCOMMAND ${BASEREVCOMMAND})
- # find the first ancestor in the list provided by rev-list (not
- # necessarily the last though) which is in GMX_REMOTE, extract the
- # hash and the number of commits HEAD is ahead with
- execute_process(${BASEREVCOMMAND}
- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
- OUTPUT_VARIABLE ANCESTOR_LIST
- )
- string(REGEX REPLACE "\n" ";" ANCESTOR_LIST "${ANCESTOR_LIST}")
+# find the names of remotes that are located on the official gromacs
+# git/gerrit servers
+execute_process(COMMAND ${GIT_EXECUTABLE} config --get-regexp
+ "remote\\..*\\.url" "\\.gromacs\\.org[:/].*gromacs(\\.git)?$"
+ WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
+ OUTPUT_VARIABLE GMX_REMOTES
+ ERROR_VARIABLE EXEC_ERR
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+)
- set(AHEAD 0)
- set(GMX_GIT_REMOTE_HASH "")
- foreach(ANCESTOR ${ANCESTOR_LIST})
- string(REPLACE "\n" "" HASH_AND_REVNAMES "${ANCESTOR}")
- string(REPLACE " " ";" HASH_AND_REVNAMES "${HASH_AND_REVNAMES}")
- list(LENGTH HASH_AND_REVNAMES COUNT)
- # stop and set the hash if we have a hit, otherwise loop and count
- # how far ahead is the local repo
- if(COUNT GREATER 1)
- LIST(GET HASH_AND_REVNAMES 0 GMX_GIT_REMOTE_HASH)
- break()
- endif()
- math(EXPR AHEAD ${AHEAD}+1)
- endforeach(ANCESTOR)
- # mark the build "local" if didn't find any commits that are from
- # remotes/${GMX_REMOTE}/*
- if("${GMX_GIT_REMOTE_HASH}" STREQUAL "")
- set(GMX_GIT_REMOTE_HASH "unknown")
- set(VERSION_STR_SUFFIX "${VERSION_STR_SUFFIX}-local")
- # don't print the remote hash if there are no local commits
- elseif("${GMX_GIT_REMOTE_HASH}" STREQUAL "${HEAD_HASH}")
- set(GMX_GIT_REMOTE_HASH "")
- else()
- set(GMX_GIT_REMOTE_HASH "${GMX_GIT_REMOTE_HASH} (${AHEAD} newer local commits)")
- endif()
+# if there are remotes from the gromacs git servers, try to find ancestor
+# commits of the current HEAD from this remote;
+# otherwise, label the build "unknown"
+if("${GMX_REMOTES}" STREQUAL "")
+ if (NOT DEFINED VERSION_NO_REMOTE_HASH)
+ set(VERSION_STR_SUFFIX "${VERSION_STR_SUFFIX}-unknown")
endif()
-
- # compile final version string
- set(GMX_PROJECT_VERSION_STR "${PROJECT_VERSION}-${VERSION_STR_SUFFIX}")
+ set(GMX_VERSION_CENTRAL_BASE_HASH "unknown")
else()
- # the version has to be defined
- # set the GIT related information to "unknown"
- message(WARNING "Source tree seems to be a repository, but no compatible git is available, using hard-coded version string")
- set(GMX_PROJECT_VERSION_STR "${PROJECT_VERSION}")
- set(GMX_GIT_HEAD_HASH "unknown")
- set(GMX_GIT_REMOTE_HASH "unknown")
-endif()
+ string(REPLACE "\n" ";" GMX_REMOTES ${GMX_REMOTES})
+ # construct a command pipeline that produces a reverse-time-ordered
+ # list of commits and their annotated names in GMX_REMOTES
+ # the max-count limit is there to put an upper bound on the execution time
+ set(BASEREVCOMMAND "COMMAND ${GIT_EXECUTABLE} rev-list --max-count=1000 HEAD")
+ foreach(REMOTE ${GMX_REMOTES})
+ string(REGEX REPLACE "remote\\.(.*)\\.url.*" "\\1" REMOTE ${REMOTE})
+ set(BASEREVCOMMAND "${BASEREVCOMMAND} COMMAND ${GIT_EXECUTABLE} name-rev --stdin --refs=refs/remotes/${REMOTE}/*")
+ endforeach(REMOTE)
+ # this is necessary for CMake to properly split the variable into
+ # parameters for execute_process().
+ string(REPLACE " " ";" BASEREVCOMMAND ${BASEREVCOMMAND})
+ # find the first ancestor in the list provided by rev-list (not
+ # necessarily the last though) which is in GMX_REMOTE, extract the
+ # hash and the number of commits HEAD is ahead with
+ execute_process(${BASEREVCOMMAND}
+ WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
+ OUTPUT_VARIABLE ANCESTOR_LIST
+ )
+ string(REGEX REPLACE "\n" ";" ANCESTOR_LIST "${ANCESTOR_LIST}")
-# if we're generating cache variables set these
-# otherwise it's assumed that it's called in script mode to generate a file
-if(GEN_VERSION_INFO_INTERNAL)
- set(GMX_PROJECT_VERSION_STR ${GMX_PROJECT_VERSION_STR}
- CACHE STRING "Gromacs version string" FORCE)
- set(GMX_GIT_HEAD_HASH ${GMX_GIT_HEAD_HASH}${DIRTY_STR}
- CACHE STRING "Current git HEAD commit object" FORCE)
- set(GMX_GIT_REMOTE_HASH ${GMX_GIT_REMOTE_HASH}
- CACHE STRING "Commmit object of the nearest ancestor present in the Gromacs git repository" FORCE)
- mark_as_advanced(GMX_GIT_HEAD_HASH GMX_GIT_REMOTE_HASH)
-else()
- if("${VERSION_CMAKEIN}" STREQUAL "")
- message(FATAL_ERROR "Missing input parameter VERSION_CMAKEIN!")
- endif()
- if("${VERSION_OUT}" STREQUAL "")
- message(FATAL_ERROR "Missing input parameter VERSION_OUT!")
+ set(AHEAD 0)
+ set(GMX_VERSION_CENTRAL_BASE_HASH "")
+ foreach(ANCESTOR ${ANCESTOR_LIST})
+ string(REPLACE "\n" "" HASH_AND_REVNAMES "${ANCESTOR}")
+ string(REPLACE " " ";" HASH_AND_REVNAMES "${HASH_AND_REVNAMES}")
+ list(LENGTH HASH_AND_REVNAMES COUNT)
+ # stop and set the hash if we have a hit, otherwise loop and count
+ # how far ahead is the local repo
+ if(COUNT GREATER 1)
+ LIST(GET HASH_AND_REVNAMES 0 GMX_VERSION_CENTRAL_BASE_HASH)
+ break()
+ endif()
+ math(EXPR AHEAD ${AHEAD}+1)
+ endforeach(ANCESTOR)
+ # mark the build "local" if didn't find any commits that are from
+ # remotes/${GMX_REMOTE}/*
+ if("${GMX_VERSION_CENTRAL_BASE_HASH}" STREQUAL "")
+ set(GMX_VERSION_CENTRAL_BASE_HASH "unknown")
+ set(VERSION_STR_SUFFIX "${VERSION_STR_SUFFIX}-local")
+ # don't print the remote hash if there are no local commits
+ elseif("${GMX_VERSION_CENTRAL_BASE_HASH}" STREQUAL "${HEAD_HASH}")
+ set(GMX_VERSION_CENTRAL_BASE_HASH "")
+ else()
+ set(GMX_VERSION_CENTRAL_BASE_HASH "${GMX_VERSION_CENTRAL_BASE_HASH} (${AHEAD} newer local commits)")
endif()
- # Generate the output file.
- configure_file(${VERSION_CMAKEIN} ${VERSION_OUT})
endif()
+
+# Compile final version string.
+set(GMX_VERSION_STRING_FULL "${PROJECT_VERSION}-${VERSION_STR_SUFFIX}")
+
+# Generate the output file.
+configure_file(${VERSION_CMAKEIN} ${VERSION_OUT})
endif()
set(GMX_LIB_MPI 1)
- set(PKG_CFLAGS "${PKG_CFLAGS} -DGMX_LIB_MPI")
endif()
set(CUDA_HOST_COMPILER_OPTIONS "${CUDA_HOST_COMPILER_OPTIONS}-D__STRICT_ANSI__;")
endif()
- # on Linux we need to add -fPIC when building shared gmx libs
- # Note: will add -fPIC for any compiler that supports it as it shouldn't hurt
- if(BUILD_SHARED_LIBS)
- GMX_TEST_CXXFLAG(CXXFLAG_FPIC "-fPIC" _FPIC_NVCC_FLAG)
- if(_FPIC_NVCC_FLAG)
- set(CUDA_HOST_COMPILER_OPTIONS "${CUDA_HOST_COMPILER_OPTIONS}-Xcompiler;${_FPIC_NVCC_FLAG}")
- endif()
- endif()
-
# the legacy CUDA kernels have been dropped, warn with CUDA 4.0
if (CUDA_VERSION VERSION_EQUAL "4.0")
message(WARNING "The legacy GPU kernels optimized for older CUDA compilers, including the detected version 4.0, have been removed. To avoid performance loss, we strongly recommend upgrading to a newer CUDA toolkit.
#this combination segfaults (illegal passing of file handles)
message(FATAL_ERROR "Static system libraries requested, and shared Gromacs libraries requested.")
endif()
- add_definitions(-DUSE_VISIBILITY -DTMPI_USE_VISIBILITY)
- set(PKG_CFLAGS "$PKG_CFLAGS -DUSE_VISIBILITY -DTMPI_USE_VISIBILITY")
+ # Visibility not yet implemented
+ # add_definitions(-DUSE_VISIBILITY -DTMPI_USE_VISIBILITY)
+ # set(PKG_CFLAGS "$PKG_CFLAGS -DUSE_VISIBILITY -DTMPI_USE_VISIBILITY")
endif()
IF (GMX_PREFER_STATIC_LIBS)
message(STATUS "Using default library suffix: \"${GMX_LIBS_SUFFIX}\"")
endif()
else()
+ if ("${GMX_LIBS_SUFFIX}" MATCHES "^_mdrun")
+ message(FATAL_ERROR "Library suffix (GMX_LIBS_SUFFIX) cannot start with '_mdrun', as that is reserved for internal use")
+ endif()
gmx_check_if_changed(SUFFIXES_CHANGED
GMX_DEFAULT_SUFFIX GMX_BINARY_SUFFIX GMX_LIBS_SUFFIX)
if (SUFFIXES_CHANGED)
--- /dev/null
+#
+# This file is part of the GROMACS molecular simulation package.
+#
+# Copyright (c) 2014, 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.
+#
+# GROMACS is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public License
+# as published by the Free Software Foundation; either version 2.1
+# of the License, or (at your option) any later version.
+#
+# GROMACS is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with GROMACS; if not, see
+# http://www.gnu.org/licenses, or write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# If you want to redistribute modifications to GROMACS, 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 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.
+
+# Sets version information variables and provides CMake functions for
+# generating files based on them
+#
+# This script provides the following basic version variables that need to be
+# maintained manually:
+# GMX_VERSION_MAJOR Major version number.
+# GMX_VERSION_MINOR Minor version number.
+# GMX_VERSION_PATCH Patch version number.
+# Should always be defined: zero for, e.g., 5.0.
+# GMX_VERSION_SUFFIX String suffix to add to numeric version string.
+# "-dev" is automatically added when not building from a source package,
+# and does not need to be kept here.
+# LIBRARY_SOVERSION so version for the built libraries.
+# Should be increased for each binary incompatible release (in GROMACS,
+# the typical policy is to increase it for each major/minor version
+# change, but not for patch releases, even if the latter may not always
+# be fully binary compatible).
+# LIBRARY_VERSION Full library version.
+# REGRESSIONTEST_BRANCH For builds not from source packages, name of the
+# regressiontests branch at gerrit.gromacs.org whose HEAD can test this
+# code, *if* this code is recent enough (i.e., contains all changes from
+# the corresponding code branch that affects the regression test
+# results).
+# REGRESSIONTEST_MD5SUM
+# The MD5 checksum of the regressiontest tarball. Only used when building
+# from a source package.
+# They are collected into a single section below.
+# The following variables are set based on these:
+# GMX_VERSION String composed from GMX_VERSION_* numeric variables
+# above. Example: 4.6.1, 5.0
+# GMX_VERSION_STRING String with GMX_VERSION suffixed with the given
+# suffix and possibly "-dev" for builds not from a source package.
+# GMX_VERSION_NUMERIC Numeric version number (e.g., 40601 for 4.6.1).
+# GMX_API_VERSION Numeric API version.
+# This is currently set automatically to GMX_VERSION_NUMERIC, but may
+# become manually maintained in the future if there will be releases
+# where the API does not change, but programs/libraries do.
+# In such a case, this should be the first version where the current API
+# appeared.
+# REGRESSIONTEST_VERSION For source packages, version number of the
+# matching regressiontests tarball. Not used for builds not from source
+# packages.
+# The latter two are used to generate gromacs/version.h to allow software
+# written against the GROMACS API to provide some #ifdef'ed code to support
+# multiple GROMACS versions.
+#
+# The following variables are defined without manual intervention:
+# SOURCE_IS_SOURCE_DISTRIBUTION The source tree is from a source tarball.
+# SOURCE_IS_GIT_REPOSITORY The source tree is a git repository.
+# Note that both can be false if the tree has been extracted, e.g., as a
+# tarball directly from git.
+#
+# This script also declares machinery to generate and obtain version
+# information from a git repository. This is enabled by default if the source
+# tree is a git, but can be disabled with
+# GMX_GIT_VERSION_INFO Advanced CMake variable to disable git
+# version info generation.
+# The main interface to this machinery is the gmx_configure_version_file()
+# CMake function. The signature is
+# gmx_configure_version_file(<input> <output>
+# [REMOTE_HASH] [SOURCE_FILE]
+# [TARGET <target>]
+# [COMMENT <comment>])
+# <input> Specify the input and output files as for configure_file().
+# <output> The configuration is done with configure_file(... @ONLY) with
+# the following variables defined (as well as all the
+# GMX_VERSION* variables from above):
+# GMX_VERSION_STRING_FULL
+# GMX_VERSION_FULL_HASH
+# GMX_VERSION_CENTRAL_BASE_HASH
+# The output file is created during build time, so any dependent
+# targets should specify it as a dependency.
+# REMOTE_HASH Currently, this has no effect, but it signifies that the
+# <input> file is using the CENTRAL_BASE_HASH variable.
+# This variable is much more expensive to initialize than the
+# others, so this allows local changes in this file to only
+# compute that value when required if that becomes necessary.
+# SOURCE_FILE Signals that <output> will be used as a source file.
+# The function will set properties for the source file
+# appropriately to signify that it is generated.
+# TARGET By default, this function uses add_custom_command() to
+# generate the output file. If TARGET is specified, then
+# add_custom_target() is used to create a target with the given
+# name <target> that runs this custom command. Use this if
+# the same file will be used for multiple downstream targets,
+# or if the explicit target for the file is otherwise
+# necessary.
+# COMMENT Set a custom comment to be shown when building the rule
+# (see add_custom_command(... COMMENT <comment>)).
+# As an alternative to using this script, also the following variables are
+# provided (can be useful when generating more complex CMake scripts that do
+# build-time tasks):
+# VERSION_INFO_CMAKE_SCRIPT
+# Absolute path to a CMake script that can be included using include()
+# to declare the GMX_VERSION_* variables documented for
+# gmx_configure_version_file().
+# VERSION_INFO_DEPS
+# If a custom command depends on VERSION_INFO_CMAKE_SCRIPT, then it
+# should add ${VERSION_INFO_DEPS} to its DEPENDS list to get the
+# appropriate dependencies.
+# TODO: If someone wants to add a custom target that depends on
+# VERSION_INFO_CMAKE_SCRIPT, a separate variable may be needed for those
+# dependencies.
+#
+# The version string printed by 'gmx -version' (and also printed in the startup
+# header) can provide useful information for, e.g., diagnosing bug reports and
+# identifying what exact version the user was using. The following formats are
+# possible (with examples given for a particular version):
+# 4.6.1 Plain version number without any suffix signifies a build from
+# a released source tarball.
+# 4.6.1-dev '-dev' suffix signifies all other builds. If there is no other
+# information, either the user built the code outside any git
+# repository, or disabled the version info generation.
+# 4.6.1-dev-YYYYMMDD-1234abc
+# The YYYYMMDD part shows the commit date (not author date) of
+# the HEAD commit from which the code was built. The abbreviated
+# hash is the hash of that commit (the full hash is available in
+# 'gmx -version' output).
+# If the HEAD hash is not identified as coming from branches in
+# "authoritative" GROMACS repositories, 'gmx -version' will show
+# the nearest ancestor commit that is identified as such (but see
+# the '-local' and '-unknown' suffixes below).
+# 4.6.1-dev-YYYYMMDD-1234abc-dirty
+# As above, but there were local modifications in the source tree
+# when the code was built.
+# 4.6.1-dev-YYYYMMDD-1234abc-unknown
+# As above, but there were no remotes in the repository that
+# could be identified as "authoritative" GROMACS repositories.
+# This happens if the code is not cloned from git.gromacs.org
+# or gerrit.gromacs.org.
+# 4.6.1-dev-YYYYMMDD-1234abc-local
+# As above, but there were no commits in the recent history of
+# the branch that could be identified as coming from
+# "authoritative" GROMACS repositories. This should be
+# relatively rare.
+#
+# Other variables set here are not intended for use outside this file.
+# The scripts gmxGenerateVersionInfo.cmake and gmxConfigureVersionInfo.cmake
+# are used internally by this machinery, as well as VersionInfo.cmake.cmakein.
+
+#####################################################################
+# Basic nature of the source tree
+
+set(SOURCE_IS_GIT_REPOSITORY OFF)
+set(SOURCE_IS_SOURCE_DISTRIBUTION OFF)
+if (EXISTS "${PROJECT_SOURCE_DIR}/.git")
+ set(SOURCE_IS_GIT_REPOSITORY ON)
+endif()
+# This file is excluded from CPack source packages, but part of the repository,
+# so it should get included everywhere else.
+if (NOT EXISTS "${PROJECT_SOURCE_DIR}/admin/.isreposource")
+ set(SOURCE_IS_SOURCE_DISTRIBUTION ON)
+endif()
+
+#####################################################################
+# Manually maintained version info
+
+# The GROMACS convention is that these are the version number of the next
+# release that is going to be made from this branch.
+set(GMX_VERSION_MAJOR 5)
+set(GMX_VERSION_MINOR 1)
+set(GMX_VERSION_PATCH 0)
+# The suffix, on the other hand, is used mainly for betas and release
+# candidates, where it signifies the last such release from this branch;
+# it will be empty before the first such release, as well as after the
+# final release is out.
+set(GMX_VERSION_SUFFIX "")
+
+set(LIBRARY_SOVERSION 1)
+set(LIBRARY_VERSION ${LIBRARY_SOVERSION}.0.0)
+
+set(REGRESSIONTEST_BRANCH "refs/heads/master")
+set(REGRESSIONTEST_MD5SUM "a07524afebca5013540d4f2f72df2dce")
+
+#####################################################################
+# General version management based on manually set numbers
+
+if (GMX_VERSION_PATCH)
+ set(GMX_VERSION "${GMX_VERSION_MAJOR}.${GMX_VERSION_MINOR}.${GMX_VERSION_PATCH}")
+else()
+ set(GMX_VERSION "${GMX_VERSION_MAJOR}.${GMX_VERSION_MINOR}")
+endif()
+set(GMX_VERSION_STRING "${GMX_VERSION}${GMX_VERSION_SUFFIX}")
+if (NOT SOURCE_IS_SOURCE_DISTRIBUTION)
+ set(GMX_VERSION_STRING "${GMX_VERSION_STRING}-dev")
+endif()
+
+set(REGRESSIONTEST_VERSION "${GMX_VERSION_STRING}")
+
+math(EXPR GMX_VERSION_NUMERIC
+ "${GMX_VERSION_MAJOR}*10000 + ${GMX_VERSION_MINOR}*100 + ${GMX_VERSION_PATCH}")
+set(GMX_API_VERSION ${NUM_VERSION})
+
+#####################################################################
+# git version info management
+
+# There can be clusters where git and CMake can run on nodes where the other is
+# not available, accessing the same source tree.
+# Should be unlikely, but doesn't hurt to check.
+set(_git_info_default OFF)
+if (SOURCE_IS_GIT_REPOSITORY)
+ find_package(Git)
+ if (GIT_FOUND)
+ set(_git_info_default ON)
+ endif()
+endif()
+option(GMX_GIT_VERSION_INFO "Generate git version information" ${_git_info_default})
+mark_as_advanced(GMX_GIT_VERSION_INFO)
+# Detect preconditions for version info generation if it is requested.
+if (GMX_GIT_VERSION_INFO)
+ if (NOT SOURCE_IS_GIT_REPOSITORY)
+ message(FATAL_ERROR
+ "Cannot generate git version information from source tree not under git. "
+ "Set GMX_GIT_VERSION_INFO=OFF to proceed.")
+ endif()
+ # We need at least git v1.5.3 be able to parse git's date output.
+ if (NOT GIT_FOUND OR GIT_VERSION_STRING VERSION_LESS "1.5.3")
+ message(FATAL_ERROR
+ "No compatible git version found (>= 1.5.3 required). "
+ "Won't be able to generate development version information. "
+ "Set GMX_GIT_VERSION_INFO=OFF to proceed.")
+ endif()
+endif()
+
+# The first two are also for use outside this file, encapsulating the details
+# of how to use the generated VersionInfo.cmake.
+set(VERSION_INFO_CMAKE_FILE ${PROJECT_BINARY_DIR}/VersionInfo.cmake)
+set(VERSION_INFO_DEPS ${VERSION_INFO_CMAKE_FILE})
+# Capture the location of the necessary files in internal variables for use in
+# the function below.
+set(VERSION_INFO_CMAKEIN_FILE ${CMAKE_CURRENT_LIST_DIR}/VersionInfo.cmake.cmakein)
+set(VERSION_INFO_CONFIGURE_SCRIPT ${CMAKE_CURRENT_LIST_DIR}/gmxConfigureVersionInfo.cmake)
+
+# Rules to create the VersionInfo.cmake file.
+# For git info, the sequence is:
+# 1. (configure time) VersionInfo.cmake.cmakein -> VersionInfo-partial.cmake.cmakein
+# - Set all variables that are known at configure time.
+# 2. (build time) VersionInfo-partial.cmake.cmakein -> VersionInfo.cmake
+# - Set variables that may change as result of repository state changes
+# (i.e., everything that requires running git).
+# - Runs every time as a git-version-info target, but the output file
+# timestamp only changes if its contents actually change.
+# - Depending on the native build system, this may run once per build
+# or once per each time it is required for step 3.
+# 3. (build time) VersionInfo.cmake -> other files
+# - Set variables in files specified with gmx_configure_version_file()
+# using the values generated in step 2.
+# - Each file runs as a custom command that depends on the previous
+# steps, and runs only if the VersionInfo.cmake file is newer than the
+# output file.
+# Without git info, the sequence is:
+# 1. (configure time) VersionInfo.cmake.cmakein -> VersionInfo.cmake
+# - Everything is known at configure time, so the output is generated
+# immediately with all variables set (git info will be empty).
+# 2. (build time) VersionInfo.cmake -> other files
+# - As with git info, processes files from gmx_configure_version_file().
+# - These are again custom commands that depend on the output from
+# step 1, so they get regenerated only when the static version info
+# changes.
+if (GMX_GIT_VERSION_INFO)
+ # Configure information known at this time into a partially filled
+ # version info file.
+ set(VERSION_INFO_CMAKEIN_FILE_PARTIAL
+ ${PROJECT_BINARY_DIR}/VersionInfo-partial.cmake.cmakein)
+ # Leave these to be substituted by the custom target below.
+ set(GMX_VERSION_STRING_FULL "\@GMX_VERSION_STRING_FULL\@")
+ set(GMX_VERSION_FULL_HASH "\@GMX_VERSION_FULL_HASH\@")
+ set(GMX_VERSION_CENTRAL_BASE_HASH "\@GMX_VERSION_CENTRAL_BASE_HASH\@")
+ configure_file(${VERSION_INFO_CMAKEIN_FILE}
+ ${VERSION_INFO_CMAKEIN_FILE_PARTIAL}
+ @ONLY)
+ # If generating the version info, create a target that runs on every build
+ # and does the actual git calls, storing the results into a CMake script.
+ # This needs to be run at build time to update the version information
+ # properly when the git hash changes, but the build system does not.
+ # All targets added by gmx_configure_version_file() use the information
+ # from this script to get their variables from, removing the need to run
+ # git multiple times and simplifying reuse for other purposes.
+ #
+ # Ninja requires all generated files mentioned in dependencies of custom
+ # commands (in gmx_configure_version_info()) to be actually mentioned in
+ # the build system, and luckily add_custom_command() makes that possible.
+ # But it seems impossible to create a robust custom command that would be
+ # always run, so other generators that do not have this constraint simply
+ # use an add_custom_target().
+ if (CMAKE_GENERATOR STREQUAL "Ninja")
+ # The second, phony file is never created, so the rule is always
+ # triggered again. TODO: Figure out why this works, even though ninja
+ # very eagerly complains about missing files.
+ # This unfortunately does not work with the make generator, as
+ # the non-existent second file causes some part of the generated system
+ # erase the first file at the beginning of every build, causing a full
+ # rebuild of the dependencies.
+ add_custom_command(OUTPUT ${VERSION_INFO_CMAKE_FILE} git-version-phony
+ COMMAND ${CMAKE_COMMAND}
+ -D GIT_EXECUTABLE=${GIT_EXECUTABLE}
+ -D PROJECT_VERSION=${GMX_VERSION_STRING}
+ -D PROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR}
+ -D VERSION_CMAKEIN=${VERSION_INFO_CMAKEIN_FILE_PARTIAL}
+ -D VERSION_OUT=${VERSION_INFO_CMAKE_FILE}
+ -P ${CMAKE_CURRENT_LIST_DIR}/gmxGenerateVersionInfo.cmake
+ WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
+ COMMENT "Generating git version information"
+ VERBATIM)
+ # The generated Ninja build system would probably work fine even
+ # without this target, but CMake requires all custom commands to belong
+ # to a target in the same CMakeLists.txt to generate anything for them.
+ add_custom_target(git-version-info DEPENDS ${VERSION_INFO_CMAKE_FILE})
+ else()
+ # For other generators, a target-level dependency on git-version-info
+ # ensures that VERSION_INFO_CMAKE_FILE is created before the dependent
+ # target's dependencies are even evaluated.
+ add_custom_target(git-version-info
+ COMMAND ${CMAKE_COMMAND}
+ -D GIT_EXECUTABLE=${GIT_EXECUTABLE}
+ -D PROJECT_VERSION=${GMX_VERSION_STRING}
+ -D PROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR}
+ -D VERSION_CMAKEIN=${VERSION_INFO_CMAKEIN_FILE_PARTIAL}
+ -D VERSION_OUT=${VERSION_INFO_CMAKE_FILE}
+ -P ${CMAKE_CURRENT_LIST_DIR}/gmxGenerateVersionInfo.cmake
+ WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
+ COMMENT "Generating git version information"
+ VERBATIM)
+ endif()
+ list(APPEND VERSION_INFO_DEPS git-version-info)
+else()
+ # If the version info is static, just generate the CMake script with the
+ # version variables during the CMake run.
+ set(GMX_VERSION_STRING_FULL ${GMX_VERSION_STRING})
+ set(GMX_VERSION_FULL_HASH "")
+ set(GMX_VERSION_CENTRAL_BASE_HASH "")
+ configure_file(${VERSION_INFO_CMAKEIN_FILE} ${VERSION_INFO_CMAKE_FILE})
+endif()
+unset(GMX_VERSION_STRING_FULL)
+unset(GMX_VERSION_FULL_HASH)
+unset(GMX_VERSION_CENTRAL_BASE_HASH)
+
+# The main user-visible interface to the machinery.
+# See documentation at the top of the script.
+function (gmx_configure_version_file INFILE OUTFILE)
+ include(CMakeParseArguments)
+ set(_options REMOTE_HASH SOURCE_FILE)
+ set(_one_value_args COMMENT TARGET)
+ cmake_parse_arguments(ARG "${_options}" "${_one_value_args}" "" ${ARGN})
+ if (ARG_UNPARSED_ARGUMENTS)
+ message(FATAL_ERROR "Unknown arguments: ${ARG_UNPARSED_ARGUMENTS}")
+ endif()
+ # Some callers may pass partial paths that do not really make sense,
+ # so create a default comment that only contains the actual file name.
+ get_filename_component(_basename ${OUTFILE} NAME)
+ set(_comment "Generating ${_basename}")
+ if (ARG_COMMENT)
+ set(_comment ${ARG_COMMENT})
+ endif()
+ # Mimic configure_file()
+ if (NOT IS_ABSOLUTE ${INFILE})
+ set(INFILE ${CMAKE_CURRENT_SOURCE_DIR}/${INFILE})
+ endif()
+ # The touch command is necessary to ensure that after the target is run,
+ # the timestamp is newer than in the input files.
+ add_custom_command(OUTPUT ${OUTFILE}
+ COMMAND ${CMAKE_COMMAND}
+ -D VERSION_VARIABLES=${VERSION_INFO_CMAKE_FILE}
+ -D VERSION_CMAKEIN=${INFILE}
+ -D VERSION_OUT=${OUTFILE}
+ -P ${VERSION_INFO_CONFIGURE_SCRIPT}
+ COMMAND ${CMAKE_COMMAND} -E touch ${OUTFILE}
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ DEPENDS ${INFILE} ${VERSION_INFO_DEPS} ${VERSION_INFO_CONFIGURE_SCRIPT}
+ COMMENT "${_comment}"
+ VERBATIM)
+ if (ARG_TARGET)
+ add_custom_target(${ARG_TARGET} DEPENDS ${OUTFILE} VERBATIM)
+ endif()
+ if (ARG_SOURCE_FILE)
+ set_source_files_properties(${OUTFILE} PROPERTIES GENERATED true)
+ endif()
+endfunction()
fun:gmx_fio_fopen
}
{
- new_symbuf
+ put_symtab
Memcheck:Leak
...
- fun:new_symbuf
+ fun:put_symtab
}
{
bTimeSet/tMPI_Thread_mutex_init_once
FILE(COPY index.html DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
configure_file(RunDoxygen.cmake.cmakein RunDoxygen.cmake @ONLY)
+ gmx_configure_version_file(Doxyfile-version.cmakein Doxyfile-version
+ TARGET doxygen-version)
add_custom_target(doc-full
${CMAKE_COMMAND} -DDOCTYPE=full -P RunDoxygen.cmake
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Extracting Doxygen documentation to XML" VERBATIM)
add_custom_target(doc-all)
add_dependencies(doc-all doc-full doc-lib doc-user)
-
- if (GMX_GIT_VERSION_INFO)
- add_custom_target(doxygen-version
- COMMAND ${CMAKE_COMMAND}
- -D GIT_EXECUTABLE="${GIT_EXECUTABLE}"
- -D PROJECT_VERSION="${PROJECT_VERSION}"
- -D PROJECT_SOURCE_DIR="${PROJECT_SOURCE_DIR}"
- -D VERSION_CMAKEIN="${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile-version.cmakein"
- -D VERSION_OUT="${CMAKE_CURRENT_BINARY_DIR}/Doxyfile-version"
- -D VERSION_NO_REMOTE_HASH=
- -P ${CMAKE_SOURCE_DIR}/cmake/gmxGenerateVersionInfo.cmake
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
- DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile-version.cmakein
- COMMENT "Generating version information for Doxygen")
- add_dependencies(doc-full doxygen-version)
- add_dependencies(doc-lib doxygen-version)
- add_dependencies(doc-user doxygen-version)
- add_dependencies(doc-xml doxygen-version)
- else()
- set(GMX_PROJECT_VERSION_STR ${PROJECT_VERSION})
- configure_file(Doxyfile-version.cmakein Doxyfile-version)
- endif()
+ add_dependencies(doc-full doxygen-version)
+ add_dependencies(doc-lib doxygen-version)
+ add_dependencies(doc-user doxygen-version)
+ add_dependencies(doc-xml doxygen-version)
if (USE_PYTHON_SCRIPTS)
# TODO: Consider whether this is the best name and location for this
-S ${CMAKE_SOURCE_DIR} -B ${CMAKE_BINARY_DIR}
--installed ${CMAKE_CURRENT_BINARY_DIR}/installed-headers.txt
-l ${CMAKE_CURRENT_BINARY_DIR}/doxygen-check.log
- --ignore ${CMAKE_CURRENT_SOURCE_DIR}/suppressions.txt)
+ --ignore ${CMAKE_CURRENT_SOURCE_DIR}/suppressions.txt
+ --ignore-cycles ${CMAKE_CURRENT_SOURCE_DIR}/cycle-suppressions.txt)
add_custom_target(doc-check COMMAND ${doc_check_command}
COMMENT "Checking Doxygen documentation" VERBATIM)
add_dependencies(doc-check doc-xml find-installed-headers)
${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/graphbuilder.py
-S ${CMAKE_SOURCE_DIR} -B ${CMAKE_BINARY_DIR}
--installed ${CMAKE_CURRENT_BINARY_DIR}/installed-headers.txt
+ --ignore-cycles ${CMAKE_CURRENT_SOURCE_DIR}/cycle-suppressions.txt
-o ${CMAKE_CURRENT_BINARY_DIR}/depgraphs)
set(dep_graphs_command_dot
${CMAKE_COMMAND} -DGRAPHDIR=${graphdir}
@CMAKE_SOURCE_DIR@/src/gromacs/selection/parser.h \
@CMAKE_SOURCE_DIR@/src/gromacs/selection/scanner.cpp @NB_KERNEL_DIRS_TO_IGNORE_IN_DOXYGEN@
EXCLUDE_SYMBOLS = YY* yy* _gmx_sel_yy*
+EXCLUDE_SYMBOLS += __STDC*
EXCLUDE_SYMBOLS += TEST TEST_F TEST_P TYPED_TEST_CASE TYPED_TEST INSTANTIATE_TEST_CASE_P
EXCLUDE_SYMBOLS += MOCK_METHOD* MOCK_CONST_METHOD*
FULL_PATH_NAMES = YES
-PROJECT_NUMBER = @GMX_PROJECT_VERSION_STR@
+PROJECT_NUMBER = @GMX_VERSION_STRING_FULL@
--- /dev/null
+mdlib -> essentialdynamics
+mdlib -> imd
+mdlib -> pulling
+mdlib -> swap
+legacyheaders -> swap
+legacyheaders -> fileio
+timing -> legacyheaders
+math -> legacyheaders
+topology -> fileio
+topology -> legacyheaders
+pbcutil -> fileio
+pbcutil -> legacyheaders
\ingroup module_commandline
*/
-/*!
+/*! \libinternal
\dir src/gromacs/onlinehelp
\brief \ref module_onlinehelp
# TODO: Add rule to exclude examples from this check
if fileobj.is_installed():
reporter.file_error(fileobj, "source file is installed")
- if fileobj.get_documentation_type() != DocType.internal:
+ if fileobj.get_doc_type() != DocType.internal:
reporter.file_error(fileobj,
"source file documentation appears outside full documentation")
elif fileobj.get_api_type() != DocType.internal:
elif fileobj.is_test_file() and fileobj.is_installed():
reporter.file_error(fileobj, "test file is installed")
elif fileobj.is_installed():
- if fileobj.get_documentation_type() != DocType.public:
+ if fileobj.get_doc_type() != DocType.public:
reporter.file_error(fileobj,
"public header has non-public documentation")
- elif fileobj.get_documentation_type() == DocType.public:
+ elif fileobj.get_doc_type() == DocType.public:
reporter.file_error(fileobj,
"non-installed header has public documentation")
elif fileobj.get_api_type() == DocType.public:
reporter.file_error(fileobj,
"non-installed header specified as part of public API")
- elif fileobj.get_documentation_type() < fileobj.get_api_type():
+ elif fileobj.get_doc_type() < fileobj.get_api_type():
reporter.file_error(fileobj,
"API type ({0}) conflicts with documentation visibility ({1})"
- .format(fileobj.get_api_type(), fileobj.get_documentation_type()))
+ .format(fileobj.get_api_type(), fileobj.get_doc_type()))
if not fileobj.has_brief_description():
reporter.file_error(fileobj,
filemodule = fileobj.get_module()
othermodule = otherfile.get_module()
if fileobj.is_documented() and otherfile.is_documented():
- filetype = fileobj.get_documentation_type()
- othertype = otherfile.get_documentation_type()
+ filetype = fileobj.get_doc_type()
+ othertype = otherfile.get_doc_type()
if filetype > othertype:
reporter.code_issue(includedfile,
"{0} file includes {1} file {2}"
.format(filetype, othertype, includedfile))
- check_api = (othermodule and othermodule.is_documented() and
- filemodule != othermodule)
+ check_api = (otherfile.api_type_is_reliable() and filemodule != othermodule)
if check_api and otherfile.get_api_type() < DocType.library:
reporter.code_issue(includedfile,
"included file {0} is not documented as exposed outside its module"
"""Check documentation for a class/struct/union."""
check_entity(classobj, reporter)
if classobj.is_documented():
- classtype = classobj.get_documentation_type()
- filetype = classobj.get_file_documentation_type()
+ classtype = classobj.get_doc_type()
+ filetype = classobj.get_file_doc_type()
if classtype == DocType.public and not classobj.is_in_installed_file():
reporter.doc_error(classobj,
"has public documentation, but is not in installed header")
"is in {0} file(s), but appears in {1} documentation"
.format(filetype, classtype))
-def check_member(member, reporter):
+def check_member(member, reporter, check_ignored):
"""Check documentation for a generic member."""
check_entity(member, reporter)
if member.is_documented():
- if not member.is_visible():
- # TODO: This is triggered by members in anonymous namespaces.
+ if check_ignored and not member.is_visible():
reporter.doc_note(member,
"is documented, but is ignored by Doxygen, because its scope is not documented")
if member.has_inbody_description():
reporter.doc_note(member, "has in-body comments, which are ignored")
+def check_cycles(graph, reporter):
+ """Check cyclic dependencies in a dependency graph.
+
+ The graph parameter provides the graph to check. It should be an object
+ that has three methods:
+ iternodes():
+ Return the list of nodes in the graph.
+ iteredges(node):
+ Return the list of edges from a given node.
+ The list should contain (node, edge) pairs, where node is an object
+ returned by iternodes() and edge is any object.
+ report_cycle(cycle, reporter):
+ Process a found cycle. cycle contains a list of (node, edge) pairs
+ that describe the cycle. edge is the edge object that leads _to_
+ the node in the cycle.
+
+ This is implemented using an extended DFS-based strongly connected
+ component (SCC) search, written using a stack instead of recursion.
+ The base algorithm is Tarjan's SCC search:
+ http://en.wikipedia.org/wiki/Tarjan's_strongly_connected_components_algorithm
+
+ Each back edge that is encountered during the search is reported as a
+ cycle. Additionally, if a cross edge is encountered that is within the
+ current SCC, the target node and all its children in the current SCC will
+ be visited again to find all cycles. All steps except cycle detection are
+ omitted for such re-traversal.
+
+ To avoid duplicates from cycles that do not include all nodes in an SCC,
+ a cycle is only reported if the target of the back edge is still active
+ in the search, i.e., all edges from it have not yet been traversed.
+ """
+ # The DFS stack; next node is always popped from the end.
+ # Stores (node, edge) pairs.
+ # edge is None for start nodes and for post-order processing.
+ dfsstack = []
+ for node in graph.iternodes():
+ dfsstack.append((node, None))
+ # Stack of visited nodes that have not yet been assigned to a strongly
+ # connected component.
+ visitstack = []
+ # List of nodes in the DFS recursion stack.
+ currlist = []
+ # Set of nodes in currlist for more efficient searching.
+ currset = set()
+ # Counter for initializing preorder.
+ visit_count = 0
+ # DFS pre-order for nodes: initialized when a node is first encountered
+ # in the search.
+ preorder = dict()
+ # Lowest pre-order index reachable from this node.
+ # Initialized to pre-order, and updated during post-order processing.
+ linkorder = dict()
+ # Set to True for a node when first encountered, and set to False when
+ # a strongly connected component has been processed.
+ in_progress = dict()
+ # The DFS search
+ while dfsstack:
+ currnode, curredge = dfsstack.pop()
+ # curredge is None if this is a start node or post-order traversal.
+ # currlist is empty if this is a start node.
+ if curredge is None and currlist:
+ # All children visited: post-order processing.
+ done = currlist.pop()[0]
+ assert done == currnode
+ currset.remove(currnode)
+ # If this is the first time this node is encountered, fill
+ # linkorder and check for strongly connected components.
+ if linkorder[currnode] == preorder[currnode]:
+ children = [x for x, dummy in graph.iteredges(currnode) if in_progress[x]]
+ if children:
+ linkorder[currnode] = min([linkorder[x] for x in children])
+ if preorder[currnode] <= linkorder[currnode]:
+ # This is a root of a strongly connected component.
+ while visitstack:
+ node = visitstack.pop()
+ in_progress[node] = False
+ if node == currnode:
+ break
+ else:
+ assert False
+ continue
+ if currnode not in preorder:
+ # First encounter of this node: pre-order processing.
+ preorder[currnode] = visit_count
+ linkorder[currnode] = visit_count
+ visitstack.append(currnode)
+ visit_count += 1
+ in_progress[currnode] = True
+ elif not in_progress[currnode]:
+ # Do not enter processed components again.
+ continue
+ currlist.append((currnode, curredge))
+ currset.add(currnode)
+ # add entry for post-order traversal
+ dfsstack.append((currnode, None))
+ for nextnode, edge in graph.iteredges(currnode):
+ if nextnode not in preorder:
+ # Not seen previously: push
+ dfsstack.append((nextnode, edge))
+ else:
+ # If an already visited node is in the same component, it is
+ # either part of a cycle, or we need to traverse it again to
+ # find all cycles.
+ if in_progress[nextnode]:
+ if nextnode not in currset:
+ dfsstack.append((nextnode, edge))
+ # Only report cycles to nodes that haven't been processed
+ # yet to avoid duplicates.
+ elif linkorder[nextnode] == preorder[nextnode]:
+ for index in xrange(len(currlist)):
+ if currlist[index][0] == nextnode:
+ cycle = [(nextnode, edge)]
+ cycle.extend(currlist[index+1:])
+ graph.report_cycle(cycle, reporter)
+ break
+ else:
+ assert False
+
+class ModuleDependencyGraph(object):
+
+ """Module dependency graph representation for check_cycles().
+
+ In the reported graph, the nodes are gmxtree.Module objects and the edges
+ are gmxtree.ModuleDependency objects.
+ """
+
+ def __init__(self, tree):
+ self._tree = tree
+
+ def iternodes(self):
+ for module in self._tree.get_modules():
+ if module.get_name() != 'module_testutils':
+ yield module
+
+ def iteredges(self, module):
+ for dependency in module.get_dependencies():
+ if dependency.get_other_module().get_name() != 'module_testutils':
+ yield (dependency.get_other_module(), dependency)
+
+ def report_cycle(self, cycle, reporter):
+ if any([x[1].is_cycle_suppressed() for x in cycle]):
+ # TODO: Report unused suppressions.
+ return
+ modulelist = ' -> '.join([x[0].get_name()[7:] for x in cycle])
+ summary = 'module-level cyclic dependency: ' + modulelist
+ reporter.cyclic_issue(summary)
+
def main():
"""Run the checking script."""
parser = OptionParser()
help='Write issues into a given log file in addition to stderr')
parser.add_option('--ignore',
help='Set file with patterns for messages to ignore')
+ parser.add_option('--ignore-cycles',
+ help='Set file with module dependencies to ignore in cycles')
parser.add_option('--check-ignored', action='store_true',
- help='Check documentation ignored by Doxygen')
+ help='Issue notes for comments ignored by Doxygen')
parser.add_option('-q', '--quiet', action='store_true',
help='Do not write status messages')
options, args = parser.parse_args()
if not options.quiet:
sys.stderr.write('Reading source files...\n')
tree.scan_files()
+ if options.ignore_cycles:
+ tree.load_cycle_suppression_list(options.ignore_cycles)
if not options.quiet:
sys.stderr.write('Reading Doxygen XML files...\n')
tree.load_xml()
check_class(classobj, reporter)
for memberobj in tree.get_members():
- if memberobj.is_visible() or options.check_ignored:
- check_member(memberobj, reporter)
+ check_member(memberobj, reporter, options.check_ignored)
+
+ check_cycles(ModuleDependencyGraph(tree), reporter)
reporter.write_pending()
reporter.report_unused_filters()
run automatically.
The checker currently checks for a few different types of issues:
-* For all Doxygen documentation (currently does not apply for members within
- anonymous namespaces or members that do not appear in the documentation):
+* For all Doxygen documentation (currently does not apply for members that do
+ not appear in the documentation):
* If a member has documentation, it should have a brief description.
* A note is issued for in-body documentation for functions, since this is
ignored by our current settings.
(\c \\defgroup module_foo exists for the subdirectory):
* Such files should not be included from outside their module if they are
undocumented or are not specified as part of library or public API.
+* For all modules:
+ * There should not be cyclic include dependencies between modules.
The checker is based on extracting the Doxygen documentation in XML format.
This information is then read using a Python script, and combined with
must be added. To cover many similar issues, parts of the line can then be
replaced with wildcards.
+A separate suppression mechanism is in place for cyclic dependencies: to
+suppress a cycle between moduleA and moduleB, add a line with format
+
+ moduleA -> moduleB
+
+into `doxygen/cycle-suppressions.txt`. This suppresses all cycles that contain
+the mentioned edge. Since a cycle contains multiple edges, the suppression
+should be made for the edge that is determined to be an incorrect dependency.
+This also affects the layout of the include dependency graphs (see below): the
+suppressed edge is not considered when determining the dependency order, and is
+shown as invalid in the graph.
+
For some false positives from the script, the suppression mechanism is the
easiest way to silence the script, but otherwise the goal would be to minimize
the number of suppressions.
def __init__(self, name, refid):
Entity.__init__(self, name, refid)
self._parents = set()
+ self._class = None
+ self._namespace = None
+ self._files = set()
+ self._group = None
self._location = None
self._alternates = set()
self._loaded = False
def add_parent_compound(self, compound):
"""Add a compound that contains this member."""
self._parents.add(compound)
+ if isinstance(compound, Class):
+ assert self._class is None
+ self._class = compound
+ elif isinstance(compound, Namespace):
+ assert self._namespace is None
+ self._namespace = compound
+ elif isinstance(compound, File):
+ self._files.add(compound)
+ elif isinstance(compound, Group):
+ assert self._group is None
+ self._group = compound
+ else:
+ assert False
- def _get_raw_location(self):
- """Returns the BodyLocation object associated with this member.
+ def merge_definition(self, definition):
+ """Merge another member into this.
- This is necessary so that EnumValue can override it report a non-empty
- location: Doxygen doesn't provide any location for <enumvalue>.
+ See DocumentationSet.merge_duplicates().
"""
- return self._location
-
- def get_parent_compounds(self):
- return self._parents
-
- def get_inherited_visibility(self):
- return max([parent.get_visibility() for parent in self._parents])
-
- def is_visible(self):
- return self.get_inherited_visibility() != DocType.none
-
- def has_same_body_location(self):
- return self._get_raw_location().has_same_body_location()
-
- def get_reporter_location(self):
- return self._get_raw_location().get_reporter_location()
-
- def get_location(self):
- return self._get_raw_location().get_location()
-
- def get_body_location(self):
- return self._get_raw_location().get_body_location()
-
- def merge_definition(self, definition):
+ assert self._class is None
+ assert definition._class is None
+ assert self._group == definition._group
+ assert self._namespace == definition._namespace
self._parents.update(definition._parents)
+ self._files.update(definition._files)
self._alternates.add(definition)
def load_details_from_element(self, rootelem, xmlpath):
"""
return False
+ def _get_raw_location(self):
+ """Returns the BodyLocation object associated with this member.
+
+ This is necessary so that EnumValue can override it report a non-empty
+ location: Doxygen doesn't provide any location for <enumvalue>.
+ """
+ return self._location
+
+ def get_reporter_location(self):
+ return self._get_raw_location().get_reporter_location()
+
+ def get_location(self):
+ """Return main location for the member.
+
+ This typically corresponds to the declaration.
+ """
+ return self._get_raw_location().get_location()
+
+ def get_body_location(self):
+ """Return location of the body for the member.
+
+ Some types of members do not have a body location, in which case this
+ returns None.
+ """
+ return self._get_raw_location().get_body_location()
+
+ def has_same_body_location(self):
+ """Check whether the main location is the same as body location."""
+ return self._get_raw_location().has_same_body_location()
+
+ def get_namespace(self):
+ return self._namespace
+
+ def get_parent_compounds(self):
+ return self._parents
+
+ def get_inherited_visibility(self):
+ return max([parent.get_visibility() for parent in self._parents])
+
def show(self):
self.show_base()
+ if self._alternates:
+ idlist = [x.get_id() for x in self._alternates]
+ print 'Alt. IDs: {0}'.format(', '.join(idlist))
print 'Parent vis: {0}'.format(self.get_inherited_visibility())
print 'Location: {0}'.format(self.get_location().get_full_string())
print 'Body loc: {0}'.format(self.get_body_location().get_full_string())
contains references to contained compounds, and details of all members
within the compound.
"""
+
def __init__(self, name, refid):
Entity.__init__(self, name, refid)
self._members = dict()
def get_reporter_location(self):
return self._doclocation.get_reporter_location()
+ def is_anonymous(self):
+ return 'anonymous_namespace{' in self.get_name()
+
def show(self):
self.show_base()
print 'Doc. loc.: {0}'.format(self._doclocation.get_full_string())
def merge_duplicates(self):
"""Merge duplicate member definitions based on body location.
- At least for functions that are declared in a header, but have their
- body in a source file, Doxygen seems to create two different IDs, but
- the contents of the members are the same, except for the location
+ At least for some functions that are declared in a header, but have
+ their body in a source file, Doxygen seems to create two different IDs,
+ but the contents of the members are the same, except for the location
attribute. This method merges members that have identical name and
body location into a single member that keeps the information from both
instances (they should only differ in the location attribute and in
def get_groups(self, name):
return self.get_compounds(Group, lambda x: x.get_name() in name)
- def get_namespaces(self, name):
- return self.get_compounds(Namespace, lambda x: x.get_name() in name)
+ def get_namespaces(self, name=None):
+ if name:
+ return self.get_compounds(Namespace, lambda x: x.get_name() in name)
+ else:
+ return self.get_compounds(Namespace)
def get_classes(self, name=None):
if name:
"""Information about an #include directive in a file."""
- def __init__(self, abspath, lineno, included_file, included_path, is_relative, is_system):
- self._abspath = abspath
+ def __init__(self, including_file, lineno, included_file, included_path, is_relative, is_system):
+ self._including_file = including_file
self._line_number = lineno
self._included_file = included_file
self._included_path = included_path
def is_relative(self):
return self._is_relative
+ def get_including_file(self):
+ return self._including_file
+
def get_file(self):
return self._included_file
def get_reporter_location(self):
- return reporter.Location(self._abspath, self._line_number)
+ return reporter.Location(self._including_file.get_abspath(), self._line_number)
class File(object):
fileobj = sourcetree.get_file(fullpath)
else:
fileobj = sourcetree.find_include_file(includedpath)
- self._includes.append(IncludedFile(self.get_abspath(), lineno, fileobj, includedpath,
+ self._includes.append(IncludedFile(self, lineno, fileobj, includedpath,
is_relative, is_system))
def scan_contents(self, sourcetree):
def get_name(self):
return os.path.basename(self._abspath)
- def get_documentation_type(self):
+ def get_doc_type(self):
if not self._rawdoc:
return DocType.none
return self._rawdoc.get_visibility()
def get_api_type(self):
return self._apitype
+ def api_type_is_reliable(self):
+ if self._apitype > DocType.internal:
+ return True
+ module = self.get_module()
+ return module and module.is_documented()
+
+ def is_public(self):
+ if self.api_type_is_reliable():
+ return self.get_api_type() == DocType.public
+ return self.get_api_type() == DocType.public or self.is_installed()
+
+ def is_module_internal(self):
+ if self.is_source_file():
+ return True
+ return not self.is_installed() and self.get_api_type() <= DocType.internal
+
def get_expected_module(self):
return self._dir.get_module()
for fileobj in self._files:
yield fileobj
+class ModuleDependency(object):
+
+ """Dependency between modules."""
+
+ def __init__(self, othermodule):
+ """Initialize empty dependency object with given module as dependency."""
+ self._othermodule = othermodule
+ self._includedfiles = []
+ self._cyclesuppression = None
+
+ def add_included_file(self, includedfile):
+ """Add IncludedFile that is part of this dependency."""
+ assert includedfile.get_file().get_module() == self._othermodule
+ self._includedfiles.append(includedfile)
+
+ def set_cycle_suppression(self):
+ """Set suppression on cycles containing this dependency."""
+ self._cyclesuppression = True
+
+ def is_cycle_suppressed(self):
+ """Return whether cycles containing this dependency are suppressed."""
+ return self._cyclesuppression is not None
+
+ def get_other_module(self):
+ """Get module that this dependency is to."""
+ return self._othermodule
+
+ def get_included_files(self):
+ """Get IncludedFile objects for the individual include dependencies."""
+ return self._includedfiles
+
class Module(object):
"""Code module in the GROMACS source tree.
self._rawdoc = None
self._rootdir = rootdir
self._group = None
+ self._dependencies = dict()
def set_doc_xml(self, rawdoc, sourcetree):
"""Assiociate Doxygen documentation entity with the module."""
if groupname.startswith('group_'):
self._group = groupname[6:]
+ def add_dependency(self, othermodule, includedfile):
+ """Add #include dependency from a file in this module."""
+ assert includedfile.get_file().get_module() == othermodule
+ if othermodule not in self._dependencies:
+ self._dependencies[othermodule] = ModuleDependency(othermodule)
+ self._dependencies[othermodule].add_included_file(includedfile)
+
def is_documented(self):
return self._rawdoc is not None
def get_group(self):
return self._group
+ def get_dependencies(self):
+ return self._dependencies.itervalues()
+
+class Namespace(object):
+
+ """Namespace in the GROMACS source code."""
+
+ def __init__(self, rawdoc):
+ self._rawdoc = rawdoc
+
+ def is_anonymous(self):
+ return self._rawdoc.is_anonymous()
class Class(object):
def has_brief_description(self):
return self._rawdoc.has_brief_description()
- def get_documentation_type(self):
+ def get_doc_type(self):
+ """Return documentation type (visibility) for the class.
+
+ In addition to the actual code, this encodes GROMACS-specific logic
+ of setting EXTRACT_LOCAL_CLASSES=YES only for the full documentation.
+ Local classes never appear outside the full documentation, no matter
+ what is their visibility.
+ """
if not self.is_documented():
return DocType.none
if self._rawdoc.is_local():
return DocType.internal
return self._rawdoc.get_visibility()
- def get_file_documentation_type(self):
- return max([fileobj.get_documentation_type() for fileobj in self._files])
+ def get_file_doc_type(self):
+ return max([fileobj.get_doc_type() for fileobj in self._files])
def is_in_installed_file(self):
return any([fileobj.is_installed() for fileobj in self._files])
+class Member(object):
+
+ """Member (in Doxygen terminology) in the GROMACS source tree.
+
+ Currently, modeling is limited to the minimal set of properties that the
+ checker uses.
+ """
+
+ def __init__(self, rawdoc, namespace):
+ self._rawdoc = rawdoc
+ self._namespace = namespace
+
+ def get_name(self):
+ return self._rawdoc.get_name()
+
+ def get_reporter_location(self):
+ return self._rawdoc.get_reporter_location()
+
+ def is_documented(self):
+ return self._rawdoc.is_documented()
+
+ def has_brief_description(self):
+ return self._rawdoc.has_brief_description()
+
+ def has_inbody_description(self):
+ return self._rawdoc.has_inbody_description()
+
+ def is_visible(self):
+ """Return whether the member is visible in Doxygen documentation.
+
+ Doxygen ignores members whose parent compounds are not documented.
+ However, when EXTRACT_ANON_NPACES=ON (which is set for our full
+ documentation), members of anonymous namespaces are extracted even if
+ the namespace is the only parent and is not documented.
+ """
+ if self._namespace and self._namespace.is_anonymous():
+ return True
+ return self._rawdoc.get_inherited_visibility() != DocType.none
+
+
class GromacsTree(object):
"""Root object for navigating the GROMACS source tree.
self._files = dict()
self._modules = dict()
self._classes = set()
+ self._namespaces = set()
+ self._members = set()
self._walk_dir(os.path.join(self._source_root, 'src'))
rootdir = self._get_dir(os.path.join('src', 'gromacs'))
for subdir in rootdir.get_subdirectories():
for fileobj in self._files.itervalues():
if not fileobj.is_external():
fileobj.scan_contents(self)
+ module = fileobj.get_module()
+ if module:
+ for includedfile in fileobj.get_includes():
+ otherfile = includedfile.get_file()
+ if otherfile:
+ othermodule = otherfile.get_module()
+ if othermodule and othermodule != module:
+ module.add_dependency(othermodule, includedfile)
def load_xml(self, only_files=False):
"""Load Doxygen XML information.
self._load_modules()
self._load_files()
if not only_files:
+ self._load_namespaces()
self._load_classes()
+ self._load_members()
def _load_dirs(self):
"""Load Doxygen XML directory information."""
fileobj.set_doc_xml(filedoc, self)
self._docmap[filedoc] = fileobj
+ def _load_namespaces(self):
+ """Load Doxygen XML namespace information."""
+ nsdocs = self._docset.get_namespaces()
+ for nsdoc in nsdocs:
+ nsobj = Namespace(nsdoc)
+ self._docmap[nsdoc] = nsobj
+ self._namespaces.add(nsobj)
+
def _load_classes(self):
"""Load Doxygen XML class information."""
classdocs = self._docset.get_classes()
self._docmap[classdoc] = classobj
self._classes.add(classobj)
+ def _load_members(self):
+ """Load Doxygen XML member information."""
+ memberdocs = self._docset.get_members()
+ for memberdoc in memberdocs:
+ nsdoc = memberdoc.get_namespace()
+ nsobj = self.get_object(nsdoc)
+ memberobj = Member(memberdoc, nsobj)
+ self._docmap[memberdoc] = memberobj
+ self._members.add(memberobj)
+
def _get_dir(self, relpath):
"""Get directory object for a path relative to source tree root."""
return self._dirs.get(relpath)
def find_include_file(self, includedpath):
"""Find a file object corresponding to an include path."""
- for testdir in ('src', 'src/gromacs/legacyheaders', 'src/external/thread_mpi/include'):
+ for testdir in ('src', 'src/gromacs/legacyheaders', 'src/external/thread_mpi/include',
+ 'src/external/tng_io/include'):
testpath = os.path.join(testdir, includedpath)
if testpath in self._files:
return self._files[testpath]
continue
self._files[relpath].set_installed()
+ def load_cycle_suppression_list(self, filename):
+ """Load a list of edges to suppress in cycles.
+
+ These edges between modules, if present, will be marked in the
+ corresponding ModuleDependency objects.
+ """
+ with open(filename, 'r') as fp:
+ for line in fp:
+ line = line.strip()
+ if not line or line.startswith('#'):
+ continue
+ modulenames = ['module_' + x.strip() for x in line.split('->')]
+ if len(modulenames) != 2:
+ self._reporter.input_error(
+ "invalid cycle suppression line: {0}".format(line))
+ continue
+ firstmodule = self._modules.get(modulenames[0])
+ secondmodule = self._modules.get(modulenames[1])
+ if not firstmodule or not secondmodule:
+ self._reporter.input_error(
+ "unknown modules mentioned on cycle suppression line: {0}".format(line))
+ continue
+ for dep in firstmodule.get_dependencies():
+ if dep.get_other_module() == secondmodule:
+ # TODO: Check that each suppression is actually part of
+ # a cycle.
+ dep.set_cycle_suppression()
+
def get_object(self, docobj):
"""Get tree object for a Doxygen XML object."""
+ if docobj is None:
+ return None
return self._docmap.get(docobj)
def get_files(self):
def get_members(self):
"""Get iterable for all members (in Doxygen terms) in the source tree."""
- # TODO: Add wrappers to solve some issues.
- return self._docset.get_members()
+ return self._members
# Intramodule dependency
EdgeType.intramodule = EdgeType(5)
EdgeType.legacy = EdgeType(6)
+EdgeType.cyclic = EdgeType(7)
# Invalid dependency
-EdgeType.undocumented = EdgeType(7)
+EdgeType.undocumented = EdgeType(8)
class Edge(object):
properties = 'color=black'
elif self._edgetype == EdgeType.legacy:
properties = 'color=grey75'
+ elif self._edgetype == EdgeType.cyclic:
+ properties = 'color=red, constraint=no'
else: # undocumented
properties = 'color=red'
return '{0} -> {1} [{2}]'.format(self._fromnode.get_nodename(),
filenodes[fileobj] = node
return node
- def _create_file_edge(self, fromfile, tofile, filenodes):
- """Create edge between two file objects.
+ def _get_file_edge_type(self, fromfile, tofile):
+ """Get EdgeType for an edge between two file objects.
Determines the type for the edge from the information provided by
gmxtree.
"""
intramodule = (fromfile.get_module() == tofile.get_module())
- is_legacy = not tofile.get_module().is_documented()
+ is_legacy = not tofile.api_type_is_reliable()
if fromfile.get_module() == tofile.get_module():
- edgetype = EdgeType.intramodule
- elif tofile.get_api_type() == DocType.internal:
+ return EdgeType.intramodule
+ elif tofile.get_api_type() == DocType.internal and not tofile.is_public():
if is_legacy:
- edgetype = EdgeType.legacy
+ return EdgeType.legacy
else:
- edgetype = EdgeType.undocumented
+ return EdgeType.undocumented
elif fromfile.is_test_file():
- edgetype = EdgeType.test
+ return EdgeType.test
elif tofile.is_test_file():
- edgetype = EdgeType.undocumented
- elif fromfile.is_source_file() or \
- (fromfile.get_api_type() <= DocType.internal and \
- not fromfile.is_installed()):
- if tofile.get_api_type() == DocType.public:
- edgetype = EdgeType.pubimpl
+ return EdgeType.undocumented
+ elif fromfile.is_module_internal():
+ if tofile.is_public():
+ return EdgeType.pubimpl
elif tofile.get_api_type() == DocType.library:
- edgetype = EdgeType.libimpl
- elif is_legacy or not tofile.is_documented():
- edgetype = EdgeType.legacy
+ return EdgeType.libimpl
+ elif is_legacy:
+ return EdgeType.legacy
+ elif not tofile.is_documented():
+ return EdgeType.undocumented
else:
raise ValueError('Unknown edge type between {0} and {1}'
- .format(fromfile.path, tofile.path))
+ .format(fromfile.get_relpath(), tofile.get_relpath()))
elif fromfile.get_api_type() == DocType.library:
- edgetype = EdgeType.library
- elif fromfile.get_api_type() == DocType.public or fromfile.is_installed():
- if tofile.get_api_type() == DocType.public or \
- tofile.get_documentation_type() == DocType.public or \
- (tofile.is_installed() and not tofile.is_documented()):
- edgetype = EdgeType.public
+ return EdgeType.library
+ elif fromfile.is_public() or fromfile.is_installed():
+ if tofile.is_public() or tofile.is_installed():
+ return EdgeType.public
else:
- edgetype = EdgeType.undocumented
+ return EdgeType.undocumented
+ elif is_legacy:
+ return EdgeType.legacy
else:
raise ValueError('Unknown edge type between {0} and {1}'
- .format(fromfile.path, tofile.path))
+ .format(fromfile.get_relpath(), tofile.get_relpath()))
+
+ def _create_file_edge(self, fromfile, tofile, filenodes):
+ """Create edge between two file objects.
+
+ Determines the type for the edge from the information provided by
+ gmxtree.
+ """
+ edgetype = self._get_file_edge_type(fromfile, tofile)
return Edge(filenodes[fromfile], filenodes[tofile], edgetype)
def _create_file_edges(self, filenodes):
edges.append(edge)
return edges
- def _create_module_node(self, module, filenodes):
- """Create node for a module.
-
- The created node will have all files in the module as its child nodes.
- All created file nodes are added to the filenodes dict.
- """
+ def _get_module_color(self, modulegroup):
+ if modulegroup == 'legacy':
+ return 'fillcolor=grey75'
+ elif modulegroup == 'analysismodules':
+ return 'fillcolor="0 .2 1"'
+ elif modulegroup == 'utilitymodules':
+ return 'fillcolor=".08 .2 1"'
+ elif modulegroup == 'mdrun':
+ return 'fillcolor=".75 .2 1"'
+ return None
+
+ def _create_module_node(self, module):
+ """Create node for a module."""
style = []
properties = []
properties.append('shape=ellipse')
properties.append('URL="\\ref module_{0}"'.format(module.get_name()))
if not module.is_documented():
+ fillcolor = self._get_module_color('legacy')
+ else:
+ fillcolor = self._get_module_color(module.get_group())
+ if fillcolor:
style.append('filled')
- properties.append('fillcolor=grey75')
- elif module.get_group() == 'analysismodules':
- style.append('filled')
- properties.append('fillcolor="0 .2 1"')
- elif module.get_group() == 'utilitymodules':
- style.append('filled')
- properties.append('fillcolor=".08 .2 1"')
- elif module.get_group() == 'mdrun':
- style.append('filled')
- properties.append('fillcolor=".75 .2 1"')
+ properties.append(fillcolor)
rootdir = module.get_root_dir()
if rootdir.has_installed_files():
properties.append('color=".66 .5 1"')
nodename = 'module_' + re.subn(r'[-./]', '_', rootdir.get_relpath())[0]
label = module.get_name()[7:]
node = Node(nodename, label, style, properties)
- for childfile in module.get_files():
- node.add_child(self._create_file_node(childfile, filenodes))
return node
+ def _create_module_edges(self, modulenodes):
+ """Create edges between all module nodes.
+
+ Create edges between module nodes specified in modulenodes from all
+ include dependencies. An edge is created only if both ends of the
+ dependency are in the list of nodes.
+ """
+ edges = []
+ for moduleobj in modulenodes.iterkeys():
+ for dep in moduleobj.get_dependencies():
+ othermodule = dep.get_other_module()
+ if othermodule and othermodule in modulenodes:
+ if dep.is_cycle_suppressed():
+ edgetype = EdgeType.cyclic
+ else:
+ edgetype = max([
+ self._get_file_edge_type(x.get_including_file(), x.get_file())
+ for x in dep.get_included_files()])
+ edge = Edge(modulenodes[moduleobj], modulenodes[othermodule], edgetype)
+ edges.append(edge)
+ return edges
+
+
+ def _create_legend_node(self, label, modulegroup):
+ if modulegroup:
+ nodename = 'legend_' + modulegroup
+ fillcolor = self._get_module_color(modulegroup)
+ else:
+ nodename = 'legend_' + label
+ fillcolor = None
+ style = []
+ properties = []
+ if fillcolor:
+ style.append('filled')
+ properties.append(fillcolor)
+ return Node(nodename, label, style, properties)
+
def create_modules_graph(self):
"""Create module dependency graph."""
- filenodes = dict()
nodes = []
- modulenodes = []
+ modulenodes = dict()
libgromacsnode = Node('libgromacs', 'libgromacs')
nodes.append(libgromacsnode)
for moduleobj in self._tree.get_modules():
- node = self._create_module_node(moduleobj, filenodes)
+ node = self._create_module_node(moduleobj)
if moduleobj.get_root_dir().get_relpath().startswith('src/gromacs'):
libgromacsnode.add_child(node)
else:
nodes.append(node)
- modulenodes.append(node)
- edges = self._create_file_edges(filenodes)
+ modulenodes[moduleobj] = node
+ edges = self._create_module_edges(modulenodes)
+ # TODO: Consider adding invisible edges to order the nodes better.
+ # TODO: Consider adding legend for the edge types as well.
+ legendnode = Node('legend', 'legend')
+ legendnode.add_child(self._create_legend_node('legacy', 'legacy'))
+ legendnode.add_child(self._create_legend_node('analysis', 'analysismodules'))
+ legendnode.add_child(self._create_legend_node('utility', 'utilitymodules'))
+ legendnode.add_child(self._create_legend_node('mdrun', 'mdrun'))
+ legendnode.add_child(Node('legend_installed', 'installed', properties=['color=".66 .5 1"', 'penwidth=3']))
+ nodes.append(legendnode)
graph = Graph(nodes, edges)
- for node in modulenodes:
- graph.collapse_node(node)
graph.set_options(concentrate=False)
return graph
help='Build tree root directory')
parser.add_option('--installed',
help='Read list of installed files from given file')
+ parser.add_option('--ignore-cycles',
+ help='Set file with module dependencies to ignore in cycles')
parser.add_option('-o', '--outdir', default='.',
help='Specify output directory for graphs')
parser.add_option('-q', '--quiet', action='store_true',
if not options.quiet:
sys.stderr.write('Reading source files...\n')
tree.scan_files()
+ if options.ignore_cycles:
+ tree.load_cycle_suppression_list(options.ignore_cycles)
if not options.quiet:
sys.stderr.write('Reading Doxygen XML files...\n')
tree.load_xml(only_files=True)
self._report(Message('warning: ' + message, details,
location=entity.get_reporter_location()))
+ def cyclic_issue(self, message, details=None):
+ """Report a cyclic dependency issue."""
+ self._report(Message('warning: ' + message, details))
+
def doc_error(self, entity, message):
"""Report an issue in documentation."""
self._report(Message('error: ' + entity.get_name() + ': ' + message,
# These are specific to Folding@Home, and easiest to suppress here
*: warning: includes non-local file as "corewrap.h"
src/config.h.cmakein: warning: includes non-local file as "swindirect.h"
-
-# These are limitations in the current script
-src/gromacs/utility/gmx_header_config.h: warning: includes non-local file as "gmx_header_config_gen.h"
Getting started
===============
-\todo
-Describe how to link against \Gromacs (pkg-config, FindGromacs.cmake, etc.)
-
The \Gromacs library (`libgromacs`) provides a few different alternatives for
using it. These are listed here from the highest level of abstraction to the
low-level functions.
`gmx-developers` mailing list, or contribute the necessary changes on
http://gerrit.gromacs.org/.
+Linking against `libgromacs`
+============================
+
+\Gromacs is a bit picky on how the headers need to be used: depending on
+compilation options used for \Gromacs, some preprocessor defines may need to be
+set, the required include path may also depend on compilation options, and some
+extra libraries may need to be linked. You will also likely need to use the
+same compiler (or sufficiently similar one that uses the same standard library)
+that was used to compile \Gromacs.
+
+To manage this more easily, \Gromacs provides two mechanisms for getting the
+correct flags for compilation and linking against the \Gromacs library:
+ - `pkg-config`: \Gromacs installs `libgromacs.pc` file (suffixed with the
+ library suffix) for use with `pkg-config` if that is present on the system.
+ Sourcing `GMXRC` adjusts the `pkg-config` search path such that these files
+ are found automatically.
+ See `Makefile.pkg` installed with the analysis template for one example of
+ how to use it (to use it with a differently suffixed \Gromacs, just replace
+ `libgromacs` with `libgromacs`<em>_suffix</em> in the `pkg-config` calls).
+ - CMake package configuration files and a find module that allow
+ `find_package(GROMACS)` to work. See below for details about how to use
+ this in CMake. Sourcing `GMXRC` sets an environment variable that allows
+ CMake to find the configuration file automatically.
+ See `CMakeLists.txt` installed with the analysis template for one example of
+ how to use it.
+
+These mechanisms are currently provided on a best-effort basis, but are not
+routinely tested on a wide range of configurations. Please report any issues
+with details of how \Gromacs was built so that the mechanism can be improved.
+Known issues:
+ - `pkg-config` files are not relocatable, i.e., they hard-code the
+ installation prefix as an absolute path.
+ - Installing both static and shared libraries with the same suffix to the same
+ installation prefix is guaranteed to work only if both are built with
+ exactly the same configuration options (except for `BUILD_SHARED_LIBS`) from
+ exactly the same version. There are several files that are shared between
+ the installations in such a case, and the latter installation will overwrite
+ those from the former.
+ - Further, if both static and shared libraries have been installed in the past
+ to a prefix, then future installations to the same prefix should also
+ install both static and shared libraries. Otherwise, some obsolete CMake
+ package configuration files will be left behind which can lead to finding
+ the old library. Alternatively, you can delete `share/cmake/` from the
+ installation directory before doing the install.
+ - If a mechanism other than the CMake-generated `install` target is used to
+ install \Gromacs over an existing installation, and the build type (e.g.,
+ Release vs.\ Debug) does not match what was previously installed, some
+ obsolete CMake import target definition files are left behind in
+ `share/cmake/`, and may cause failures whey trying to use the package
+ configuration files.
+ - If \Gromacs is built with `GMX_BUILD_OWN_FFTW=ON`, the CMake-generated
+ import definitions for `libgromacs` reference a `gmxfftw` target that was
+ used in the build to reference the `fftw` library. As this library only
+ exists in the \Gromacs build tree, and the CMake machinery does not write
+ any import definitions for it anywhere, linking will fail with errors about
+ not being able to find a `gmxfftw` library. So the CMake package
+ configuration files can only be used with `GMX_BUILD_OWN_FFTW=OFF`.
+
+CMake `find_package(GROMACS)` details
+-------------------------------------
+
+The CMake machinery to support `find_package(GROMACS)` has two parts: a
+`FindGROMACS.cmake` find module (found in `share/gromacs/template/cmake/` in
+the installation and `share/template/cmake/` in the source tree), and actual
+package configuration files (`gromacs-config.cmake` and supporting files
+installed to `share/cmake/` from input files in `src/gromacs/`).
+
+`FindGROMACS.cmake` is a simple wrapper over the package configuration files,
+providing a somewhat more convenient interface to the machinery that supports
+multiple suffixed \Gromacs installations in the same installation prefix (see
+`GROMACS_SUFFIX` variable below). This file is intended to be version-agnostic
+and remain both forward- and backward-compatible even between major \Gromacs
+releases. All version-specific information and the actual details about the
+compilation and linking settings is in the package configuration files.
+Build systems willing to utilize `FindGROMACS.cmake` can create a local copy of
+it and use it like it is used in the installed
+`share/gromacs/template/CMakeLists.txt`.
+The package configuration files can also be used directly if desired, bypassing
+`FindGROMACS.cmake`.
+
+Input options for influencing what to find:
+
+<dl>
+<dt>`GROMACS_SUFFIX` (only for `FindGROMACS.cmake`)</dt>
+<dd>This CMake variable can be set before calling `find_package(GROMACS)` to
+specify the \Gromacs suffix to search for. If not set, an unsuffixed version
+is searched for. If using the package configuration files directly, the suffix
+must be set using `find_package(GROMACS NAMES gromacs<suffix>)`.</dd>
+<dt>`GROMACS_PREFER_STATIC`</dt>
+<dd>This CMake variable can be set before calling `find_package(GROMACS)` to
+specify whether static or shared libraries are preferred if both are available.
+It does not affect which \Gromacs installation is chosen, but if that
+installation has both static and shared libraries available (installed from two
+different builds with the same suffix), then this chooses the library to be
+returned in `GROMACS_LIBRARIES`.</dd>
+<dt>`GROMACS_DIR`</dt>
+<dd>This CMake (cache) variable is a standard mechanism provided by
+`find_package`, and can be used to specify a hint where to search for \Gromacs.
+Also `CMAKE_PREFIX_PATH` can be used for this purpose; see CMake documentation
+for `find_package` for more details.
+`GROMACS_DIR` can also be set as an environment variable, and this is done by
+`GMXRC`.</dd>
+</dl>
+
+Output variables that specify how the found `libgromacs` and header should be
+used:
+
+<dl>
+<dt>`GROMACS_INCLUDE_DIRS`</dt>
+<dd>List of include directories necessary to compile against the \Gromacs
+headers. Currently, this includes the path to \Gromacs headers, as well as the
+path to Boost headers that were used to compile \Gromacs.</dd>
+<dt>`GROMACS_LIBRARIES`</dt>
+<dd>List of libraries to link with to link against \Gromacs.
+Under the hood, this uses imported CMake targets to represent `libgromacs`.</dd>
+<dt>`GROMACS_DEFINITIONS`</dt>
+<dd>List of compile definitions (with `-D` in front) that are required to
+compile the \Gromacs headers.</dd>
+<dt>`GROMACS_IS_DOUBLE`</dt>
+<dd>Whether the found \Gromacs was compiled in double precision.</dd>
+</dl>
+
+Declared macros/functions that can be used for checking for correctness of some
+settings:
+
+<dl>
+<dt>`gromacs_check_double(GMX_DOUBLE)`</dt>
+<dd>Checks that the found \Gromacs is in the expected precision.
+The parameter `GMX_DOUBLE` should be the name of a cache variable that
+specified whether double-precision was requested.</dd>
+<dt>`gromacs_check_compiler(LANG)`<dt>
+<dd>Checks that the found \Gromacs was compiled with the same compiler
+that is used by the current CMake system.
+Currently only `LANG=CXX` is supported.</dd>
+</dl>
+
Notes on \Gromacs API
=====================
set(SRC_DIR "@CMAKE_CURRENT_SOURCE_DIR@")
set(BIN_DIR "@CMAKE_CURRENT_BINARY_DIR@")
-set(PROJECT_VERSION "@PROJECT_VERSION@")
+set(PROJECT_VERSION "@GMX_VERSION_STRING@")
set(GMX_CMAKE_MINIMUM_REQUIRED_VERSION "@GMX_CMAKE_MINIMUM_REQUIRED_VERSION@")
set(REQUIRED_CUDA_VERSION "@REQUIRED_CUDA_VERSION@")
set(REQUIRED_CUDA_COMPUTE_CAPABILITY "@REQUIRED_CUDA_COMPUTE_CAPABILITY@")
is determined by CMake.
The name of the directory can be changed using `GMX_LIB_INSTALL_DIR` CMake
variable.
+`lib/pkgconfig/`
+ : Information about the installed `libgromacs` library for `pkg-config` is
+ installed here. The `lib/` part adapts to the installation location of the
+ libraries. The installed files contain the installation prefix as absolute
+ paths.
+`share/cmake/`
+ : CMake package configuration files are installed here.
`share/gromacs/`
: Various data files and some documentation go here.
The `gromacs` part can be changed using `GMX_DATA_INSTALL_DIR`. Using this
So, you want to build the manual? This is now easy.
1. Configure the main GROMACS repo with GMX_BUILD_MANUAL=on
-2. cmake will run some detection about whetehr this is possible
+2. cmake will run some detection about whether this is possible
3. Later, use "make manual," which will build GROMACS in the
usual way, and use the generated binaries to build the manual.
%
% This file is part of the GROMACS molecular simulation package.
%
-% Copyright (c) 2013, by the GROMACS development team, led by
+% Copyright (c) 2013,2014, 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.
\newcommand{\ttw}{4.33cm} % 1/3 of the textwidth
\newcommand{\htw}{7.5cm} % 1/2 of the textwidth
\newcommand{\ntw}{13cm} % 0.9 of the textwidth
-\newcommand{\gmxver}{@PROJECT_VERSION@}
+\newcommand{\gmxver}{@GMX_VERSION_STRING@}
\newcommand{\gmxyear}{\the\year}
\newcommand{\figref}[1]{Fig.~\ref{fig:#1}}
\newcommand{\figsref}[2]{Figs.~\ref{fig:#1} and ~\ref{fig:#2}}
@Article{PSmith93c,
author = {P. E. Smith and W. F. van Gunsteren},
title = {{The Viscosity of SPC and SPC/E Water}},
- journal = BTcpc,
+ journal = BTcpl,
year = 1993,
volume = 215,
pages = {315--318}
GMXLDLIB=${GMXPREFIX}/@LIB_INSTALL_DIR@
GMXMAN=${GMXPREFIX}/@MAN_INSTALL_DIR@
GMXDATA=${GMXPREFIX}/@DATA_INSTALL_DIR@
+GROMACS_DIR=${GMXPREFIX}
LD_LIBRARY_PATH=${GMXLDLIB}${LD_LIBRARY_PATH:+:}${LD_LIBRARY_PATH}
PKG_CONFIG_PATH=${GMXLDLIB}/pkgconfig${PKG_CONFIG_PATH:+:}${PKG_CONFIG_PATH}
MANPATH=${GMXMAN}:${MANPATH}
# export should be separate, so /bin/sh understands it
-export GMXBIN GMXLDLIB GMXMAN GMXDATA LD_LIBRARY_PATH PATH MANPATH PKG_CONFIG_PATH
+export GMXBIN GMXLDLIB GMXMAN GMXDATA LD_LIBRARY_PATH PATH MANPATH
+export PKG_CONFIG_PATH GROMACS_DIR
IFS="$old_IFS"
unset old_IFS
setenv GMXLDLIB ${GMXPREFIX}/@LIB_INSTALL_DIR@
setenv GMXMAN ${GMXPREFIX}/@MAN_INSTALL_DIR@
setenv GMXDATA ${GMXPREFIX}/@DATA_INSTALL_DIR@
+setenv GROMACS_DIR ${GMXPREFIX}
#make them begin with :
if ($?LD_LIBRARY_PATH) setenv LD_LIBRARY_PATH ":${LD_LIBRARY_PATH}"
#
# This file is part of the GROMACS molecular simulation package.
#
-# Copyright (c) 2011,2012, by the GROMACS development team, led by
+# Copyright (c) 2011,2012,2014, 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.
DESTINATION ${DATA_INSTALL_DIR}/template
COMPONENT development)
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/FindGROMACS.cmakein
- ${CMAKE_CURRENT_BINARY_DIR}/cmake/FindGROMACS.cmake @ONLY)
-
-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/cmake/FindGROMACS.cmake
+install(FILES cmake/FindGROMACS.cmake
DESTINATION ${DATA_INSTALL_DIR}/template/cmake
COMPONENT development)
-
-cmake_minimum_required(VERSION 2.8)
+cmake_minimum_required(VERSION 2.8.8)
-project(template)
+project(template CXX)
-# Cmake modules/macros are in a subdirectory to keep this file cleaner
-set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
-
-if(NOT CMAKE_BUILD_TYPE)
+if (NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel." FORCE)
-endif(NOT CMAKE_BUILD_TYPE)
+endif()
-option(GMX_DOUBLE "Use double precision" OFF)
+# CMake modules are in a subdirectory to keep this file cleaner
+list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
-########################################################################
-# Fix stupid flags on MSVC
-########################################################################
-IF(CMAKE_GENERATOR MATCHES "Visual Studio")
- STRING(REPLACE /MD /MT CMAKE_C_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE})
- SET(CMAKE_C_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE} CACHE STRING "" FORCE)
- STRING(REPLACE /MD /MT CMAKE_C_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG})
- SET(CMAKE_C_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG} CACHE STRING "" FORCE)
-ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio")
-
-########################################################################
-# Basic system tests (standard libraries, headers, functions, types) #
-########################################################################
-
-if (GMX_DOUBLE)
- set(LIBGROMACS "libgromacs_d")
-else(GMX_DOUBLE)
- set(LIBGROMACS "libgromacs")
-endif(GMX_DOUBLE)
-
-FIND_PACKAGE(GROMACS COMPONENTS ${LIBGROMACS} REQUIRED)
-message("GROMACS version ${GROMACS_VERSION_STRING} found")
-if ("${GROMACS_VERSION_STRING}" VERSION_LESS "5.0")
- message(FATAL_ERROR "This template works with GROMACS 5.0 (and possibly later versions)")
+# In principle, this could be deduced from GROMACS_IS_DOUBLE returned by
+# find_package(GROMACS) based on the suffix alone, but it is clearer that the
+# user explicitly sets what they want to get, and then need to provide a suffix
+# to match.
+option(GMX_DOUBLE "Use double precision" OFF)
+set(GMX_SUFFIX "" CACHE STRING "Suffix for the GROMACS installation to use (empty for default)")
+
+# This does not allow for a non-suffixed double-precision libgromacs, but
+# that should be rare enough for demonstration purposes.
+if (GMX_DOUBLE AND NOT GMX_SUFFIX)
+ set(GROMACS_SUFFIX "_d")
+else()
+ set(GROMACS_SUFFIX ${GMX_SUFFIX})
endif()
-add_definitions( ${GROMACS_DEFINITIONS} )
-include_directories( ${GROMACS_INCLUDE_DIRS} )
+find_package(GROMACS 5.1 REQUIRED)
+gromacs_check_double(GMX_DOUBLE)
+gromacs_check_compiler(CXX)
+include_directories(${GROMACS_INCLUDE_DIRS})
+add_definitions(${GROMACS_DEFINITIONS})
+
+# Use static linking on MSVC
+if (CMAKE_GENERATOR MATCHES "Visual Studio")
+ string(REPLACE /MD /MT CMAKE_C_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE})
+ set(CMAKE_C_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE} CACHE STRING "" FORCE)
+ string(REPLACE /MD /MT CMAKE_C_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG})
+ set(CMAKE_C_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG} CACHE STRING "" FORCE)
+endif()
add_executable(template template.cpp)
target_link_libraries(template ${GROMACS_LIBRARIES})
--- /dev/null
+#
+# This file is part of the GROMACS molecular simulation package.
+#
+# Copyright (c) 2014, 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.
+#
+# GROMACS is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public License
+# as published by the Free Software Foundation; either version 2.1
+# of the License, or (at your option) any later version.
+#
+# GROMACS is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with GROMACS; if not, see
+# http://www.gnu.org/licenses, or write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# If you want to redistribute modifications to GROMACS, 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 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.
+
+# This file should remain version-agnostic, with all things specific to a
+# particular GROMACS version remaining in the package configuration files.
+# This find module only provides some convenience functionality to manage the
+# suffixes etc.
+# That should allow using the same FindGROMACS.cmake file with multiple
+# different GROMACS installations on the same machine.
+
+# Propagate all flags passed to parent find_package() to the config call below.
+set(_gmx_find_args "")
+if (GROMACS_FIND_VERSION)
+ if (GROMACS_FIND_VERSION VERSION_LESS "5.1")
+ message(FATAL_ERROR
+ "This version of FindGROMACS.cmake requires GROMACS-provided "
+ "package configuration files, and only works to find "
+ "GROMACS 5.1 or later.")
+ endif()
+ list(APPEND _gmx_find_args ${GROMACS_FIND_VERSION})
+ if (GROMACS_FIND_VERSION_EXACT)
+ list(APPEND _gmx_find_args EXACT)
+ endif()
+endif()
+if (GROMACS_FIND_REQUIRED)
+ list(APPEND _gmx_find_args REQUIRED)
+endif()
+if (GROMACS_FIND_QUIETLY)
+ list(APPEND _gmx_find_args QUIET)
+endif()
+
+# Determine the actual name of the package configuration files.
+set(_gmx_pkg_name gromacs)
+if (DEFINED GROMACS_SUFFIX)
+ set(_gmx_pkg_name gromacs${GROMACS_SUFFIX})
+endif()
+# Delegate all the actual work to the package configuration files.
+# The CONFIGS option is not really necessary, but provides a bit better error
+# messages, since we actually know what the config file should be called.
+find_package(GROMACS ${_gmx_find_args} CONFIG
+ NAMES ${_gmx_pkg_name}
+ CONFIGS ${_gmx_pkg_name}-config.cmake)
+unset(_gmx_find_args)
+unset(_gmx_pkg_name)
+++ /dev/null
-#
-# This file is part of the GROMACS molecular simulation package.
-#
-# Copyright (c) 2009-2011, by the VOTCA Development Team (http://www.votca.org).
-# Copyright (c) 2012,2013,2014, 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.
-#
-# GROMACS is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public License
-# as published by the Free Software Foundation; either version 2.1
-# of the License, or (at your option) any later version.
-#
-# GROMACS is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with GROMACS; if not, see
-# http://www.gnu.org/licenses, or write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# If you want to redistribute modifications to GROMACS, 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 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.
-
-# - Finds parts of GROMACS
-# Find the native GROMACS components headers and libraries.
-#
-# GROMACS_INCLUDE_DIRS - where to find GROMACS headers.
-# GROMACS_LIBRARIES - List of libraries when used by GROMACS.
-# GROMACS_FOUND - True if all GROMACS components were found.
-# GROMACS_DEFINITIONS - Extra definies needed by GROMACS
-# GROMACS_PKG - The name of the pkg-config package needed
-# GROMACS_VERSION - GROMACS lib interface version
-# GROMACS_MAJOR_VERSION - GROMACS lib interface major version
-# GROMACS_MINOR_VERSION - GROMACS lib interface minor version
-# GROMACS_PATCH_LEVEL - GROMACS lib interface patch level
-# GROMACS_VERSION_STRING - GROMACS lib interface version string (e.g. "4.5.3")
-#
-
-find_package(PkgConfig)
-list(LENGTH GROMACS_FIND_COMPONENTS GROMACS_NUM_COMPONENTS_WANTED)
-if(${GROMACS_NUM_COMPONENTS_WANTED} LESS 1)
- message(FATAL_ERROR "find_package(GROMACS) needs to be supplied with the name of a GROMACS component for which it can search")
-elseif(${GROMACS_NUM_COMPONENTS_WANTED} GREATER 1)
- message(FATAL_ERROR "We only support finding one GROMACS component at this point, go and implement it ;-)")
-elseif(${GROMACS_FIND_COMPONENTS} MATCHES "^lib(gmx|gromacs)(_d)?$")
- set(GROMACS_PKG "${GROMACS_FIND_COMPONENTS}")
- string(REGEX REPLACE "^lib(.*)" "\\1" GROMACS_LIBRARY_NAME "${GROMACS_PKG}")
-else()
- message(FATAL_ERROR "We do not support finding ${GROMACS_FIND_COMPONENTS}, go and implement it ;-)")
-endif()
-
-if(GMX_DOUBLE AND NOT "${GROMACS_PKG}" MATCHES "_d$")
- message(FATAL_ERROR "GMX_DOUBLE was true, but I was asked to find ${GROMACS_PKG} (without _d at the end) - illogical!")
-endif(GMX_DOUBLE AND NOT "${GROMACS_PKG}" MATCHES "_d$")
-if(NOT GMX_DOUBLE AND "${GROMACS_PKG}" MATCHES "_d$")
- message(FATAL_ERROR "GMX_DOUBLE was false, but I was asked to find ${GROMACS_PKG} (with _d at the end) - illogical!")
-endif(NOT GMX_DOUBLE AND "${GROMACS_PKG}" MATCHES "_d$")
-
-pkg_check_modules(PC_GROMACS ${GROMACS_PKG})
-if (GMX_DOUBLE)
- list(APPEND GMX_DEFS "-DGMX_DOUBLE")
-endif(GMX_DOUBLE)
-if (PC_GROMACS_CFLAGS_OTHER)
- foreach(DEF ${PC_GROMACS_CFLAGS_OTHER})
- if (${DEF} MATCHES "^-D")
- list(APPEND GMX_DEFS ${DEF})
- endif (${DEF} MATCHES "^-D")
- endforeach(DEF)
- list(REMOVE_DUPLICATES GMX_DEFS)
-endif (PC_GROMACS_CFLAGS_OTHER)
-set(GROMACS_DEFINITIONS "${GMX_DEFS}" CACHE STRING "extra GROMACS definitions")
-
-find_library(GROMACS_LIBRARY NAMES ${GROMACS_LIBRARY_NAME}
- HINTS ${PC_GROMACS_LIBRARY_DIRS} @CMAKE_INSTALL_PREFIX@/@LIB_INSTALL_DIR@)
-if (GROMACS_LIBRARY)
- if("${GROMACS_LIBRARY}" MATCHES "lib(gmx|gromacs)[^;]*\\.a")
- if(PC_GROMACS_LIBRARIES)
- list(REMOVE_ITEM PC_GROMACS_LIBRARIES ${GROMACS_LIBRARY_NAME})
- foreach (LIB ${PC_GROMACS_LIBRARIES})
- find_library(GROMACS_${LIB} NAMES ${LIB}
- HINTS ${PC_GROMACS_LIBRARY_DIRS} @CMAKE_INSTALL_PREFIX@/@INCL_INSTALL_DIR@)
- list(APPEND GMX_DEP_LIBRARIES ${GROMACS_${LIB}})
- unset(GROMACS_${LIB} CACHE)
- endforeach(LIB)
- endif(PC_GROMACS_LIBRARIES)
- if(PC_GROMACS_CFLAGS_OTHER)
- foreach(LIB ${PC_GROMACS_CFLAGS_OTHER})
- if (${LIB} MATCHES "thread")
- find_package(Threads REQUIRED)
- list(APPEND GMX_DEP_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
- endif (${LIB} MATCHES "thread")
- endforeach(LIB)
- endif(PC_GROMACS_CFLAGS_OTHER)
- set(GROMACS_DEP_LIBRARIES "${GMX_DEP_LIBRARIES}" CACHE FILEPATH "GROMACS depency libs (only needed for static (.a) ${GROMACS_LIBRARY}")
- endif("${GROMACS_LIBRARY}" MATCHES "lib(gmx|gromacs)[^;]*\\.a")
- include(CheckLibraryExists)
- check_library_exists("${GROMACS_LIBRARY};${GROMACS_DEP_LIBRARIES}" GromacsVersion "" FOUND_GROMACS_VERSION)
- if(NOT FOUND_GROMACS_VERSION)
- message(FATAL_ERROR "Could not find GromacsVersion in ${GROMACS_LIBRARY};${GROMACS_DEP_LIBRARIES}, take look at the error message in ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log to find out what was going wrong. If you don't have pkg-config installed you will most likely have to set GROMACS_LIBRARY and GROMACS_DEP_LIBRARY by hand which sets the GROMACS lib and its depencies (e.g. -DGROMACS_LIBRARY='/path/to/libgmx.so' -DGROMACS_DEP_LIBRARIES='/path/to/libblas.so;/path/to/libm.so') !")
- endif(NOT FOUND_GROMACS_VERSION)
- check_library_exists("${GROMACS_LIBRARY};${GROMACS_DEP_LIBRARIES}" init_mtop "" FOUND_GROMACS_INIT_MTOP)
- if(NOT FOUND_GROMACS_INIT_MTOP)
- message(FATAL_ERROR "Could not find init_mtop in the GROMACS library, take look at the error message in ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log to find out what was going wrong. This most likely means that your GROMACS version is too old, we need at least GROMACS 4.0.7.")
- endif(NOT FOUND_GROMACS_INIT_MTOP)
- set(GROMACS_VERSION 40000)
- check_library_exists("${GROMACS_LIBRARY};${GROMACS_DEP_LIBRARIES}" output_env_done "" FOUND_GROMACS_OUTPUT_ENV_DONE)
- if(FOUND_GROMACS_OUTPUT_ENV_DONE)
- set(GROMACS_VERSION 40500)
- endif(FOUND_GROMACS_OUTPUT_ENV_DONE)
- check_library_exists("${GROMACS_LIBRARY};${GROMACS_DEP_LIBRARIES}" gmx_nonbonded_setup "" FOUND_GROMACS_GMX_NONBONDED_SETUP)
- if(FOUND_GROMACS_GMX_NONBONDED_SETUP)
- set(GROMACS_VERSION 40600)
- endif(FOUND_GROMACS_GMX_NONBONDED_SETUP)
- check_library_exists("${GROMACS_LIBRARY};${GROMACS_DEP_LIBRARIES}" init_domdec_vsites "" FOUND_GROMACS_INIT_DOMDEC_VSITES)
- if(FOUND_GROMACS_INIT_DOMDEC_VSITES)
- set(GROMACS_VERSION 50000)
- endif(FOUND_GROMACS_INIT_DOMDEC_VSITES)
- set(GROMACS_VERSION ${GROMACS_VERSION} CACHE STRING "GROMACS lib interface version")
-else(GROMACS_LIBRARY)
- set(GROMACS_VERSION 40500)
-endif (GROMACS_LIBRARY)
-
-math(EXPR GROMACS_MAJOR_VERSION "${GROMACS_VERSION} / 10000")
-math(EXPR GROMACS_MINOR_VERSION "${GROMACS_VERSION} / 100 % 100")
-math(EXPR GROMACS_PATCH_LEVEL "${GROMACS_VERSION} % 100")
-set(GROMACS_VERSION_STRING "${GROMACS_MAJOR_VERSION}.${GROMACS_MINOR_VERSION}.${GROMACS_PATCH_LEVEL}")
-
-if ("${GROMACS_PKG}" MATCHES "libgmx")
- if (${GROMACS_VERSION} EQUAL 40000)
- find_path(GROMACS_INCLUDE_DIR tpxio.h HINTS ${PC_GROMACS_INCLUDE_DIRS})
- else(${GROMACS_VERSION} EQUAL 40000)
- find_path(GROMACS_INCLUDE_DIR gromacs/tpxio.h HINTS ${PC_GROMACS_INCLUDE_DIRS})
- endif(${GROMACS_VERSION} EQUAL 40000)
-elseif("${GROMACS_PKG}" MATCHES "libgromacs")
- find_path(GROMACS_INCLUDE_DIR gromacs/version.h HINTS ${PC_GROMACS_INCLUDE_DIRS})
-endif("${GROMACS_PKG}" MATCHES "libgmx")
-
-set(GROMACS_LIBRARIES "${GROMACS_LIBRARY};${GROMACS_DEP_LIBRARIES}" )
-set(GROMACS_INCLUDE_DIRS ${GROMACS_INCLUDE_DIR} )
-if (PC_GROMACS_INCLUDE_DIRS)
- list(APPEND GROMACS_INCLUDE_DIRS ${PC_GROMACS_INCLUDE_DIRS})
-endif(PC_GROMACS_INCLUDE_DIRS)
-
-include(FindPackageHandleStandardArgs)
-# handle the QUIETLY and REQUIRED arguments and set GROMACS_FOUND to TRUE
-# if all listed variables are TRUE
-find_package_handle_standard_args(GROMACS DEFAULT_MSG GROMACS_LIBRARY GROMACS_INCLUDE_DIR)
-
-mark_as_advanced(GROMACS_INCLUDE_DIR GROMACS_LIBRARY GROMACS_DEFINITIONS GROMACS_PKG GROMACS_VERSION GROMACS_DEP_LIBRARIES)
-413
+415
If You Want Something Done You Have to Do It Yourself_(Highlander II)
I Live the Life They Wish They Did_(Tricky)
Jesus Built My Hotrod_(Ministry)
It was something to at least have a choice of nightmares_(Joseph Conrad)
You fight, work, sweat, nearly kill yourself, sometimes you do kill yourself, trying to accomplish something - and you can't._(Joseph Conrad)
And after some more talk we agreed that the wisdom of rats had been grossly overrated, being in fact no greater than that of men_(Joseph Conrad)
+It's an easy game, just don't let the ball past!_(Szilard Pall)
The soul? There's nothing but chemistry here_(Breaking Bad)
You got one part of that wrong. This is not meth._(Breaking Bad)
It's easy to remember: a half a kT is equal to five fourths of a kJ/mol._(Anders Gabrielsson)
... and that dream of dreams, a computational model that predicts everything accurately._(Roald Hoffmann)
You see it through a charmed medium: you can not discern that the gilding is slime and the silk draperies cobwebs; that the marble is sordid slate, and the polished woods mere refuse chips and scale bark._(Mr. Rochester in Jane Eyre by Charlotte Bronte)
I know poetry is not dead, nor genius lost; nor has Mammon gained power over either, to bind or slay; they will both assert their existence, their presence, their liberty and strength again one day._(Jane Eyre in Jane Eyre by Charlotte Bronte)
-
+Parallel programming is not about elegance!_(Bill Gropp)
K Ion
NA Ion
CA Ion
-MK Ion
+MG Ion
CL Ion
ZN Ion
CU1 Ion
/* Target platform is BlueGene/Q */
#cmakedefine GMX_TARGET_BGQ
+/** Define if we are building for Cygwin */
+#cmakedefine GMX_CYGWIN
+
+/** Define if we have sufficient C++11 support */
+#cmakedefine GMX_CXX11
+
/* GCC bug in AVX maskload/maskstore arguments - worked around internally */
#cmakedefine GMX_SIMD_X86_AVX_GCC_MASKLOAD_BUG
#include <stdio.h>
#include <string.h>
#include <math.h>
-#include "main.h"
+
#include "macros.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/commandline/pargs.h"
#include "copyrite.h"
-#include "sysstuff.h"
#include "txtdump.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "gromacs/fileio/xtcio.h"
#include "gromacs/fileio/enxio.h"
#include "gromacs/utility/smalloc.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trnio.h"
#include "txtdump.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
static char *nm[5] = { "OW", "HW1", "HW2", "DW", "SW" };
#endif
#include "typedefs.h"
-#include "main.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "txtdump.h"
void calc_force(int natom,rvec f[],rvec fff[])
#include "ns.h"
#include "gromacs/utility/smalloc.h"
#include "wnblist.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
#include "macros.h"
#include "gromacs/commandline/pargs.h"
#include "copyrite.h"
#include "gromacs/fileio/confio.h"
-#include "pbc.h"
-#include "vec.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/math/vec.h"
int main(int argc,char *argv[])
{
#include <config.h>
#endif
-#include "sysstuff.h"
#include "typedefs.h"
#include "macros.h"
#include "gromacs/utility/smalloc.h"
-#include "mshift.h"
#include "gromacs/commandline/pargs.h"
#include "copyrite.h"
#include "gromacs/fileio/pdbio.h"
-#include "gmx_fatal.h"
-#include "xvgr.h"
-#include "gromacs/fileio/matio.h"
-#include "index.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/fileio/xvgr.h"
+#include "gromacs/topology/index.h"
#include "gstat.h"
#include "gromacs/fileio/tpxio.h"
#include "viewit.h"
#include "gbutil.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "gromacs/fileio/confio.h"
#include "gromacs/fileio/gmxfio.h"
out=gmx_ffopen(TrjoutFile,filemode);
break;
}
- if (outftp == efG87)
- fprintf(gmx_fio_getfp(trx_get_fileio(trxout)),"Generated by %s. #atoms=%d, a BOX is"
- " stored in this file.\n",ShortProgram(),nout);
}
if (natoms > atoms->nr) {
#include <stdlib.h>
#include "errno.h"
-#include "sysstuff.h"
#include "typedefs.h"
#include "gromacs/utility/cstringutil.h"
#include "macros.h"
#include "gromacs/utility/smalloc.h"
-#include "mshift.h"
#include "gromacs/commandline/pargs.h"
#include "copyrite.h"
#include "gromacs/fileio/confio.h"
-#include "gmx_fatal.h"
-#include "xvgr.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/fileio/xvgr.h"
#include "gstat.h"
-#include "index.h"
+#include "gromacs/topology/index.h"
#include "gromacs/fileio/pdbio.h"
void cat(FILE *out,char *fn,real t)
#include "typedefs.h"
#include "gromacs/utility/smalloc.h"
#include "macros.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "random.h"
#include "gromacs/fileio/pdbio.h"
-#include "gromacs/fileio/futil.h"
-#include "physics.h"
-#include "xvgr.h"
-#include "vec.h"
+#include "gromacs/utility/futil.h"
+#include "gromacs/math/units.h"
+#include "gromacs/fileio/xvgr.h"
+#include "gromacs/math/vec.h"
#include "names.h"
#include "ehdata.h"
#include "gromacs/fileio/pdbio.h"
#include "typedefs.h"
#include "gromacs/utility/smalloc.h"
#include "macros.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "random.h"
#include "gromacs/fileio/strdb.h"
-#include "gromacs/fileio/futil.h"
-#include "physics.h"
+#include "gromacs/utility/futil.h"
#include "ehdata.h"
typedef struct {
#include "macros.h"
#include "copyrite.h"
#include "gromacs/commandline/pargs.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "random.h"
#include "gromacs/fileio/pdbio.h"
-#include "gromacs/fileio/futil.h"
-#include "physics.h"
-#include "xvgr.h"
-#include "vec.h"
+#include "gromacs/utility/futil.h"
+#include "gromacs/math/units.h"
+#include "gromacs/math/vec.h"
#include "names.h"
#include "ehdata.h"
#include <config.h>
#endif
-#include "sysstuff.h"
#include "gromacs/utility/smalloc.h"
#include "macros.h"
#include "gromacs/commandline/pargs.h"
#include "random.h"
#include "names.h"
#include "gromacs/fileio/matio.h"
-#include "physics.h"
-#include "vec.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/math/units.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/utility/futil.h"
#include "copyrite.h"
-#include "xvgr.h"
-#include "index.h"
#include "gromacs/fileio/tpxio.h"
int main(int argc,char *argv[])
#include "copyrite.h"
#include "typedefs.h"
#include "macros.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "gromacs/commandline/pargs.h"
#include "coulomb.h"
#include <math.h>
-#include "sysstuff.h"
#include "typedefs.h"
#include "macros.h"
-#include "vec.h"
-#include "pbc.h"
-#include "rmpbc.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/pbcutil/rmpbc.h"
#include "copyrite.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/commandline/pargs.h"
#include "gromacs/fileio/tpxio.h"
-#include "index.h"
+#include "gromacs/topology/index.h"
#include "gromacs/utility/smalloc.h"
#include "nrnb.h"
#include "gstat.h"
-#include "gromacs/fileio/matio.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#define G_REF1 0
#include <stdio.h>
#include "typedefs.h"
#include "gromacs/utility/smalloc.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "gmx_random.h"
#include "gmx_statistics.h"
#include "gromacs/fileio/pdbio.h"
#include "gromacs/fileio/confio.h"
-#include "symtab.h"
#include "gromacs/utility/smalloc.h"
-#include "symtab.h"
+#include "gromacs/topology/symtab.h"
#include "macros.h"
#include "copyrite.h"
#include "gromacs/commandline/pargs.h"
-#include "index.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "typedefs.h"
#include "gbutil.h"
-#include "physics.h"
-#include "atomprop.h"
+#include "gromacs/math/units.h"
void copy_atom(t_symtab *tab,t_atoms *a1,int i1,t_atoms *a2,int i2,
rvec xin[],rvec xout[],rvec vin[],rvec vout[])
#include "macros.h"
#include "gromacs/utility/cstringutil.h"
#include "gromacs/fileio/confio.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "gromacs/commandline/pargs.h"
#include "copyrite.h"
#include "gromacs/fileio/pdbio.h"
#include "typedefs.h"
#include "gromacs/commandline/pargs.h"
#include "copyrite.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "gromacs/fileio/pdbio.h"
#include "macros.h"
#include "gromacs/utility/smalloc.h"
-#include "vec.h"
-#include "pbc.h"
-#include "physics.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/math/units.h"
#include "names.h"
#include "txtdump.h"
#include "gromacs/fileio/trnio.h"
-#include "symtab.h"
+#include "gromacs/topology/symtab.h"
#include "gromacs/fileio/strdb.h"
-#include "atomprop.h"
#include "gromacs/fileio/confio.h"
#define TET 109.47
#include "typedefs.h"
#include "gromacs/commandline/pargs.h"
#include "copyrite.h"
-#include "gmx_fatal.h"
-#include "xvgr.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/fileio/xvgr.h"
+#include "viewit.h"
#include "gromacs/fileio/pdbio.h"
#include "macros.h"
#include "gromacs/utility/smalloc.h"
-#include "vec.h"
-#include "pbc.h"
-#include "physics.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/math/units.h"
#include "names.h"
#include "txtdump.h"
#include "gromacs/fileio/trnio.h"
-#include "symtab.h"
#include "gromacs/fileio/confio.h"
real pot(real x,real qq,real c6,real c12)
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
void my_func(char *msg)
{
#include "typedefs.h"
#include "macros.h"
#include "gromacs/utility/smalloc.h"
-#include "xvgr.h"
+#include "gromacs/fileio/xvgr.h"
#include "complex.h"
#include "fftgrid.h"
#include "mdrun.h"
#include <math.h>
#include <string.h>
#include "typedefs.h"
-#include "vec.h"
-#include "physics.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/math/units.h"
#include "macros.h"
#include "names.h"
#include "gromacs/utility/smalloc.h"
#include "gromacs/commandline/pargs.h"
#include "gromacs/fileio/writeps.h"
#include "copyrite.h"
-#include "xvgr.h"
-#include "minvert.h"
#include "pppm.h"
#include "readinp.h"
-#include "main.h"
#include "force.h"
#include "nrnb.h"
#include "coulomb.h"
-#include "mshift.h"
+#include "gromacs/pbcutil/mshift.h"
#include "poisson.h"
#include "mdatoms.h"
#include "typedefs.h"
#include "macros.h"
#include "gromacs/utility/smalloc.h"
-#include "xvgr.h"
+#include "gromacs/fileio/xvgr.h"
#include "copyrite.h"
#include "mdrun.h"
#include "main.h"
cr = init_par(&argc,&argv);
if (MASTER(cr))
CopyRight(stdout,argv[0]);
- parse_common_args(&argc,argv,
- PCA_CAN_SET_DEFFNM | (MASTER(cr) ? 0 : PCA_QUIET),
+ parse_common_args(&argc,argv, PCA_CAN_SET_DEFFNM,
NFILE,fnm,asize(pa),pa,0,NULL,0,NULL);
gmx_log_open(ftp2fn(efLOG,NFILE,fnm),cr,1,0,&fplog);
#include <assert.h>
-#include "gromacs/legacyheaders/types/simple.h"
+#include "gromacs/utility/basedefinitions.h"
/* We only use the C interface of ThreeFry and r123array2x64. This file is a
replacment for the original from the Random123 distribution. It sets all
/* For "inline" use the Gromacs own gmx_inline */
#define R123_STATIC_INLINE static gmx_inline
/* force_inline isn't used in Gromacs - if it matters for a compiler it probably
- not only matters here and should be defined in simple.h */
+ not only matters here and should be defined in basedefinitions.h */
#define R123_FORCE_INLINE(decl) decl
/* We assume in Gromacs that assert is available outside of Cuda */
#define R123_ASSERT assert
************************************************************/
-#include "types/simple.h"
-
#ifndef _fftpack_h
#define _fftpack_h
+#include "gromacs/utility/real.h"
+
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __cplusplus
}
#endif
+
#endif
#else
/* Define storage for little-endian or both types of CPUs. */
md5_word_t xbuf[16];
- /* cppcheck-suppress unassignedVariable */
const md5_word_t *X;
#endif
add_subdirectory(random)
add_subdirectory(onlinehelp)
add_subdirectory(options)
+add_subdirectory(pbcutil)
add_subdirectory(timing)
+add_subdirectory(topology)
add_subdirectory(utility)
add_subdirectory(fileio)
add_subdirectory(swap)
tmpi_get_source_list(THREAD_MPI_SOURCES ${CMAKE_SOURCE_DIR}/src/external/thread_mpi/src)
list(APPEND LIBGROMACS_SOURCES ${THREAD_MPI_SOURCES})
-file(GLOB LIBGROMACS_HEADERS *.h)
+set(LIBGROMACS_HEADERS
+ analysisdata.h
+ commandline.h
+ options.h
+ selection.h
+ trajectoryanalysis.h
+ utility.h)
configure_file(version.h.cmakein version.h)
gmx_install_headers("" ${LIBGROMACS_HEADERS})
gmx_install_headers("" ${CMAKE_CURRENT_BINARY_DIR}/version.h)
-# Add target that generates baseversion-gen.c every time make is run
-# if git version info is requested, or create it statically.
-# This code is here instead of utility/CMakeLists.txt because CMake
-# ignores set_source_file_properties from subdirectories.
-set(GENERATED_VERSION_FILE
- ${CMAKE_CURRENT_BINARY_DIR}/utility/baseversion-gen.c)
-set(GENERATED_VERSION_FILE_SOURCE
- ${CMAKE_CURRENT_SOURCE_DIR}/utility/baseversion-gen.c.cmakein)
-if (GMX_GIT_VERSION_INFO)
- add_custom_target(gmx-version ALL
- COMMAND ${CMAKE_COMMAND}
- -D GIT_EXECUTABLE="${GIT_EXECUTABLE}"
- -D PROJECT_VERSION="${PROJECT_VERSION}"
- -D PROJECT_SOURCE_DIR="${PROJECT_SOURCE_DIR}"
- -D VERSION_CMAKEIN=${GENERATED_VERSION_FILE_SOURCE}
- -D VERSION_OUT=${GENERATED_VERSION_FILE}
- -P ${CMAKE_SOURCE_DIR}/cmake/gmxGenerateVersionInfo.cmake
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
- DEPENDS ${GENERATED_VERSION_FILE_SOURCE}
- COMMENT "Generating git version information")
- set_source_files_properties(${GENERATED_VERSION_FILE}
- PROPERTIES GENERATED true)
-else()
- set(GMX_PROJECT_VERSION_STR ${PROJECT_VERSION})
- configure_file(${GENERATED_VERSION_FILE_SOURCE} ${GENERATED_VERSION_FILE})
-endif()
+# This code is here instead of utility/CMakeLists.txt, because CMake
+# custom commands and source file properties can only be set in the directory
+# that contains the target that uses them.
+# TODO: Generate a header instead that can be included from baseversion.c.
+# That probably simplifies things somewhat.
+set(GENERATED_VERSION_FILE utility/baseversion-gen.c)
+gmx_configure_version_file(
+ utility/baseversion-gen.c.cmakein ${GENERATED_VERSION_FILE}
+ REMOTE_HASH SOURCE_FILE)
list(APPEND LIBGROMACS_SOURCES ${GENERATED_VERSION_FILE})
# apply gcc 4.4.x bug workaround
gmx_apply_gcc44_bug_workaround("mdlib/constr.c")
endif()
-add_library(libgromacs ${LIBGROMACS_SOURCES})
-if (GMX_GIT_VERSION_INFO)
- add_dependencies(libgromacs gmx-version)
+if (GMX_GPU)
+ cuda_add_library(libgromacs ${LIBGROMACS_SOURCES}
+ OPTIONS
+ RELWITHDEBINFO -g
+ DEBUG -g -D_DEBUG_=1)
+else()
+ add_library(libgromacs ${LIBGROMACS_SOURCES})
endif()
# Recent versions of gcc and clang give warnings on scanner.cpp, which
target_link_libraries(libgromacs
${EXTRAE_LIBRARIES}
- ${GMX_GPU_LIBRARIES}
${GMX_EXTRA_LIBRARIES}
${TNG_IO_LIBRARIES}
${FFT_LIBRARIES} ${LINEAR_ALGEBRA_LIBRARIES}
# Only install the library in mdrun-only mode if it is actually necessary
# for the binary
if (NOT GMX_BUILD_MDRUN_ONLY OR BUILD_SHARED_LIBS)
- install(TARGETS libgromacs DESTINATION ${LIB_INSTALL_DIR} COMPONENT libraries)
+ install(TARGETS libgromacs
+ EXPORT libgromacs
+ DESTINATION ${LIB_INSTALL_DIR}
+ COMPONENT libraries)
endif()
if (NOT GMX_BUILD_MDRUN_ONLY)
- configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libgromacs.pc.cmakein
- ${CMAKE_CURRENT_BINARY_DIR}/libgromacs.pc @ONLY)
- install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libgromacs.pc
- DESTINATION ${LIB_INSTALL_DIR}/pkgconfig
- RENAME "libgromacs${GMX_LIBS_SUFFIX}.pc"
- COMPONENT development)
+ include(InstallLibInfo.cmake)
endif()
if (INSTALL_CUDART_LIB) #can be set manual by user
--- /dev/null
+#
+# This file is part of the GROMACS molecular simulation package.
+#
+# Copyright (c) 2014, 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.
+#
+# GROMACS is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public License
+# as published by the Free Software Foundation; either version 2.1
+# of the License, or (at your option) any later version.
+#
+# GROMACS is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with GROMACS; if not, see
+# http://www.gnu.org/licenses, or write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# If you want to redistribute modifications to GROMACS, 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 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.
+
+function (do_pkgconfig)
+ set(PKG_CFLAGS "")
+ foreach (_dir ${INSTALLED_HEADER_INCLUDE_DIRS})
+ if (IS_ABSOLUTE ${_dir})
+ set(PKG_CFLAGS "${PKG_CFLAGS} -I${_dir}")
+ else()
+ set(PKG_CFLAGS "${PKG_CFLAGS} -I${CMAKE_INSTALL_PREFIX}/${_dir}")
+ endif()
+ endforeach()
+ if (INSTALLED_HEADER_DEFINITIONS)
+ foreach (_def ${INSTALLED_HEADER_DEFINITIONS})
+ set(PKG_CFLAGS "${PKG_CFLAGS} ${_def}")
+ endforeach()
+ endif()
+ set(PKG_CFLAGS "${PKG_CFLAGS} ${OpenMP_C_FLAGS}")
+
+ configure_file(libgromacs.pc.cmakein
+ libgromacs.pc @ONLY)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libgromacs.pc
+ DESTINATION ${PKGCONFIG_INSTALL_DIR}
+ RENAME "libgromacs${GMX_LIBS_SUFFIX}.pc"
+ COMPONENT development)
+endfunction()
+
+function (do_cmake_config)
+ # Install everything into a subdirectory, because
+ # 1. CMake expects things to be there for CMAKE_PREFIX_PATH to work, and
+ # 2. This nicely isolates files for different suffixes from each other.
+ set(CMAKE_PACKAGE_DIR ${CMAKE_INSTALL_DIR}/gromacs${GMX_LIBS_SUFFIX})
+
+ # Install import definitions that take care of the library locations and
+ # library dependencies.
+ set(EXPORT_FILE_NAME libgromacs.cmake)
+ if (NOT BUILD_SHARED_LIBS)
+ set(EXPORT_FILE_NAME libgromacs_static.cmake)
+ endif()
+ install(EXPORT libgromacs
+ FILE ${EXPORT_FILE_NAME}
+ DESTINATION ${CMAKE_PACKAGE_DIR}
+ COMPONENT libraries)
+
+ get_filename_component(GROMACS_CXX_COMPILER ${CMAKE_CXX_COMPILER} REALPATH)
+ configure_file(gromacs-config.cmake.cmakein
+ gromacs-config.cmake @ONLY)
+ configure_file(gromacs-config-version.cmake.cmakein
+ gromacs-config-version.cmake @ONLY)
+ # The configuration files are also installed with the suffix, even though
+ # the directory already contains the suffix. This allows simple
+ # find_package(GROMACS NAMES gromacs_d) to find them, without also
+ # specifying CONFIGS.
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/gromacs-config.cmake
+ DESTINATION ${CMAKE_PACKAGE_DIR}
+ RENAME "gromacs${GMX_LIBS_SUFFIX}-config.cmake"
+ COMPONENT development)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/gromacs-config-version.cmake
+ DESTINATION ${CMAKE_PACKAGE_DIR}
+ RENAME "gromacs${GMX_LIBS_SUFFIX}-config-version.cmake"
+ COMPONENT development)
+endfunction()
+
+do_pkgconfig()
+do_cmake_config()
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2010,2011,2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2010,2011,2012,2013,2014, 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 <boost/shared_ptr.hpp>
-#include "../legacyheaders/types/simple.h"
-
#include "../utility/common.h"
namespace gmx
#ifndef GMX_ANALYSISDATA_ANALYSISDATA_H
#define GMX_ANALYSISDATA_ANALYSISDATA_H
+#include "../utility/real.h"
+
#include "abstractdata.h"
namespace gmx
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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 <vector>
-#include "../legacyheaders/types/simple.h"
-
#include "../utility/arrayref.h"
#include "../utility/flags.h"
#include "../utility/gmxassert.h"
+#include "../utility/real.h"
namespace gmx
{
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2010,2011,2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2010,2011,2012,2013,2014, 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.
#ifndef GMX_ANALYSISDATA_DATAMODULE_H
#define GMX_ANALYSISDATA_DATAMODULE_H
-#include "../legacyheaders/types/simple.h"
-
namespace gmx
{
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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 <vector>
-#include "../legacyheaders/types/simple.h"
-
#include "../utility/common.h"
#include "../utility/gmxassert.h"
+#include "../utility/real.h"
#include "dataframe.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2010,2011,2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2010,2011,2012,2013,2014, 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.
#ifndef GMX_ANALYSISDATA_MODULES_DISPLACEMENT_H
#define GMX_ANALYSISDATA_MODULES_DISPLACEMENT_H
+#include "../../utility/real.h"
+
#include "../abstractdata.h"
#include "../datamodule.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2013, by the GROMACS development team, led by
+ * Copyright (c) 2013,2014, 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 <vector>
-#include "../../legacyheaders/types/simple.h"
-
#include "../../utility/gmxassert.h"
+#include "../../utility/real.h"
namespace gmx
{
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2010,2011,2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2010,2011,2012,2013,2014, 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.
#ifndef GMX_ANALYSISDATA_MODULES_HISTOGRAM_H
#define GMX_ANALYSISDATA_MODULES_HISTOGRAM_H
+#include <boost/shared_ptr.hpp>
+
#include "../abstractdata.h"
#include "../arraydata.h"
#include "../datamodule.h"
-#include "../../utility/uniqueptr.h"
namespace gmx
{
class AbstractAverageHistogram;
//! Smart pointer to manage an AbstractAverageHistogram object.
-typedef gmx_unique_ptr<AbstractAverageHistogram>::type
+typedef boost::shared_ptr<AbstractAverageHistogram>
AverageHistogramPointer;
/*! \brief
#include <boost/shared_ptr.hpp>
#include "gromacs/legacyheaders/oenv.h"
-#include "gromacs/legacyheaders/vec.h"
-#include "gromacs/legacyheaders/xvgr.h"
#include "gromacs/analysisdata/dataframe.h"
#include "gromacs/fileio/gmxfio.h"
+#include "gromacs/fileio/xvgr.h"
+#include "gromacs/math/vec.h"
#include "gromacs/options/basicoptions.h"
#include "gromacs/options/options.h"
#include "gromacs/options/timeunitmanager.h"
? static_cast<xvg_format_t>(impl_->settings_.plotFormat())
: exvgNONE);
output_env_t oenv;
- output_env_init(&oenv, getProgramContext(), time_unit, FALSE, xvg_format, 0, 0);
+ output_env_init(&oenv, getProgramContext(), time_unit, FALSE, xvg_format, 0);
boost::shared_ptr<output_env> oenvGuard(oenv, &output_env_done);
impl_->fp_ = xvgropen(impl_->filename_.c_str(), impl_->title_.c_str(),
impl_->xlabel_.c_str(), impl_->ylabel_.c_str(),
#include <gtest/gtest.h>
-#include "gromacs/legacyheaders/types/simple.h"
-
#include "gromacs/analysisdata/dataframe.h"
#include "gromacs/utility/gmxassert.h"
+#include "gromacs/utility/real.h"
#include "testutils/refdata.h"
*
* Does not throw.
*/
- explicit RootHelpTopic(const std::string &binaryName)
- : binaryName_(binaryName)
+ explicit RootHelpTopic(const CommandLineHelpModuleImpl &helpModule)
+ : helpModule_(helpModule)
{
}
virtual void writeHelp(const HelpWriterContext &context) const;
private:
- std::string binaryName_;
+ const CommandLineHelpModuleImpl &helpModule_;
GMX_DISALLOW_COPY_AND_ASSIGN(RootHelpTopic);
};
}
{
CommandLineCommonOptionsHolder optionsHolder;
- CommandLineHelpContext cmdlineContext(context);
+ CommandLineHelpContext cmdlineContext(*helpModule_.context_);
+ cmdlineContext.setModuleDisplayName(helpModule_.binaryName_);
optionsHolder.initOptions();
- cmdlineContext.setModuleDisplayName(binaryName_);
// TODO: Add <command> [<args>] into the synopsis.
- // TODO: Propagate the -hidden option here.
CommandLineHelpWriter(*optionsHolder.options())
.writeHelp(cmdlineContext);
}
const std::string &binaryName,
const CommandLineModuleMap &modules,
const CommandLineModuleGroupList &groups)
- : rootTopic_(new RootHelpTopic(binaryName)), programContext_(programContext),
+ : rootTopic_(new RootHelpTopic(*this)), programContext_(programContext),
binaryName_(binaryName), modules_(modules), groups_(groups),
context_(NULL), moduleOverride_(NULL), bHidden_(false),
outputOverride_(NULL)
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
* \param[in] context Context object for writing the help.
* \throws std::bad_alloc if out of memory.
* \throws FileIOError on any I/O error.
+ *
+ * Note that for MPI-enabled builds, this is called only on the master
+ * rank.
*/
virtual void writeHelp(const CommandLineHelpContext &context) const = 0;
};
return bQuiet_ && !bVersion_;
}
+ //! Returns the debug level.
+ int debugLevel() const { return debugLevel_; }
+
//! Returns the file to which startup information should be printed.
FILE *startupInfoFile() const { return (bVersion_ ? stdout : stderr); }
bool bQuiet_;
bool bVersion_;
bool bCopyright_;
+ int debugLevel_;
GMX_DISALLOW_COPY_AND_ASSIGN(CommandLineCommonOptionsHolder);
};
#include <utility>
#include "gromacs/legacyheaders/copyrite.h"
-#include "gromacs/legacyheaders/network.h"
#include "gromacs/commandline/cmdlinehelpcontext.h"
#include "gromacs/commandline/cmdlinehelpmodule.h"
#include "gromacs/commandline/cmdlineprogramcontext.h"
#include "gromacs/options/basicoptions.h"
#include "gromacs/options/options.h"
+#include "gromacs/utility/basenetwork.h"
#include "gromacs/utility/exceptions.h"
+#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/gmxassert.h"
#include "gromacs/utility/stringutil.h"
CommandLineCommonOptionsHolder::CommandLineCommonOptionsHolder()
: options_(NULL, NULL), bHelp_(false), bHidden_(false),
- bQuiet_(false), bVersion_(false), bCopyright_(true)
+ bQuiet_(false), bVersion_(false), bCopyright_(true), debugLevel_(0)
{
binaryInfoSettings_.copyright(true);
}
.description("Print extended version information and quit"));
options_.addOption(BooleanOption("copyright").store(&bCopyright_)
.description("Print copyright information on startup"));
+ options_.addOption(IntegerOption("debug").store(&debugLevel_)
+ .hidden().defaultValueIfSet(1)
+ .description("Write file with debug information, "
+ "1: short (default), 2: also x and f"));
}
bool CommandLineCommonOptionsHolder::finishOptions()
int CommandLineModuleManager::run(int argc, char *argv[])
{
CommandLineModuleInterface *module;
- const bool bMaster = (!gmx_mpi_initialized() || gmx_node_rank() == 0);
+ const bool bMaster = (gmx_node_rank() == 0);
bool bQuiet = impl_->bQuiet_ || !bMaster;
CommandLineCommonOptionsHolder optionsHolder;
try
{
return 0;
}
- int rc = module->run(argc, argv);
+ /* Open the debug file */
+ if (optionsHolder.debugLevel() > 0)
+ {
+ std::string filename(impl_->programContext_.programName());
+ if (gmx_node_num() > 1)
+ {
+ filename.append(formatString("%d", gmx_node_rank()));
+ }
+ filename.append(".debug");
+
+ fprintf(stderr, "Will write debug log file: %s\n", filename.c_str());
+ gmx_init_debug(optionsHolder.debugLevel(), filename.c_str());
+ }
+ int rc = 0;
+ if (!(module == impl_->helpModule_ && !bMaster))
+ {
+ rc = module->run(argc, argv);
+ }
if (!bQuiet)
{
gmx_thanx(stderr);
*/
#include "cmdlineprogramcontext.h"
-#ifdef HAVE_CONFIG_H
#include "config.h"
-#endif
#include <cstdlib>
#include <cstring>
#include "thread_mpi/mutex.h"
-#include "gromacs/fileio/path.h"
#include "gromacs/utility/exceptions.h"
#include "gromacs/utility/file.h"
#include "gromacs/utility/gmxassert.h"
+#include "gromacs/utility/path.h"
#include "gromacs/utility/stringutil.h"
namespace gmx
CommandLineProgramContext::Impl::Impl(int argc, const char *const argv[],
ExecutableEnvironmentPointer env)
- : executableEnv_(move(env))
+ : executableEnv_(env)
{
invokedName_ = (argc != 0 ? argv[0] : "");
programName_ = Path::getFilename(invokedName_);
CommandLineProgramContext::CommandLineProgramContext(
int argc, const char *const argv[], ExecutableEnvironmentPointer env)
- : impl_(new Impl(argc, argv, move(env)))
+ : impl_(new Impl(argc, argv, env))
{
}
#include <string>
#include <vector>
+#include <boost/shared_ptr.hpp>
+
#include "../utility/common.h"
#include "../utility/programcontext.h"
-#include "../utility/uniqueptr.h"
namespace gmx
{
};
//! Shorthand for a smart pointer to ExecutableEnvironmentInterface.
-typedef gmx_unique_ptr<ExecutableEnvironmentInterface>::type
+typedef boost::shared_ptr<ExecutableEnvironmentInterface>
ExecutableEnvironmentPointer;
/*! \libinternal \brief
/* This file is completely threadsafe - keep it that way! */
#include "gromacs/commandline/pargs.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
-#include <cctype>
-#include <cstdio>
#include <cstdlib>
#include <cstring>
+#include <algorithm>
+#include <list>
+
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#include "thread_mpi/threads.h"
-#include "gromacs/legacyheaders/gmx_fatal.h"
-#include "gromacs/legacyheaders/macros.h"
-#include "gromacs/legacyheaders/network.h"
-
#include "gromacs/commandline/cmdlinehelpcontext.h"
#include "gromacs/commandline/cmdlinehelpwriter.h"
-#include "gromacs/commandline/shellcompletions.h"
+#include "gromacs/commandline/cmdlineparser.h"
#include "gromacs/fileio/timecontrol.h"
#include "gromacs/options/basicoptions.h"
#include "gromacs/options/filenameoption.h"
+#include "gromacs/options/filenameoptionmanager.h"
#include "gromacs/options/options.h"
+#include "gromacs/options/timeunitmanager.h"
#include "gromacs/utility/arrayref.h"
+#include "gromacs/utility/basenetwork.h"
+#include "gromacs/utility/common.h"
#include "gromacs/utility/cstringutil.h"
#include "gromacs/utility/exceptions.h"
+#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/gmxassert.h"
#include "gromacs/utility/programcontext.h"
#include "gromacs/utility/smalloc.h"
/* The source code in this file should be thread-safe.
Please keep it that way. */
-static void usage(const char *type, const char *arg)
-{
- GMX_ASSERT(arg != NULL, "NULL command-line argument should not occur");
- gmx_fatal(FARGS, "Expected %s argument for option %s\n", type, arg);
-}
-
-/* Scan an int for argument argv[*i] from argument at argv[*i + 1].
- * eg: -p 32. argv[*i] is only used for error reporting.
- * If there is no value, or the conversion is not successful, the
- * routine exits with an error, otherwise it returns the value found.
- * *i is incremented once.
- */
-static int iscan(int argc, char *argv[], int *i)
-{
- const char *const arg = argv[*i];
- if (argc <= (*i)+1)
- {
- usage("an integer", arg);
- }
- const char *const value = argv[++(*i)];
- char *endptr;
- int var = std::strtol(value, &endptr, 10);
- if (*value == '\0' || *endptr != '\0')
- {
- usage("an integer", arg);
- }
- return var;
-}
-
-/* Same as above, but for large integer values */
-static gmx_int64_t istepscan(int argc, char *argv[], int *i)
-{
- const char *const arg = argv[*i];
- if (argc <= (*i)+1)
- {
- usage("an integer", arg);
- }
- const char *const value = argv[++(*i)];
- char *endptr;
- gmx_int64_t var = str_to_int64_t(value, &endptr);
- if (*value == '\0' || *endptr != '\0')
- {
- usage("an integer", arg);
- }
- return var;
-}
-
-/* Routine similar to the above, but working on doubles. */
-static double dscan(int argc, char *argv[], int *i)
-{
- const char *const arg = argv[*i];
- if (argc <= (*i)+1)
- {
- usage("a real", arg);
- }
- const char *const value = argv[++(*i)];
- char *endptr;
- double var = std::strtod(value, &endptr);
- if (*value == '\0' || *endptr != '\0')
- {
- usage("a real", arg);
- }
- return var;
-}
-
-/* Routine similar to the above, but working on strings. The pointer
- * returned is a pointer to the argv field.
- */
-static char *sscan(int argc, char *argv[], int *i)
-{
- if (argc > (*i)+1)
- {
- if ( (argv[(*i)+1][0] == '-') && (argc > (*i)+2) &&
- (argv[(*i)+2][0] != '-') )
- {
- fprintf(stderr, "Possible missing string argument for option %s\n\n",
- argv[*i]);
- }
- }
- else
- {
- usage("a string", argv[*i]);
- }
-
- return argv[++(*i)];
-}
-
-static gmx_bool is_hidden(t_pargs *pa)
-{
- return (strstr(pa->desc, "HIDDEN") != NULL);
-}
-
int nenum(const char *const enumc[])
{
int i;
return i;
}
-/* Read a number of arguments from the command line.
- * For etINT, etREAL and etCHAR an extra argument is read (when present)
- * for etBOOL the gmx_boolean option is changed to the negate value
- */
-static void get_pargs(int *argc, char *argv[], int nparg, t_pargs pa[])
-{
- int i, j, k, match;
- gmx_bool *bKeep;
- char buf[32];
- char *ptr;
-
- snew(bKeep, *argc+1);
- bKeep[0] = TRUE;
- bKeep[*argc] = TRUE;
-
- for (i = 1; (i < *argc); i++)
- {
- bKeep[i] = TRUE;
- for (j = 0; (j < nparg); j++)
- {
- if (pa[j].type == etBOOL)
- {
- sprintf(buf, "-no%s", pa[j].option+1);
- if (strcmp(pa[j].option, argv[i]) == 0)
- {
- *pa[j].u.b = TRUE;
- pa[j].bSet = TRUE;
- bKeep[i] = FALSE;
- }
- else if (strcmp(buf, argv[i]) == 0)
- {
- *pa[j].u.b = FALSE;
- pa[j].bSet = TRUE;
- bKeep[i] = FALSE;
- }
- }
- else if (strcmp(pa[j].option, argv[i]) == 0)
- {
- if (pa[j].bSet)
- {
- fprintf(stderr, "Setting option %s more than once!\n",
- pa[j].option);
- }
- pa[j].bSet = TRUE;
- bKeep[i] = FALSE;
- switch (pa[j].type)
- {
- case etINT:
- *pa[j].u.i = iscan(*argc, argv, &i);
- break;
- case etINT64:
- *pa[j].u.is = istepscan(*argc, argv, &i);
- break;
- case etTIME:
- case etREAL:
- *pa[j].u.r = dscan(*argc, argv, &i);
- break;
- case etSTR:
- *(pa[j].u.c) = sscan(*argc, argv, &i);
- break;
- case etENUM:
- match = -1;
- ptr = sscan(*argc, argv, &i);
- for (k = 1; (pa[j].u.c[k] != NULL); k++)
- {
- /* only check ptr against beginning of
- pa[j].u.c[k] */
- if (gmx_strncasecmp(ptr, pa[j].u.c[k], strlen(ptr)) == 0)
- {
- if ( ( match == -1 ) ||
- ( strlen(pa[j].u.c[k]) <
- strlen(pa[j].u.c[match]) ) )
- {
- match = k;
- }
- }
- }
- if (match != -1)
- {
- pa[j].u.c[0] = pa[j].u.c[match];
- }
- else
- {
- gmx_fatal(FARGS, "Invalid argument %s for option %s",
- ptr, pa[j].option);
- }
- break;
- case etRVEC:
- (*pa[j].u.rv)[0] = dscan(*argc, argv, &i);
- if ( (i+1 == *argc) ||
- ( (argv[i+1][0] == '-') &&
- !isdigit(argv[i+1][1]) ) )
- {
- (*pa[j].u.rv)[1] =
- (*pa[j].u.rv)[2] =
- (*pa[j].u.rv)[0];
- }
- else
- {
- bKeep[i] = FALSE;
- (*pa[j].u.rv)[1] = dscan(*argc, argv, &i);
- if ( (i+1 == *argc) ||
- ( (argv[i+1][0] == '-') &&
- !isdigit(argv[i+1][1]) ) )
- {
- gmx_fatal(FARGS,
- "%s: vector must have 1 or 3 real parameters",
- pa[j].option);
- }
- bKeep[i] = FALSE;
- (*pa[j].u.rv)[2] = dscan(*argc, argv, &i);
- }
- break;
- default:
- gmx_fatal(FARGS, "Invalid type %d in pargs", pa[j].type);
- }
- /* i may be incremented, so set it to not keep */
- bKeep[i] = FALSE;
- }
- }
- }
-
- /* Remove used entries */
- for (i = j = 0; (i <= *argc); i++)
- {
- if (bKeep[i])
- {
- argv[j++] = argv[i];
- }
- }
- (*argc) = j-1;
- sfree(bKeep);
-}
-
int opt2parg_int(const char *option, int nparg, t_pargs pa[])
{
int i;
* parse_common_args()
*/
-static void set_default_time_unit(const char *time_list[], gmx_bool bCanTime)
+namespace gmx
{
- int i = 0;
- const char *select = NULL;
-
- if (bCanTime)
- {
- select = getenv("GMXTIMEUNIT");
- if (select != NULL)
- {
- i = 1;
- while (time_list[i] && strcmp(time_list[i], select) != 0)
- {
- i++;
- }
- }
- }
- if (!bCanTime || select == NULL ||
- time_list[i] == NULL || strcmp(time_list[i], select) != 0)
- {
- /* Set it to the default: ps */
- i = 1;
- while (time_list[i] && strcmp(time_list[i], "ps") != 0)
- {
- i++;
- }
-
- }
- time_list[0] = time_list[i];
-}
-static void set_default_xvg_format(const char *xvg_list[])
+namespace
{
- int i;
- const char *select;
- select = getenv("GMX_VIEW_XVG");
- if (select == NULL)
- {
- /* The default is the first option */
- xvg_list[0] = xvg_list[1];
- }
- else
+/*! \brief
+ * Returns the index of the default xvg format.
+ *
+ * \ingroup module_commandline
+ */
+int getDefaultXvgFormat(gmx::ConstArrayRef<const char *> xvgFormats)
+{
+ const char *const select = getenv("GMX_VIEW_XVG");
+ if (select != NULL)
{
- i = 1;
- while (xvg_list[i] && strcmp(xvg_list[i], select) != 0)
- {
- i++;
- }
- if (xvg_list[i] != NULL)
+ ConstArrayRef<const char *>::const_iterator i =
+ std::find(xvgFormats.begin(), xvgFormats.end(), std::string(select));
+ if (i != xvgFormats.end())
{
- xvg_list[0] = xvg_list[i];
+ return i - xvgFormats.begin();
}
else
{
- xvg_list[0] = xvg_list[exvgNONE];
+ return exvgNONE - 1;
}
}
+ /* The default is the first option */
+ return 0;
}
-static int add_parg(int npargs, t_pargs *pa, t_pargs *pa_add)
-{
- memcpy(&(pa[npargs]), pa_add, sizeof(*pa_add));
-
- return npargs+1;
-}
-
-namespace gmx
-{
-
-namespace
-{
-
/*! \brief
- * Converts a t_filenm option into an Options option.
+ * Conversion helper between t_pargs/t_filenm and Options.
*
- * \param options Options object to add the new option to.
- * \param[in] fnm t_filenm option to convert.
+ * This class holds the necessary mapping between the old C structures and
+ * the new C++ options to allow copying values back after parsing for cases
+ * where the C++ options do not directly provide the type of value required for
+ * the C structures.
*
* \ingroup module_commandline
*/
-void filenmToOptions(Options *options, const t_filenm *fnm)
+class OptionsAdapter
{
+ public:
+ /*! \brief
+ * Initializes the adapter to convert from a specified command line.
+ *
+ * The command line is required, because t_pargs wants to return
+ * strings by reference to the original command line.
+ * OptionsAdapter creates a copy of the `argv` array (but not the
+ * strings) to make this possible, even if the parser removes
+ * options it has recognized.
+ */
+ OptionsAdapter(int argc, const char *const argv[])
+ : argv_(argv, argv + argc)
+ {
+ }
+
+ /*! \brief
+ * Converts a t_filenm option into an Options option.
+ *
+ * \param options Options object to add the new option to.
+ * \param fnm t_filenm option to convert.
+ */
+ void filenmToOptions(Options *options, t_filenm *fnm);
+ /*! \brief
+ * Converts a t_pargs option into an Options option.
+ *
+ * \param options Options object to add the new option to.
+ * \param pa t_pargs option to convert.
+ */
+ void pargsToOptions(Options *options, t_pargs *pa);
+
+ /*! \brief
+ * Copies values back from options to t_pargs/t_filenm.
+ */
+ void copyValues(bool bReadNode);
+
+ private:
+ struct FileNameData
+ {
+ //! Creates a conversion helper for a given `t_filenm` struct.
+ explicit FileNameData(t_filenm *fnm) : fnm(fnm), optionInfo(NULL)
+ {
+ }
+
+ //! t_filenm structure to receive the final values.
+ t_filenm *fnm;
+ //! Option info object for the created FileNameOption.
+ FileNameOptionInfo *optionInfo;
+ //! Value storage for the created FileNameOption.
+ std::vector<std::string> values;
+ };
+ struct ProgramArgData
+ {
+ //! Creates a conversion helper for a given `t_pargs` struct.
+ explicit ProgramArgData(t_pargs *pa)
+ : pa(pa), optionInfo(NULL), enumIndex(0), boolValue(false)
+ {
+ }
+
+ //! t_pargs structure to receive the final values.
+ t_pargs *pa;
+ //! Option info object for the created option.
+ OptionInfo *optionInfo;
+ //! Value storage for a non-enum StringOption (unused for other types).
+ std::string stringValue;
+ //! Value storage for an enum option (unused for other types).
+ int enumIndex;
+ //! Value storage for a BooleanOption (unused for other types).
+ bool boolValue;
+ };
+
+ std::vector<const char *> argv_;
+ // These are lists instead of vectors to avoid relocating existing
+ // objects in case the container is reallocated (the Options object
+ // contains pointes to members of the objects, which would get
+ // invalidated).
+ std::list<FileNameData> fileNameOptions_;
+ std::list<ProgramArgData> programArgs_;
+
+ GMX_DISALLOW_COPY_AND_ASSIGN(OptionsAdapter);
+};
+
+void OptionsAdapter::filenmToOptions(Options *options, t_filenm *fnm)
+{
+ if (fnm->opt == NULL)
+ {
+ // Existing code may use opt2fn() instead of ftp2fn() for
+ // options that use the default option name, so we need to
+ // keep the old behavior instead of fixing opt2fn().
+ // TODO: Check that this is not the case, remove this, and make
+ // opt2*() work even if fnm->opt is NULL for some options.
+ fnm->opt = ftp2defopt(fnm->ftp);
+ }
const bool bRead = ((fnm->flag & ffREAD) != 0);
const bool bWrite = ((fnm->flag & ffWRITE) != 0);
const bool bOptional = ((fnm->flag & ffOPT) != 0);
{
defName = ftp2defnm(fnm->ftp);
}
- // Since we are not (yet) using this for actual parsing, we don't need to
- // set any storage.
- options->addOption(
- FileNameOption(name).defaultBasename(defName).legacyType(fnm->ftp)
- .readWriteFlags(bRead, bWrite).required(!bOptional)
- .libraryFile(bLibrary).multiValue(bMultiple)
- .description(ftp2desc(fnm->ftp)));
+ fileNameOptions_.push_back(FileNameData(fnm));
+ FileNameData &data = fileNameOptions_.back();
+ data.optionInfo = options->addOption(
+ FileNameOption(name).storeVector(&data.values)
+ .defaultBasename(defName).legacyType(fnm->ftp)
+ .legacyOptionalBehavior()
+ .readWriteFlags(bRead, bWrite).required(!bOptional)
+ .libraryFile(bLibrary).multiValue(bMultiple)
+ .description(ftp2desc(fnm->ftp)));
}
-/*! \brief
- * Converts a t_pargs option into an Options option.
- *
- * \param options Options object to add the new option to.
- * \param[in] pa t_pargs option to convert.
- *
- * \ingroup module_commandline
- */
-void pargsToOptions(Options *options, t_pargs *pa)
+void OptionsAdapter::pargsToOptions(Options *options, t_pargs *pa)
{
- const bool bHidden = is_hidden(pa);
+ const bool bHidden = startsWith(pa->desc, "HIDDEN");
const char *const name = &pa->option[1];
const char *const desc = (bHidden ? &pa->desc[6] : pa->desc);
- // Since we are not (yet) using this for actual parsing, we can take some
- // shortcuts and not set any storage where there is no direct
- // correspondence in the types.
+ programArgs_.push_back(ProgramArgData(pa));
+ ProgramArgData &data = programArgs_.back();
switch (pa->type)
{
case etINT:
- options->addOption(
- IntegerOption(name).store(pa->u.i)
- .description(desc).hidden(bHidden));
+ data.optionInfo = options->addOption(
+ IntegerOption(name).store(pa->u.i)
+ .description(desc).hidden(bHidden));
return;
case etINT64:
- options->addOption(
- Int64Option(name).store(pa->u.is)
- .description(desc).hidden(bHidden));
+ data.optionInfo = options->addOption(
+ Int64Option(name).store(pa->u.is)
+ .description(desc).hidden(bHidden));
return;
case etREAL:
- options->addOption(
- RealOption(name).store(pa->u.r)
- .description(desc).hidden(bHidden));
+ data.optionInfo = options->addOption(
+ RealOption(name).store(pa->u.r)
+ .description(desc).hidden(bHidden));
return;
case etTIME:
- options->addOption(
- RealOption(name).store(pa->u.r).timeValue()
- .description(desc).hidden(bHidden));
+ data.optionInfo = options->addOption(
+ RealOption(name).store(pa->u.r).timeValue()
+ .description(desc).hidden(bHidden));
return;
case etSTR:
{
const char *const defValue = (*pa->u.c != NULL ? *pa->u.c : "");
- options->addOption(
- StringOption(name).defaultValue(defValue)
- .description(desc).hidden(bHidden));
+ data.optionInfo = options->addOption(
+ StringOption(name).store(&data.stringValue)
+ .defaultValue(defValue)
+ .description(desc).hidden(bHidden));
return;
}
case etBOOL:
- options->addOption(
- BooleanOption(name).defaultValue(*pa->u.b)
- .description(desc).hidden(bHidden));
+ data.optionInfo = options->addOption(
+ BooleanOption(name).store(&data.boolValue)
+ .defaultValue(*pa->u.b)
+ .description(desc).hidden(bHidden));
return;
case etRVEC:
- options->addOption(
- RealOption(name).store(*pa->u.rv).vector()
- .description(desc).hidden(bHidden));
+ data.optionInfo = options->addOption(
+ RealOption(name).store(*pa->u.rv).vector()
+ .description(desc).hidden(bHidden));
return;
case etENUM:
- options->addOption(
- StringOption(name).defaultEnumIndex(nenum(pa->u.c) - 1)
- .enumValueFromNullTerminatedArray(pa->u.c + 1)
- .description(desc).hidden(bHidden));
+ {
+ const int defaultIndex = (pa->u.c[0] != NULL ? nenum(pa->u.c) - 1 : 0);
+ data.optionInfo = options->addOption(
+ StringOption(name).storeEnumIndex(&data.enumIndex)
+ .defaultEnumIndex(defaultIndex)
+ .enumValueFromNullTerminatedArray(pa->u.c + 1)
+ .description(desc).hidden(bHidden));
return;
+ }
}
GMX_THROW(NotImplementedError("Argument type not implemented"));
}
+void OptionsAdapter::copyValues(bool bReadNode)
+{
+ std::list<FileNameData>::const_iterator file;
+ for (file = fileNameOptions_.begin(); file != fileNameOptions_.end(); ++file)
+ {
+ if (!bReadNode && (file->fnm->flag & ffREAD))
+ {
+ continue;
+ }
+ if (file->optionInfo->isSet())
+ {
+ file->fnm->flag |= ffSET;
+ }
+ file->fnm->nfiles = file->values.size();
+ snew(file->fnm->fns, file->fnm->nfiles);
+ for (int i = 0; i < file->fnm->nfiles; ++i)
+ {
+ file->fnm->fns[i] = gmx_strdup(file->values[i].c_str());
+ }
+ }
+ std::list<ProgramArgData>::const_iterator arg;
+ for (arg = programArgs_.begin(); arg != programArgs_.end(); ++arg)
+ {
+ arg->pa->bSet = arg->optionInfo->isSet();
+ switch (arg->pa->type)
+ {
+ case etSTR:
+ {
+ if (arg->pa->bSet)
+ {
+ std::vector<const char *>::const_iterator pos =
+ std::find(argv_.begin(), argv_.end(), arg->stringValue);
+ GMX_RELEASE_ASSERT(pos != argv_.end(),
+ "String argument got a value not in argv");
+ *arg->pa->u.c = *pos;
+ }
+ break;
+ }
+ case etBOOL:
+ *arg->pa->u.b = arg->boolValue;
+ break;
+ case etENUM:
+ *arg->pa->u.c = arg->pa->u.c[arg->enumIndex + 1];
+ break;
+ default:
+ // For other types, there is nothing type-specific to do.
+ break;
+ }
+ }
+}
+
} // namespace
} // namespace gmx
output_env_t *oenv)
{
/* This array should match the order of the enum in oenv.h */
- const char *xvg_format[] = { NULL, "xmgrace", "xmgr", "none", NULL };
- /* This array should match the order of the enum in oenv.h */
- const char *time_units[] = {
- NULL, "fs", "ps", "ns", "us", "ms", "s",
- NULL
- };
- int nicelevel = 0, debug_level = 0;
- char *deffnm = NULL;
- real tbegin = 0, tend = 0, tdelta = 0;
- gmx_bool bView = FALSE;
-
- t_pargs *all_pa = NULL;
-
- t_pargs nice_pa = {
- "-nice", FALSE, etINT, {&nicelevel},
- "Set the nicelevel"
- };
- t_pargs deffnm_pa = {
- "-deffnm", FALSE, etSTR, {&deffnm},
- "Set the default filename for all file options"
- };
- t_pargs begin_pa = {
- "-b", FALSE, etTIME, {&tbegin},
- "First frame (%t) to read from trajectory"
- };
- t_pargs end_pa = {
- "-e", FALSE, etTIME, {&tend},
- "Last frame (%t) to read from trajectory"
- };
- t_pargs dt_pa = {
- "-dt", FALSE, etTIME, {&tdelta},
- "Only use frame when t MOD dt = first time (%t)"
- };
- t_pargs view_pa = {
- "-w", FALSE, etBOOL, {&bView},
- "View output [TT].xvg[tt], [TT].xpm[tt], [TT].eps[tt] and [TT].pdb[tt] files"
- };
- t_pargs xvg_pa = {
- "-xvg", FALSE, etENUM, {xvg_format},
- "xvg plot formatting"
- };
- t_pargs time_pa = {
- "-tu", FALSE, etENUM, {time_units},
- "Time unit"
- };
- /* Maximum number of extra arguments */
-#define EXTRA_PA 16
-
- t_pargs pca_pa[] = {
- { "-debug", FALSE, etINT, {&debug_level},
- "HIDDENWrite file with debug information, 1: short, 2: also x and f" },
- };
-#define NPCA_PA asize(pca_pa)
- gmx_bool bXvgr;
- int i, j, k, npall, max_pa;
+ const char *const xvg_formats[] = { "xmgrace", "xmgr", "none" };
// Handle the flags argument, which is a bit field
// The FF macro returns whether or not the bit is set
#define FF(arg) ((Flags & arg) == arg)
- /* Check for double arguments */
- for (i = 1; (i < *argc); i++)
+ try
{
- if (argv[i] && (strlen(argv[i]) > 1) && (!std::isdigit(argv[i][1])))
+ int nicelevel = 0;
+ double tbegin = 0.0, tend = 0.0, tdelta = 0.0;
+ bool bView = false;
+ int xvgFormat = 0;
+ gmx::TimeUnitManager timeUnitManager;
+ gmx::OptionsAdapter adapter(*argc, argv);
+ gmx::Options options(NULL, NULL);
+ gmx::FileNameOptionManager fileOptManager;
+
+ fileOptManager.disableInputOptionChecking(
+ FF(PCA_NOT_READ_NODE) || FF(PCA_DISABLE_INPUT_FILE_CHECKING));
+ options.addManager(&fileOptManager);
+ options.setDescription(gmx::constArrayRefFromArray<const char *>(desc, ndesc));
+
+ options.addOption(
+ gmx::IntegerOption("nice").store(&nicelevel)
+ .defaultValue(FF(PCA_BE_NICE) ? 19 : 0)
+ .description("Set the nicelevel"));
+
+ if (FF(PCA_CAN_SET_DEFFNM))
{
- for (j = i+1; (j < *argc); j++)
- {
- if ( (argv[i][0] == '-') && (argv[j][0] == '-') &&
- (strcmp(argv[i], argv[j]) == 0) )
- {
- if (FF(PCA_NOEXIT_ON_ARGS))
- {
- fprintf(stderr, "Double command line argument %s\n",
- argv[i]);
- }
- else
- {
- gmx_fatal(FARGS, "Double command line argument %s\n",
- argv[i]);
- }
- }
- }
+ fileOptManager.addDefaultFileNameOption(&options, "deffnm");
}
- }
- debug_gmx();
-
- /* Check ALL the flags ... */
- max_pa = NPCA_PA + EXTRA_PA + npargs+1;
- snew(all_pa, max_pa);
-
- for (i = npall = 0; (i < static_cast<int>(NPCA_PA)); i++)
- {
- npall = add_parg(npall, all_pa, &(pca_pa[i]));
- }
-
- if (FF(PCA_BE_NICE))
- {
- nicelevel = 19;
- }
- npall = add_parg(npall, all_pa, &nice_pa);
-
- if (FF(PCA_CAN_SET_DEFFNM))
- {
- npall = add_parg(npall, all_pa, &deffnm_pa);
- }
- if (FF(PCA_CAN_BEGIN))
- {
- npall = add_parg(npall, all_pa, &begin_pa);
- }
- if (FF(PCA_CAN_END))
- {
- npall = add_parg(npall, all_pa, &end_pa);
- }
- if (FF(PCA_CAN_DT))
- {
- npall = add_parg(npall, all_pa, &dt_pa);
- }
- if (FF(PCA_TIME_UNIT))
- {
- npall = add_parg(npall, all_pa, &time_pa);
- }
- if (FF(PCA_CAN_VIEW))
- {
- npall = add_parg(npall, all_pa, &view_pa);
- }
-
- bXvgr = FALSE;
- for (i = 0; (i < nfile); i++)
- {
- bXvgr = bXvgr || (fnm[i].ftp == efXVG);
- }
- if (bXvgr)
- {
- npall = add_parg(npall, all_pa, &xvg_pa);
- }
-
- /* Now append the program specific arguments */
- for (i = 0; (i < npargs); i++)
- {
- npall = add_parg(npall, all_pa, &(pa[i]));
- }
-
- /* set etENUM options to default */
- for (i = 0; (i < npall); i++)
- {
- if (all_pa[i].type == etENUM)
+ if (FF(PCA_CAN_BEGIN))
{
- all_pa[i].u.c[0] = all_pa[i].u.c[1];
+ options.addOption(
+ gmx::DoubleOption("b").store(&tbegin).timeValue()
+ .description("First frame (%t) to read from trajectory"));
}
- }
- set_default_time_unit(time_units, FF(PCA_TIME_UNIT));
- set_default_xvg_format(xvg_format);
-
- /* Now parse all the command-line options */
- get_pargs(argc, argv, npall, all_pa);
-
- /* set program name, command line, and default values for output options */
- output_env_init(oenv, gmx::getProgramContext(), (time_unit_t)nenum(time_units), bView,
- (xvg_format_t)nenum(xvg_format), 0, debug_level);
-
- /* Parse the file args */
- parse_file_args(argc, argv, nfile, fnm, deffnm, !FF(PCA_NOT_READ_NODE));
-
- /* Open the debug file */
- if (debug_level > 0)
- {
- char buf[256];
-
- if (gmx_mpi_initialized())
+ if (FF(PCA_CAN_END))
{
- sprintf(buf, "%s%d.debug", output_env_get_short_program_name(*oenv),
- gmx_node_rank());
+ options.addOption(
+ gmx::DoubleOption("e").store(&tend).timeValue()
+ .description("Last frame (%t) to read from trajectory"));
}
- else
+ if (FF(PCA_CAN_DT))
+ {
+ options.addOption(
+ gmx::DoubleOption("dt").store(&tdelta).timeValue()
+ .description("Only use frame when t MOD dt = first time (%t)"));
+ }
+ if (FF(PCA_TIME_UNIT))
+ {
+ timeUnitManager.setTimeUnitFromEnvironment();
+ timeUnitManager.addTimeUnitOption(&options, "tu");
+ }
+ if (FF(PCA_CAN_VIEW))
{
- sprintf(buf, "%s.debug", output_env_get_short_program_name(*oenv));
+ options.addOption(
+ gmx::BooleanOption("w").store(&bView)
+ .description("View output [TT].xvg[tt], [TT].xpm[tt], "
+ "[TT].eps[tt] and [TT].pdb[tt] files"));
}
- init_debug(debug_level, buf);
- fprintf(stderr, "Opening debug file %s (src code file %s, line %d)\n",
- buf, __FILE__, __LINE__);
- }
+ bool bXvgr = false;
+ for (int i = 0; i < nfile; i++)
+ {
+ bXvgr = bXvgr || (fnm[i].ftp == efXVG);
+ }
+ xvgFormat = gmx::getDefaultXvgFormat(xvg_formats);
+ if (bXvgr)
+ {
+ options.addOption(
+ gmx::StringOption("xvg").enumValue(xvg_formats)
+ .storeEnumIndex(&xvgFormat)
+ .description("xvg plot formatting"));
+ }
- /* Now copy the results back... */
- for (i = 0, k = npall-npargs; (i < npargs); i++, k++)
- {
- memcpy(&(pa[i]), &(all_pa[k]), (size_t)sizeof(pa[i]));
- }
+ /* Now append the program specific arguments */
+ for (int i = 0; i < nfile; i++)
+ {
+ adapter.filenmToOptions(&options, &fnm[i]);
+ }
+ for (int i = 0; i < npargs; i++)
+ {
+ adapter.pargsToOptions(&options, &pa[i]);
+ }
- bool bExit = false;
- try
- {
const gmx::CommandLineHelpContext *context =
gmx::GlobalCommandLineHelpContext::get();
- bExit = (context != NULL);
- if (context != NULL && !(FF(PCA_QUIET)))
+ if (context != NULL)
{
- gmx::Options options(NULL, NULL);
- options.setDescription(gmx::constArrayRefFromArray(desc, ndesc));
- for (i = 0; i < nfile; i++)
- {
- gmx::filenmToOptions(&options, &fnm[i]);
- }
- for (i = 0; i < npall; i++)
- {
- gmx::pargsToOptions(&options, &all_pa[i]);
- }
+ GMX_RELEASE_ASSERT(gmx_node_rank() == 0,
+ "Help output should be handled higher up and "
+ "only get called only on the master rank");
gmx::CommandLineHelpWriter(options)
.setShowDescriptions(true)
- .setTimeUnitString(output_env_get_time_unit(*oenv))
+ .setTimeUnitString(timeUnitManager.timeUnitAsString())
.setKnownIssues(gmx::constArrayRefFromArray(bugs, nbugs))
.writeHelp(*context);
+ return FALSE;
}
- }
- GMX_CATCH_ALL_AND_EXIT_WITH_FATAL_ERROR;
- /* Set the nice level */
+ /* Now parse all the command-line options */
+ gmx::CommandLineParser(&options).skipUnknown(FF(PCA_NOEXIT_ON_ARGS))
+ .parse(argc, argv);
+ options.finish();
+
+ /* set program name, command line, and default values for output options */
+ output_env_init(oenv, gmx::getProgramContext(),
+ (time_unit_t)(timeUnitManager.timeUnit() + 1), bView,
+ (xvg_format_t)(xvgFormat + 1), 0);
+
+ /* Set the nice level */
#ifdef HAVE_UNISTD_H
#ifndef GMX_NO_NICE
- /* The some system, e.g. the catamount kernel on cray xt3 do not have nice(2). */
- if (nicelevel != 0 && !bExit)
- {
- static gmx_bool nice_set = FALSE; /* only set it once */
- static tMPI_Thread_mutex_t init_mutex = TMPI_THREAD_MUTEX_INITIALIZER;
- tMPI_Thread_mutex_lock(&init_mutex);
- if (!nice_set)
+ /* The some system, e.g. the catamount kernel on cray xt3 do not have nice(2). */
+ if (nicelevel != 0)
{
- if (nice(nicelevel) == -1)
+ static gmx_bool nice_set = FALSE; /* only set it once */
+ static tMPI_Thread_mutex_t init_mutex = TMPI_THREAD_MUTEX_INITIALIZER;
+ tMPI_Thread_mutex_lock(&init_mutex);
+ if (!nice_set)
{
- /* Do nothing, but use the return value to avoid warnings. */
+ if (nice(nicelevel) == -1)
+ {
+ /* Do nothing, but use the return value to avoid warnings. */
+ }
+ nice_set = TRUE;
}
- nice_set = TRUE;
+ tMPI_Thread_mutex_unlock(&init_mutex);
}
- tMPI_Thread_mutex_unlock(&init_mutex);
- }
#endif
#endif
- /* convert time options, must be done after printing! */
+ timeUnitManager.scaleTimeOptions(&options);
- for (i = 0; i < npall; i++)
- {
- if (all_pa[i].type == etTIME && all_pa[i].bSet)
+ /* Extract Time info from arguments */
+ // TODO: Use OptionInfo objects instead of string constants
+ if (FF(PCA_CAN_BEGIN) && options.isSet("b"))
{
- *all_pa[i].u.r *= output_env_get_time_invfactor(*oenv);
+ setTimeValue(TBEGIN, tbegin);
}
- }
-
- /* Extract Time info from arguments */
- if (FF(PCA_CAN_BEGIN) && opt2parg_bSet("-b", npall, all_pa))
- {
- setTimeValue(TBEGIN, opt2parg_real("-b", npall, all_pa));
- }
-
- if (FF(PCA_CAN_END) && opt2parg_bSet("-e", npall, all_pa))
- {
- setTimeValue(TEND, opt2parg_real("-e", npall, all_pa));
- }
-
- if (FF(PCA_CAN_DT) && opt2parg_bSet("-dt", npall, all_pa))
- {
- setTimeValue(TDELTA, opt2parg_real("-dt", npall, all_pa));
- }
-
- /* clear memory */
- sfree(all_pa);
-
- if (!FF(PCA_NOEXIT_ON_ARGS))
- {
- if (*argc > 1)
+ if (FF(PCA_CAN_END) && options.isSet("e"))
+ {
+ setTimeValue(TEND, tend);
+ }
+ if (FF(PCA_CAN_DT) && options.isSet("dt"))
{
- gmx_cmd(argv[1]);
+ setTimeValue(TDELTA, tdelta);
}
+
+ adapter.copyValues(!FF(PCA_NOT_READ_NODE));
+
+ return TRUE;
}
- return !bExit;
+ GMX_CATCH_ALL_AND_EXIT_WITH_FATAL_ERROR;
#undef FF
}
#ifndef GMX_COMMANDLINE_PARGS_H
#define GMX_COMMANDLINE_PARGS_H
-#include "../legacyheaders/types/simple.h"
#include "../legacyheaders/oenv.h"
#include "../fileio/filenm.h"
+#include "../math/vectypes.h"
+#include "../utility/basedefinitions.h"
+#include "../utility/real.h"
#ifdef __cplusplus
extern "C"
#define PCA_CAN_SET_DEFFNM (1<<10)
/** Do not raise a fatal error when invalid options are encountered. */
#define PCA_NOEXIT_ON_ARGS (1<<11)
-/** Do not print help output (used for non-master nodes). */
-#define PCA_QUIET (1<<12)
/** Default to low priority. */
#define PCA_BE_NICE (1<<13)
/** Is this node not reading: for parallel all nodes but the master */
#define PCA_NOT_READ_NODE (1<<16)
+/** Don't do any special processing for ffREAD files */
+#define PCA_DISABLE_INPUT_FILE_CHECKING (1<<17)
/*! \brief
* Parse command-line arguments.
* by \p Flags.
*
* Recognized arguments are removed from the list.
+ *
+ * For full functionality, this function needs to be used within a function
+ * that is passed to gmx_run_cmain(). It should be called as the first thing in
+ * that function. Initialization code can be executed before it, but you need
+ * to be aware that if the program is executed with -h and MPI, the code before
+ * parse_common_args() only executes on the master node.
+ *
+ * If the return value is `FALSE`, the program should return immediately (this
+ * is necessary for -h and a few other cases).
+ *
+ * \see gmx_run_cmain().
*/
gmx_bool parse_common_args(int *argc, char *argv[], unsigned long Flags,
int nfile, t_filenm fnm[], int npargs, t_pargs *pa,
class Options;
//! \cond internal
-//! \addtogroup module_onlinehelp
+//! \addtogroup module_commandline
//! \{
//! Output format for ShellCompletionWriter.
*/
#include <gtest/gtest.h>
-#include "gromacs/legacyheaders/types/simple.h"
-
#include "gromacs/commandline/cmdlinehelpcontext.h"
#include "gromacs/commandline/cmdlinehelpwriter.h"
+#include "gromacs/math/vectypes.h"
#include "gromacs/options/basicoptions.h"
#include "gromacs/options/filenameoption.h"
#include "gromacs/options/options.h"
using gmx::SelectionFileOption;
using gmx::SelectionOption;
- gmx::Options options(NULL, NULL);
+ gmx::Options options(NULL, NULL);
+ gmx::SelectionCollection selections;
+ gmx::SelectionOptionManager manager(&selections);
+ options.addManager(&manager);
options.addOption(SelectionFileOption("sf"));
options.addOption(SelectionOption("refsel").required()
.description("Reference selection option"));
options.addOption(SelectionOption("sel").required().valueCount(2)
.description("Selection option"));
- gmx::SelectionCollection selections;
- gmx::SelectionOptionManager manager(&selections);
- setManagerForSelectionOptions(&options, &manager);
options.finish();
manager.parseRequestedFromString(
"resname SOL;"
* \ingroup module_commandline
*/
// For GMX_BINARY_SUFFIX
-#ifdef HAVE_CONFIG_H
#include "config.h"
-#endif
#include <vector>
#include <string>
#include <vector>
+#include <boost/shared_ptr.hpp>
#include <gtest/gtest.h>
#include "gromacs/commandline/cmdlineprogramcontext.h"
-#include "gromacs/fileio/path.h"
#include "gromacs/utility/common.h"
-#include "gromacs/utility/uniqueptr.h"
+#include "gromacs/utility/path.h"
#include "testutils/cmdlinetest.h"
};
//! Shorthand for a smart pointer to TestExecutableEnvironment.
-typedef gmx::gmx_unique_ptr<TestExecutableEnvironment>::type
+typedef boost::shared_ptr<TestExecutableEnvironment>
TestExecutableEnvironmentPointer;
class CommandLineProgramContextTest : public ::testing::Test
void testBinaryPathSearch(const char *argv0)
{
ASSERT_TRUE(env_.get() != NULL);
- gmx::CommandLineProgramContext info(1, &argv0, move(env_));
+ gmx::CommandLineProgramContext info(1, &argv0, env_);
EXPECT_EQ(expectedExecutable_, info.fullBinaryPath());
}
void testBinaryPathSearch(const std::string &argv0)
* Currently, negative tests are not possible, because those trigger
* gmx_fatal() and terminate the whole test binary.
*
- * \todo
- * Add tests that exercise the machinery triggered by ffREAD to detect the
- * extension for certain types of files. Also some other paths in the file
- * name logic may not get tested by the current set.
- *
* \author Teemu Murtola <teemu.murtola@gmail.com>
* \ingroup module_commandline
*/
+#include "gromacs/commandline/pargs.h"
+
+#include <string>
+
#include <gtest/gtest.h>
-#include "gromacs/commandline/pargs.h"
#include "gromacs/utility/arrayref.h"
+#include "gromacs/utility/file.h"
+#include "gromacs/utility/path.h"
+#include "gromacs/utility/stringutil.h"
#include "testutils/cmdlinetest.h"
#include "testutils/testasserts.h"
+#include "testutils/testfilemanager.h"
namespace
{
class ParseCommonArgsTest : public ::testing::Test
{
public:
+ enum FileArgumentType
+ {
+ efFull,
+ efNoExtension,
+ efEmptyValue
+ };
+
ParseCommonArgsTest()
: oenv_(NULL), fileCount_(0)
{
int nfile() const { return fileCount_; }
- void parse(gmx::ConstArrayRef<const char *> cmdline,
- unsigned long flags,
- gmx::ArrayRef<t_filenm> fnm,
- gmx::ArrayRef<t_pargs> pa)
+ void parseFromArgs(unsigned long flags,
+ gmx::ArrayRef<t_filenm> fnm,
+ gmx::ArrayRef<t_pargs> pa)
{
- args_.initFromArray(cmdline);
fileCount_ = fnm.size();
bool bOk = parse_common_args(&args_.argc(), args_.argv(), flags,
fnm.size(), fnm.data(),
0, NULL, 0, NULL, &oenv_);
EXPECT_TRUE(bOk);
}
+ void parseFromArray(gmx::ConstArrayRef<const char *> cmdline,
+ unsigned long flags,
+ gmx::ArrayRef<t_filenm> fnm,
+ gmx::ArrayRef<t_pargs> pa)
+ {
+ args_.initFromArray(cmdline);
+ parseFromArgs(flags, fnm, pa);
+ }
+ std::string addFileArg(const char *name, const char *extension,
+ FileArgumentType type)
+ {
+ std::string filename(tempFiles_.getTemporaryFilePath(extension));
+ gmx::File::writeFileFromString(filename, "Dummy file");
+ if (name != NULL)
+ {
+ args_.append(name);
+ switch (type)
+ {
+ case efFull:
+ args_.append(filename);
+ break;
+ case efNoExtension:
+ args_.append(gmx::Path::stripExtension(filename));
+ break;
+ case efEmptyValue:
+ break;
+ }
+ }
+ return filename;
+ }
- CommandLine args_;
- output_env_t oenv_;
+ // This must be a member that persists until the end of the test,
+ // because string arguments are not duplicated in the output.
+ CommandLine args_;
private:
- size_t fileCount_;
+ output_env_t oenv_;
+ size_t fileCount_;
+ gmx::test::TestFileManager tempFiles_;
};
/********************************************************************
const char *const cmdline[] = {
"test", "-i1", "2", "-i2", "-3"
};
- parse(cmdline, 0, gmx::EmptyArrayRef(), pa);
+ parseFromArray(cmdline, 0, gmx::EmptyArrayRef(), pa);
EXPECT_EQ( 2, value1);
EXPECT_EQ(-3, value2);
EXPECT_EQ( 3, value3);
const char *const cmdline[] = {
"test", "-i1", "2", "-i2", "-3"
};
- parse(cmdline, 0, gmx::EmptyArrayRef(), pa);
+ parseFromArray(cmdline, 0, gmx::EmptyArrayRef(), pa);
EXPECT_EQ( 2, value1);
EXPECT_EQ(-3, value2);
EXPECT_EQ( 3, value3);
const char *const cmdline[] = {
"test", "-r1", "2", "-r2", "-.5"
};
- parse(cmdline, 0, gmx::EmptyArrayRef(), pa);
+ parseFromArray(cmdline, 0, gmx::EmptyArrayRef(), pa);
EXPECT_EQ( 2.0, value1);
EXPECT_EQ(-0.5, value2);
EXPECT_EQ( 2.5, value3);
const char *const cmdline[] = {
"test", "-s1", "", "-s2", "test"
};
- parse(cmdline, 0, gmx::EmptyArrayRef(), pa);
+ parseFromArray(cmdline, 0, gmx::EmptyArrayRef(), pa);
EXPECT_STREQ("", value1);
EXPECT_STREQ("test", value2);
EXPECT_STREQ("default", value3);
const char *const cmdline[] = {
"test", "-nob1", "-b2"
};
- parse(cmdline, 0, gmx::EmptyArrayRef(), pa);
+ parseFromArray(cmdline, 0, gmx::EmptyArrayRef(), pa);
EXPECT_FALSE(value1);
EXPECT_TRUE(value2);
EXPECT_TRUE(value3);
const char *const cmdline[] = {
"test", "-v1", "2", "1", "3", "-v2", "1"
};
- parse(cmdline, 0, gmx::EmptyArrayRef(), pa);
+ parseFromArray(cmdline, 0, gmx::EmptyArrayRef(), pa);
EXPECT_EQ(2.0, value1[XX]);
EXPECT_EQ(1.0, value1[YY]);
EXPECT_EQ(3.0, value1[ZZ]);
const char *const cmdline[] = {
"test", "-t1", "2", "-t2", "-.5"
};
- parse(cmdline, 0, gmx::EmptyArrayRef(), pa);
+ parseFromArray(cmdline, 0, gmx::EmptyArrayRef(), pa);
EXPECT_EQ( 2.0, value1);
EXPECT_EQ(-0.5, value2);
EXPECT_EQ( 2.5, value3);
const char *const cmdline[] = {
"test", "-t1", "2", "-t2", "-.5", "-tu", "ns"
};
- parse(cmdline, PCA_TIME_UNIT, gmx::EmptyArrayRef(), pa);
+ parseFromArray(cmdline, PCA_TIME_UNIT, gmx::EmptyArrayRef(), pa);
EXPECT_EQ( 2000.0, value1);
EXPECT_EQ(-500.0, value2);
EXPECT_EQ( 2.5, value3);
const char *const cmdline[] = {
"test", "-s1", "off", "-s2", "val"
};
- parse(cmdline, 0, gmx::EmptyArrayRef(), pa);
+ parseFromArray(cmdline, 0, gmx::EmptyArrayRef(), pa);
EXPECT_STREQ("off", value1[0]);
EXPECT_STREQ("value", value2[0]);
EXPECT_STREQ("default", value3[0]);
}
/********************************************************************
- * Tests for file name options
+ * Tests for file name options (output files, not dependent on file system)
*/
TEST_F(ParseCommonArgsTest, ParsesFileArgs)
{ efXVG, "-o1", "out1", ffOPTWR },
{ efXVG, "-o2", "out2", ffOPTWR },
{ efXVG, "-om", "outm", ffWRMULT },
- { efXVG, "-om2", "outm2", ffWRMULT },
+ { efXVG, "-om2", "outm2", ffWRMULT }
};
const char *const cmdline[] = {
"test", "-o1", "-o2", "test", "-om", "test1", "test2.xvg", "-om2"
};
- parse(cmdline, 0, fnm, gmx::EmptyArrayRef());
+ parseFromArray(cmdline, 0, fnm, gmx::EmptyArrayRef());
EXPECT_STREQ("out1.xvg", opt2fn_null("-o1", nfile(), fnm));
EXPECT_STREQ("test.xvg", opt2fn_null("-o2", nfile(), fnm));
char **files;
EXPECT_EQ(2, opt2fns(&files, "-om", nfile(), fnm));
- EXPECT_STREQ("test1.xvg", files[0]);
- EXPECT_STREQ("test2.xvg", files[1]);
+ EXPECT_TRUE(files != NULL);
+ if (files != NULL)
+ {
+ EXPECT_STREQ("test1.xvg", files[0]);
+ EXPECT_STREQ("test2.xvg", files[1]);
+ }
EXPECT_STREQ("outm2.xvg", opt2fn("-om2", nfile(), fnm));
done_filenms(nfile(), fnm);
}
{ efTRX, "-f2", NULL, ffOPTWR },
{ efTRX, "-f3", "trj3", ffWRITE },
{ efXVG, "-o", "out", ffWRITE },
- { efXVG, "-om", "outm", ffWRMULT },
+ { efXVG, "-om", "outm", ffWRMULT }
};
const char *const cmdline[] = {
"test"
};
- parse(cmdline, 0, fnm, gmx::EmptyArrayRef());
+ parseFromArray(cmdline, 0, fnm, gmx::EmptyArrayRef());
EXPECT_STREQ("topol.tpr", ftp2fn(efTPS, nfile(), fnm));
EXPECT_STREQ("traj.xtc", opt2fn("-f2", nfile(), fnm));
EXPECT_NULL(opt2fn_null("-f2", nfile(), fnm));
{ efTRX, "-f2", NULL, ffWRITE },
{ efTRX, "-f3", "trj3", ffWRITE },
{ efXVG, "-o", "out", ffWRITE },
- { efXVG, "-om", "outm", ffWRMULT },
+ { efXVG, "-om", "outm", ffWRMULT }
};
const char *const cmdline[] = {
"test", "-deffnm", "def", "-f2", "other", "-o"
};
- parse(cmdline, PCA_CAN_SET_DEFFNM, fnm, gmx::EmptyArrayRef());
+ parseFromArray(cmdline, PCA_CAN_SET_DEFFNM, fnm, gmx::EmptyArrayRef());
EXPECT_STREQ("def.tpr", ftp2fn(efTPS, nfile(), fnm));
EXPECT_STREQ("other.xtc", opt2fn("-f2", nfile(), fnm));
EXPECT_STREQ("def.xtc", opt2fn("-f3", nfile(), fnm));
done_filenms(nfile(), fnm);
}
+/********************************************************************
+ * Tests for file name options (input files, dependent on file system contents)
+ */
+
+TEST_F(ParseCommonArgsTest, HandlesNonExistentInputFiles)
+{
+ t_filenm fnm[] = {
+ { efTPS, "-s", NULL, ffREAD },
+ { efTRX, "-f", "trj", ffREAD },
+ { efTRX, "-f2", "trj2", ffREAD },
+ { efTRX, "-f3", "trj3", ffREAD },
+ { efTRX, "-f4", "trj4", ffREAD },
+ { efGRO, "-g", "cnf", ffREAD },
+ { efGRO, "-g2", "cnf2", ffREAD }
+ };
+ const char *const cmdline[] = {
+ "test", "-f2", "-f3", "other", "-f4", "trj.gro", "-g2", "foo"
+ };
+ parseFromArray(cmdline, PCA_DISABLE_INPUT_FILE_CHECKING, fnm, gmx::EmptyArrayRef());
+ EXPECT_STREQ("topol.tpr", ftp2fn(efTPS, nfile(), fnm));
+ EXPECT_STREQ("trj.xtc", opt2fn("-f", nfile(), fnm));
+ EXPECT_STREQ("trj2.xtc", opt2fn("-f2", nfile(), fnm));
+ EXPECT_STREQ("other.xtc", opt2fn("-f3", nfile(), fnm));
+ EXPECT_STREQ("trj.gro", opt2fn("-f4", nfile(), fnm));
+ EXPECT_STREQ("cnf.gro", opt2fn("-g", nfile(), fnm));
+ EXPECT_STREQ("foo.gro", opt2fn("-g2", nfile(), fnm));
+ done_filenms(nfile(), fnm);
+}
+
+TEST_F(ParseCommonArgsTest, HandlesNonExistentOptionalInputFiles)
+{
+ t_filenm fnm[] = {
+ { efTPS, "-s", NULL, ffOPTRD },
+ { efTRX, "-f", "trj", ffOPTRD }
+ };
+ const char *const cmdline[] = {
+ "test"
+ };
+ parseFromArray(cmdline, 0, fnm, gmx::EmptyArrayRef());
+ EXPECT_STREQ("topol.tpr", ftp2fn(efTPS, nfile(), fnm));
+ EXPECT_STREQ("trj.xtc", opt2fn("-f", nfile(), fnm));
+ done_filenms(nfile(), fnm);
+}
+
+TEST_F(ParseCommonArgsTest, HandlesCompressedFiles)
+{
+ t_filenm fnm[] = {
+ { efTRX, "-f", NULL, ffREAD },
+ { efGRO, "-g", NULL, ffREAD }
+ };
+ args_.append("test");
+ std::string expectedF = addFileArg("-f", ".pdb.gz", efFull);
+ std::string expectedG = addFileArg("-g", ".gro.Z", efFull);
+ expectedF = gmx::Path::stripExtension(expectedF);
+ expectedG = gmx::Path::stripExtension(expectedG);
+ parseFromArgs(0, fnm, gmx::EmptyArrayRef());
+ EXPECT_EQ(expectedF, opt2fn("-f", nfile(), fnm));
+ EXPECT_EQ(expectedG, opt2fn("-g", nfile(), fnm));
+ done_filenms(nfile(), fnm);
+}
+
+TEST_F(ParseCommonArgsTest, AcceptsUnknownTrajectoryExtension)
+{
+ t_filenm fnm[] = {
+ { efTRX, "-f", NULL, ffREAD }
+ };
+ args_.append("test");
+ std::string expected = addFileArg("-f", ".foo", efFull);
+ parseFromArgs(0, fnm, gmx::EmptyArrayRef());
+ EXPECT_EQ(expected, opt2fn("-f", nfile(), fnm));
+ done_filenms(nfile(), fnm);
+}
+
+TEST_F(ParseCommonArgsTest, CompletesExtensionFromExistingFile)
+{
+ t_filenm fnm[] = {
+ { efTRX, "-f1", NULL, ffREAD },
+ { efTRX, "-f2", NULL, ffREAD },
+ { efTRX, "-f3", NULL, ffREAD },
+ { efTRX, "-f4", NULL, ffREAD }
+ };
+ args_.append("test");
+ std::string expected1 = addFileArg("-f1", "1.xtc", efNoExtension);
+ std::string expected2 = addFileArg("-f2", "2.gro", efNoExtension);
+ std::string expected3 = addFileArg("-f3", "3.tng", efNoExtension);
+ std::string expected4 = addFileArg("-f4", ".gro", efEmptyValue);
+ std::string def4 = gmx::Path::stripExtension(expected4);
+ fnm[3].fn = def4.c_str();
+ parseFromArgs(0, fnm, gmx::EmptyArrayRef());
+ EXPECT_EQ(expected1, opt2fn("-f1", nfile(), fnm));
+ EXPECT_EQ(expected2, opt2fn("-f2", nfile(), fnm));
+ EXPECT_EQ(expected3, opt2fn("-f3", nfile(), fnm));
+ EXPECT_EQ(expected4, opt2fn("-f4", nfile(), fnm));
+ done_filenms(nfile(), fnm);
+}
+
+TEST_F(ParseCommonArgsTest, CompletesExtensionFromExistingFileWithDefaultFileName)
+{
+ t_filenm fnm[] = {
+ { efTRX, "-f1", NULL, ffREAD },
+ { efTPX, "-f2", "foo", ffREAD },
+ { efTRX, "-f3", NULL, ffREAD },
+ { efSTX, "-f4", NULL, ffREAD }
+ };
+ args_.append("test");
+ std::string expected1 = addFileArg("-f1", "1.trr", efNoExtension);
+ std::string expected2 = addFileArg("-f2", ".tpa", efEmptyValue);
+ std::string expected3 = addFileArg("-f3", ".trr", efEmptyValue);
+ std::string expected4 = addFileArg(NULL, ".pdb", efEmptyValue);
+ std::string deffnm = gmx::Path::stripExtension(expected3);
+ args_.append("-deffnm");
+ args_.append(deffnm);
+ parseFromArgs(PCA_CAN_SET_DEFFNM, fnm, gmx::EmptyArrayRef());
+ EXPECT_EQ(expected1, opt2fn("-f1", nfile(), fnm));
+ EXPECT_EQ(expected2, opt2fn("-f2", nfile(), fnm));
+ EXPECT_EQ(expected3, opt2fn("-f3", nfile(), fnm));
+ EXPECT_EQ(expected4, opt2fn("-f4", nfile(), fnm));
+ done_filenms(nfile(), fnm);
+}
+
/********************************************************************
* Tests for general behavior
*/
+TEST_F(ParseCommonArgsTest, HandlesNonReadNode)
+{
+ t_filenm fnm[] = {
+ { efTPS, "-s", NULL, ffREAD },
+ { efTRX, "-f", NULL, ffREAD },
+ { efTRX, "-f2", NULL, ffREAD }
+ };
+ const char *const cmdline[] = {
+ "test", "-f", "-f2", "other"
+ };
+ parseFromArray(cmdline, PCA_NOT_READ_NODE, fnm, gmx::EmptyArrayRef());
+ EXPECT_NULL(fnm[0].fns);
+ EXPECT_NULL(fnm[1].fns);
+ EXPECT_NULL(fnm[2].fns);
+ done_filenms(nfile(), fnm);
+}
+
+TEST_F(ParseCommonArgsTest, HandlesNonReadNodeWithDefaultFileName)
+{
+ t_filenm fnm[] = {
+ { efTPS, "-s", NULL, ffREAD },
+ { efTRX, "-f", NULL, ffREAD },
+ { efTRX, "-f2", NULL, ffREAD }
+ };
+ const char *const cmdline[] = {
+ "test", "-deffnm", "def", "-f", "-f2", "other"
+ };
+ parseFromArray(cmdline, PCA_CAN_SET_DEFFNM | PCA_NOT_READ_NODE, fnm, gmx::EmptyArrayRef());
+ EXPECT_NULL(fnm[0].fns);
+ EXPECT_NULL(fnm[1].fns);
+ EXPECT_NULL(fnm[2].fns);
+ done_filenms(nfile(), fnm);
+}
+
TEST_F(ParseCommonArgsTest, CanKeepUnknownArgs)
{
int ivalue = 0;
"test", "foo", "-unk", "-o1", "-unk2", "-o2", "test",
"-i", "2", "-unk3", "-b", "-unk4"
};
- parse(cmdline, PCA_NOEXIT_ON_ARGS, fnm, pa);
+ parseFromArray(cmdline, PCA_NOEXIT_ON_ARGS, fnm, pa);
EXPECT_EQ(2, ivalue);
EXPECT_TRUE(bvalue);
EXPECT_STREQ("out1.xvg", opt2fn_null("-o1", nfile(), fnm));
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdio.h>
#include <string.h>
#include "names.h"
#include "gromacs/fileio/confio.h"
#include "txtdump.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
-#include "mshift.h"
#include "mdrun.h"
#include "update.h"
-#include "physics.h"
-#include "mtop_util.h"
+#include "gromacs/topology/mtop_util.h"
#include "gromacs/essentialdynamics/edsam.h"
#include "gromacs/fileio/gmxfio.h"
-#include "xvgr.h"
+#include "gromacs/fileio/xvgr.h"
#include "gromacs/mdlib/groupcoord.h"
#include "gromacs/linearalgebra/nrjac.h"
-#include "gromacs/legacyheaders/gmx_fatal.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/utility/fatalerror.h"
/* We use the same defines as in mvdata.c here */
#define block_bc(cr, d) gmx_bcast( sizeof(d), &(d), (cr))
{
srenew(names, count);
sprintf(buf, "Vfl_%d", count);
- names[count-1] = strdup(buf);
+ names[count-1] = gmx_strdup(buf);
actual = actual->next_edi;
count++;
}
/* Keep the curr_edi pointer for the case that the next group is empty: */
last_edi = curr_edi;
/* Let's prepare to read in the next edi data set: */
+ /* cppcheck-suppress uninitvar Fixed in cppcheck 1.65 */
curr_edi = edi_read;
}
if (edi_nr == 0)
sprintf(tmp, "%c %s", EDgroupchar, value);
add_to_string_aligned(LegendStr, tmp);
sprintf(tmp2, "%s (%s)", tmp, unit);
- (*setname)[*nsets] = strdup(tmp2);
+ (*setname)[*nsets] = gmx_strdup(tmp2);
(*nsets)++;
}
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2013, by the GROMACS development team, led by
+ * Copyright (c) 2013,2014, 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.
#define GMX_ESSENTIALDYNAMICS_EDSAM_H
#include "typedefs.h"
+#include "gromacs/fileio/filenm.h"
#ifdef __cplusplus
extern "C" {
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "gromacs/fft/fft.h"
+
+#include "config.h"
+#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-#include <errno.h>
-#include "types/simple.h"
-#include "gmx_fatal.h"
-#include "gromacs/fft/fft.h"
#include "gromacs/math/gmxcomplex.h"
-
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/real.h"
/* This file contains common fft utility functions, but not
* the actual transform implementations. Check the
#include <stdio.h>
-#include "../legacyheaders/types/simple.h"
#include "../math/gmxcomplex.h"
+#include "../utility/real.h"
#ifdef __cplusplus
extern "C" {
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <algorithm>
FILE* debug = 0;
#endif
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#ifdef GMX_FFT_FFTW3
#ifndef FFT5D_H_
#define FFT5D_H_
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#ifdef NOGMX
/*#define GMX_MPI*/
* This file is part of the GROMACS molecular simulation package.
*
* Copyright (c) 1991-2003 David van der Spoel, Erik Lindahl, University of Groningen.
- * Copyright (c) 2013, by the GROMACS development team, led by
+ * Copyright (c) 2013,2014, 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.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "gromacs/fft/fft.h"
+
+#include "config.h"
+#include <errno.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
-#include <errno.h>
-#include "gromacs/fft/fft.h"
-#include "gromacs/legacyheaders/types/simple.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/real.h"
#include "external/fftpack/fftpack.h"
* This file is part of the GROMACS molecular simulation package.
*
* Copyright (c) 1991-2003 David van der Spoel, Erik Lindahl, University of Groningen.
- * Copyright (c) 2013, by the GROMACS development team, led by
+ * Copyright (c) 2013,2014, 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.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <errno.h>
#include <stdlib.h>
#include <fftw3.h>
#include "gromacs/fft/fft.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#ifdef GMX_DOUBLE
#define FFTWPREFIX(name) fftw_ ## name
* This file is part of the GROMACS molecular simulation package.
*
* Copyright (c) 1991-2003 David van der Spoel, Erik Lindahl, University of Groningen.
- * Copyright (c) 2013, by the GROMACS development team, led by
+ * Copyright (c) 2013,2014, 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.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <errno.h>
#include <stdlib.h>
#include <mkl_service.h>
#include "gromacs/fft/fft.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
/* For MKL version (<10.0), we should define MKL_LONG. */
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdlib.h>
#include <string.h>
#include "gromacs/utility/gmxmpi.h"
#include "gromacs/utility/smalloc.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "fft5d.h"
#ifndef GMX_FFT_PARALLEL_3DFFT_H
#define GMX_FFT_PARALLEL_3DFFT_H
-#include "../legacyheaders/types/nrnb.h"
-#include "../legacyheaders/types/simple.h"
#include "../math/gmxcomplex.h"
+#include "../timing/wallcycle.h"
+#include "../utility/basedefinitions.h"
#include "../utility/gmxmpi.h"
+#include "../utility/real.h"
+
#include "fft.h"
#ifdef __cplusplus
confio.h
enxio.h
filenm.h
- futil.h
gmxfio.h
matio.h
mdoutf.h
+ mtxio.h
pdbio.h
tpxio.h
trajectory_writing.h
trxio.h
xdr_datatype.h
xtcio.h
+ xvgr.h
)
gmx_install_headers(fileio ${FILEIO_PUBLIC_HEADERS})
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "confio.h"
+
+#include "config.h"
+#include <errno.h>
#include <math.h>
-#include "sysstuff.h"
+#include <stdio.h>
+
#include "typedefs.h"
-#include "gromacs/utility/smalloc.h"
-#include "sysstuff.h"
-#include <errno.h>
#include "macros.h"
-#include "gromacs/utility/cstringutil.h"
-#include "confio.h"
-#include "vec.h"
-#include "symtab.h"
-#include "futil.h"
+#include "gromacs/utility/futil.h"
#include "xdrf.h"
#include "filenm.h"
#include "pdbio.h"
#include "tpxio.h"
#include "trxio.h"
-#include "gmx_fatal.h"
#include "copyrite.h"
-#include "pbc.h"
-#include "mtop_util.h"
+#include "gromacs/topology/mtop_util.h"
#include "gmxfio.h"
+#include "gromacs/fileio/trx.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/topology/symtab.h"
+#include "gromacs/topology/topology.h"
+#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
+
#define CHAR_SHIFT 24
static int read_g96_pos(char line[], t_symtab *symtab,
if (fr->title == NULL)
{
fgets2(line, STRLEN, fp);
- fr->title = strdup(line);
+ fr->title = gmx_strdup(line);
}
bEnd = FALSE;
while (!bEnd && fgets2(line, STRLEN, fp))
gmx_fio_fclose(in);
}
+static gmx_bool gmx_one_before_eof(FILE *fp)
+{
+ char data[4];
+ gmx_bool beof;
+
+ if ((beof = fread(data, 1, 1, fp)) == 1)
+ {
+ gmx_fseek(fp, -1, SEEK_CUR);
+ }
+ return !beof;
+}
+
gmx_bool gro_next_x_or_v(FILE *status, t_trxframe *fr)
{
t_atoms atoms;
double tt;
int ndec = 0, i;
- if (gmx_eof(status))
+ if (gmx_one_before_eof(status))
{
return FALSE;
}
* This file is part of the GROMACS molecular simulation package.
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2004, The GROMACS development team,
- * Copyright (c) 2013, by the GROMACS development team, led by
+ * Copyright (c) 2001-2004, The GROMACS development team.
+ * Copyright (c) 2013,2014, 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.
#ifndef GMX_FILEIO_CONFIO_H
#define GMX_FILEIO_CONFIO_H
+#include <stdio.h>
-#include "../legacyheaders/typedefs.h"
+#include "../legacyheaders/types/simple.h"
+
+#include "trx.h"
/* For reading coordinate files it is assumed that enough memory
* has been allocated beforehand.
extern "C" {
#endif
+struct gmx_mtop_t;
+struct t_atoms;
+
int read_g96_conf(FILE *fp, const char *infile, t_trxframe *fr, char *line);
/* read a Gromos96 coordinate or trajectory file, *
* returns the number of atoms *
int gro_first_x_or_v(FILE *status, t_trxframe *fr);
/* read first/next x and/or v frame from gro file */
-void write_hconf_indexed_p(FILE *out, const char *title, t_atoms *atoms,
+void write_hconf_indexed_p(FILE *out, const char *title, struct t_atoms *atoms,
int nx, const atom_id index[], int ndec,
rvec *x, rvec *v, matrix box);
-void write_hconf_p(FILE *out, const char *title, t_atoms *atoms, int ndec,
+void write_hconf_p(FILE *out, const char *title, struct t_atoms *atoms, int ndec,
rvec *x, rvec *v, matrix box);
/* Write a Gromos file with precision ndec: number of decimal places in x,
* v has one place more. */
void write_sto_conf_indexed(const char *outfile, const char *title,
- t_atoms *atoms,
+ struct t_atoms *atoms,
rvec x[], rvec *v, int ePBC, matrix box,
atom_id nindex, atom_id index[]);
/* like write_sto_conf, but indexed */
void write_sto_conf(const char *outfile, const char *title,
- t_atoms *atoms,
+ struct t_atoms *atoms,
rvec x[], rvec *v, int ePBC, matrix box);
/* write atoms, x, v (if .gro and not NULL) and box (if not NULL)
* to an STO (.gro or .pdb) file */
void write_sto_conf_mtop(const char *outfile, const char *title,
- gmx_mtop_t *mtop,
+ struct gmx_mtop_t *mtop,
rvec x[], rvec *v, int ePBC, matrix box);
/* As write_sto_conf, but uses a gmx_mtop_t struct */
/* read the number of atoms from an STX file */
void read_stx_conf(const char *infile, char *title,
- t_atoms *atoms,
+ struct t_atoms *atoms,
rvec x[], rvec *v, int *ePBC, matrix box);
/* Read atoms, x, v and box from an STX file.
* If ePBC!=NULL return the type of pbc in *ePBC or -1 if unknown.
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "enxio.h"
+#include "config.h"
+
+#include <stdlib.h>
#include <string.h>
-#include "futil.h"
-#include "gmx_fatal.h"
-#include "gromacs/utility/smalloc.h"
-#include "gmxfio.h"
-#include "enxio.h"
-#include "vec.h"
-#include "xdrf.h"
+#include "gromacs/utility/futil.h"
#include "macros.h"
+#include "gromacs/fileio/gmxfio.h"
+#include "gromacs/fileio/xdrf.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/topology/topology.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
+
/* The source code in this file should be thread-safe.
Please keep it that way. */
{
if (sb->fval_alloc)
{
- free(sb->fval);
+ sfree(sb->fval);
sb->fval_alloc = 0;
sb->fval = NULL;
}
if (sb->dval_alloc)
{
- free(sb->dval);
+ sfree(sb->dval);
sb->dval_alloc = 0;
sb->dval = NULL;
}
if (sb->ival_alloc)
{
- free(sb->ival);
+ sfree(sb->ival);
sb->ival_alloc = 0;
sb->ival = NULL;
}
if (sb->lval_alloc)
{
- free(sb->lval);
+ sfree(sb->lval);
sb->lval_alloc = 0;
sb->lval = NULL;
}
if (sb->cval_alloc)
{
- free(sb->cval);
+ sfree(sb->cval);
sb->cval_alloc = 0;
sb->cval = NULL;
}
{
if (sb->sval[i])
{
- free(sb->sval[i]);
+ sfree(sb->sval[i]);
}
}
- free(sb->sval);
+ sfree(sb->sval);
sb->sval_alloc = 0;
sb->sval = NULL;
}
{
enxsubblock_free(&(eb->sub[i]));
}
- free(eb->sub);
+ sfree(eb->sub);
eb->nsub_alloc = 0;
eb->sub = NULL;
}
{
enxblock_free(&(fr->block[b]));
}
- free(fr->block);
+ sfree(fr->block);
}
void add_blocks_enxframe(t_enxframe *fr, int n)
}
else
{
- nm->unit = strdup("kJ/mol");
+ nm->unit = gmx_strdup("kJ/mol");
}
}
}
int i, b;
gmx_bool bRead, bOK, bOK1, bSane;
real tmp1, tmp2, rdum;
- char buf[22];
/*int d_size;*/
bOK = TRUE;
{
fprintf(stderr, "\nWARNING: there may be something wrong with energy file %s\n",
gmx_fio_getname(ef->fio));
- fprintf(stderr, "Found: step=%s, nre=%d, nblock=%d, time=%g.\n"
+ fprintf(stderr, "Found: step=%"GMX_PRId64 ", nre=%d, nblock=%d, time=%g.\n"
"Trying to skip frame expect a crash though\n",
- gmx_step_str(fr->step, buf), fr->nre, fr->nblock, fr->t);
+ fr->step, fr->nre, fr->nblock, fr->t);
}
if (bRead && fr->nre > fr->e_alloc)
{
* This file is part of the GROMACS molecular simulation package.
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2004, The GROMACS development team,
- * Copyright (c) 2013, by the GROMACS development team, led by
+ * Copyright (c) 2001-2004, The GROMACS development team.
+ * Copyright (c) 2013,2014, 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.
#ifndef GMX_FILEIO_ENXIO_H
#define GMX_FILEIO_ENXIO_H
-#include "../legacyheaders/typedefs.h"
-#include "../legacyheaders/pbc.h"
+#include "../legacyheaders/types/energy.h"
+#include "../legacyheaders/types/inputrec.h"
+#include "../legacyheaders/types/state.h"
#include "gmxfio.h"
#include "xdr_datatype.h"
extern "C" {
#endif
+struct gmx_groups_t;
+
/**************************************************************
* These are the base datatypes + functions for reading and
* writing energy files (.edr). They are either called directly
/* Reads enx_frames, memory in fr is (re)allocated if necessary */
void get_enx_state(const char *fn, real t,
- gmx_groups_t *groups, t_inputrec *ir,
+ struct gmx_groups_t *groups, t_inputrec *ir,
t_state *state);
/*
* Reads state variables from enx file fn at time t.
*/
#include "filenm.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdio.h>
-#include <stdlib.h>
#include <string.h>
-#include "futil.h"
-#include "gmx_fatal.h"
-#include "macros.h"
-#include "gromacs/utility/smalloc.h"
+#include "gromacs/legacyheaders/macros.h"
+#include "gromacs/legacyheaders/types/commrec.h"
+
+#include "gromacs/utility/basedefinitions.h"
#include "gromacs/utility/cstringutil.h"
-#include "types/simple.h"
-#include "types/commrec.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
/* XDR should be available on all platforms now,
* but we keep the possibility of turning it off...
/* Use bitflag ... */
#define IS_SET(fn) ((fn.flag & ffSET) != 0)
#define IS_OPT(fn) ((fn.flag & ffOPT) != 0)
-#define IS_MULT(fn) ((fn.flag & ffMULT) != 0)
-#define UN_SET(fn) (fn.flag = (fn.flag & ~ffSET))
-#define DO_SET(fn) (fn.flag = (fn.flag | ffSET))
enum
{
}
}
-static void check_opts(int nf, t_filenm fnm[])
+const char *ftp2defopt(int ftp)
{
- int i;
- const t_deffile *df;
-
- for (i = 0; (i < nf); i++)
+ if ((0 <= ftp) && (ftp < efNR))
{
- df = &(deffile[fnm[i].ftp]);
- if (fnm[i].opt == NULL)
- {
- if (df->defopt == NULL)
- {
- gmx_fatal(FARGS, "No default cmd-line option for %s (type %d)\n",
- deffile[fnm[i].ftp].ext, fnm[i].ftp);
- }
- else
- {
- fnm[i].opt = df->defopt;
- }
- }
+ return deffile[ftp].defopt;
+ }
+ else
+ {
+ return NULL;
}
}
return i;
}
-static void set_extension(char *buf, int ftp)
-{
- int len, extlen;
- const t_deffile *df;
-
- /* check if extension is already at end of filename */
- df = &(deffile[ftp]);
- len = strlen(buf);
- extlen = strlen(df->ext);
- if ((len <= extlen) || (gmx_strcasecmp(&(buf[len - extlen]), df->ext) != 0))
- {
- strcat(buf, df->ext);
- }
-}
-
-static void add_filenm(t_filenm *fnm, const char *filenm)
-{
- srenew(fnm->fns, fnm->nfiles+1);
- fnm->fns[fnm->nfiles] = strdup(filenm);
- fnm->nfiles++;
-}
-
-static void set_grpfnm(t_filenm *fnm, const char *name, const char *deffnm)
-{
- char buf[256], buf2[256];
- int i, type;
- gmx_bool bValidExt;
- int nopts;
- const int *ftps;
-
- nopts = deffile[fnm->ftp].ntps;
- ftps = deffile[fnm->ftp].tps;
- if ((nopts == 0) || (ftps == NULL))
- {
- gmx_fatal(FARGS, "nopts == 0 || ftps == NULL");
- }
-
- bValidExt = FALSE;
- if (name && deffnm == NULL)
- {
- strcpy(buf, name);
- /* First check whether we have a valid filename already */
- type = fn2ftp(name);
- if ((fnm->flag & ffREAD) && (fnm->ftp == efTRX))
- {
- /*if file exist don't add an extension for trajectory reading*/
- bValidExt = gmx_fexist(name);
- }
- for (i = 0; (i < nopts) && !bValidExt; i++)
- {
- if (type == ftps[i])
- {
- bValidExt = TRUE;
- }
- }
- }
- else if (deffnm != NULL)
- {
- strcpy(buf, deffnm);
- }
- else
- {
- /* No name given, set the default name */
- strcpy(buf, ftp2defnm(fnm->ftp));
- }
-
- if (!bValidExt && (fnm->flag & ffREAD))
- {
- /* for input-files only: search for filenames in the directory */
- for (i = 0; (i < nopts) && !bValidExt; i++)
- {
- type = ftps[i];
- strcpy(buf2, buf);
- set_extension(buf2, type);
- if (gmx_fexist(buf2))
- {
- bValidExt = TRUE;
- strcpy(buf, buf2);
- }
- }
- }
-
- if (!bValidExt)
- {
- /* Use the first extension type */
- set_extension(buf, ftps[0]);
- }
-
- add_filenm(fnm, buf);
-}
-
-static void set_filenm(t_filenm *fnm, const char *name, const char *deffnm,
- gmx_bool bReadNode)
-{
- /* Set the default filename, extension and option for those fields that
- * are not already set. An extension is added if not present, if fn = NULL
- * or empty, the default filename is given.
- */
- char buf[256];
- int i, len, extlen;
-
- if ((fnm->flag & ffREAD) && !bReadNode)
- {
- return;
- }
-
- if ((fnm->ftp < 0) || (fnm->ftp >= efNR))
- {
- gmx_fatal(FARGS, "file type out of range (%d)", fnm->ftp);
- }
-
- if (name)
- {
- strcpy(buf, name);
- }
- if ((fnm->flag & ffREAD) && name && gmx_fexist(name))
- {
- /* check if filename ends in .gz or .Z, if so remove that: */
- len = strlen(name);
- for (i = 0; i < NZEXT; i++)
- {
- extlen = strlen(z_ext[i]);
- if (len > extlen)
- {
- if (gmx_strcasecmp(name+len-extlen, z_ext[i]) == 0)
- {
- buf[len-extlen] = '\0';
- break;
- }
- }
- }
- }
-
- if (deffile[fnm->ftp].ntps)
- {
- set_grpfnm(fnm, name ? buf : NULL, deffnm);
- }
- else
- {
- if (name == NULL || deffnm != NULL)
- {
- if (deffnm != NULL)
- {
- strcpy(buf, deffnm);
- }
- else
- {
- strcpy(buf, ftp2defnm(fnm->ftp));
- }
- }
- set_extension(buf, fnm->ftp);
-
- add_filenm(fnm, buf);
- }
-}
-
-static void set_filenms(int nf, t_filenm fnm[], const char *deffnm, gmx_bool bReadNode)
-{
- int i;
-
- for (i = 0; (i < nf); i++)
- {
- if (!IS_SET(fnm[i]))
- {
- set_filenm(&(fnm[i]), fnm[i].fn, deffnm, bReadNode);
- }
- }
-}
-
-void parse_file_args(int *argc, char *argv[], int nf, t_filenm fnm[],
- const char *deffnm, gmx_bool bReadNode)
-{
- int i, j;
- gmx_bool *bRemove;
-
- check_opts(nf, fnm);
-
- for (i = 0; (i < nf); i++)
- {
- UN_SET(fnm[i]);
- }
-
- if (*argc > 1)
- {
- snew(bRemove, (*argc)+1);
- i = 1;
- do
- {
- for (j = 0; (j < nf); j++)
- {
- if (strcmp(argv[i], fnm[j].opt) == 0)
- {
- DO_SET(fnm[j]);
- bRemove[i] = TRUE;
- i++;
- /* check if we are out of arguments for this option */
- if ((i >= *argc) || (argv[i][0] == '-'))
- {
- set_filenm(&fnm[j], fnm[j].fn, deffnm, bReadNode);
- }
- /* sweep up all file arguments for this option */
- while ((i < *argc) && (argv[i][0] != '-'))
- {
- set_filenm(&fnm[j], argv[i], NULL, bReadNode);
- bRemove[i] = TRUE;
- i++;
- /* only repeat for 'multiple' file options: */
- if (!IS_MULT(fnm[j]))
- {
- break;
- }
- }
-
- break; /* jump out of 'j' loop */
- }
- }
- /* No file found corresponding to option argv[i] */
- if (j == nf)
- {
- i++;
- }
- }
- while (i < *argc);
-
- /* Remove used entries */
- for (i = j = 0; (i <= *argc); i++)
- {
- if (!bRemove[i])
- {
- argv[j++] = argv[i];
- }
- }
- (*argc) = j - 1;
- sfree(bRemove);
- }
-
- set_filenms(nf, fnm, deffnm, bReadNode);
-
-}
-
const char *opt2fn(const char *opt, int nfile, const t_filenm fnm[])
{
int i;
extpos = strrchr(buf, '.');
*extpos = '\0';
sprintf(newname, "%s%s.%s", buf, suffix, extpos + 1);
- free(fnm[i].fns[j]);
- fnm[i].fns[j] = strdup(newname);
+ sfree(fnm[i].fns[j]);
+ fnm[i].fns[j] = gmx_strdup(newname);
}
}
}
ret[i] = tfn[i]; /* just directly copy all non-string fields */
if (tfn[i].opt)
{
- ret[i].opt = strdup(tfn[i].opt);
+ ret[i].opt = gmx_strdup(tfn[i].opt);
}
else
{
if (tfn[i].fn)
{
- ret[i].fn = strdup(tfn[i].fn);
+ ret[i].fn = gmx_strdup(tfn[i].fn);
}
else
{
snew(ret[i].fns, tfn[i].nfiles);
for (j = 0; j < tfn[i].nfiles; j++)
{
- ret[i].fns[j] = strdup(tfn[i].fns[j]);
+ ret[i].fns[j] = gmx_strdup(tfn[i].fns[j]);
}
}
}
#ifndef GMX_FILEIO_FILENM_H
#define GMX_FILEIO_FILENM_H
-#include "../legacyheaders/typedefs.h"
+#include "../legacyheaders/types/commrec_fwd.h"
+#include "../utility/basedefinitions.h"
#ifdef __cplusplus
extern "C" {
const char *ftp2defnm(int ftp);
/* Return default file name for file type */
+const char *ftp2defopt(int ftp);
+/* Return default option name for file type */
+
const char *ftp2ftype(int ftp);
/* Return Binary or ASCII depending on file type */
-void parse_file_args(int *argc, char *argv[], int nf, t_filenm fnm[],
- const char *deffnm, gmx_bool bReadNode);
-/* Parse command line for file names. When bKeep is set args are
- * not removed from argv. */
-
const char *opt2fn(const char *opt, int nfile, const t_filenm fnm[]);
/* Return the filename belonging to cmd-line option opt, or NULL when
* no such option. */
+++ /dev/null
-/*
- * This file is part of the GROMACS molecular simulation package.
- *
- * 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
- * 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.
- *
- * GROMACS is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1
- * of the License, or (at your option) any later version.
- *
- * GROMACS is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with GROMACS; if not, see
- * http://www.gnu.org/licenses, or write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * If you want to redistribute modifications to GROMACS, 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 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.
- */
-
-#ifndef GMX_FILEIO_FUTIL_H
-#define GMX_FILEIO_FUTIL_H
-
-#include <stdio.h>
-#include "../legacyheaders/typedefs.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-/* Native windows uses backslash path separators.
- * Cygwin and everybody else in the world use slash.
- */
-#include "../utility/gmx_header_config.h"
-#ifdef GMX_NATIVE_WINDOWS
-#define DIR_SEPARATOR '\\'
-#else
-#define DIR_SEPARATOR '/'
-#endif
-
-/* Now get the maximum path size. */
-#ifdef PATH_MAX
-# define GMX_PATH_MAX PATH_MAX
-#elif defined MAX_PATH
-# define GMX_PATH_MAX MAX_PATH
-#else
-# define GMX_PATH_MAX 4096
-#endif
-
-typedef gmx_int64_t gmx_off_t;
-
-void no_buffers(void);
-/* Turn off buffering of files (which is default) for debugging purposes */
-
-gmx_bool gmx_fexist(const char *fname);
-/* Return TRUE when fname exists, FALSE otherwise */
-
-gmx_bool gmx_fexist_master(const char *fname, t_commrec *cr);
-/* Return TRUE when fname exists, FALSE otherwise, bcast from master to others */
-
-gmx_bool gmx_eof(FILE *fp);
-/* Return TRUE on end-of-file, FALSE otherwise */
-
-gmx_bool is_pipe(FILE *fp);
-/* Check whether the file (opened by gmx_ffopen) is a pipe */
-
-/* Make a backup of file if necessary.
- Return false if there was a problem.
- */
-gmx_bool make_backup(const char * file);
-
-FILE *gmx_ffopen(const char *file, const char *mode);
-/* Return a valid file pointer when successful, exits otherwise
- * If the file is in compressed format, open a pipe which uncompresses
- * the file! Therefore, files must be closed with gmx_ffclose (see below)
- */
-
-int gmx_ffclose(FILE *fp);
-/* Close files or pipes */
-
-
-void frewind(FILE *fp);
-/* Does not rewind pipes, but does so for normal files */
-
-#define rewind frewind
-
-
-int gmx_fseek(FILE *stream, gmx_off_t offset, int whence);
-/* OS-independent fseek. 64-bit when available */
-
-gmx_off_t gmx_ftell(FILE *stream);
-/* OS-independent fseek. 64-bit when available. */
-
-
-gmx_bool is_pipe(FILE *fp);
-
-char *gmxlibfn(const char *file);
-/* allocates and returns a string with the full file name for a library file */
-
-FILE *libopen(const char *file);
-/* Open a library file for reading. This looks in the current directory
- * first, and then in the library directory. If the file is not found,
- * it terminates with a fatal_error
- */
-
-/* Opaque data type to list directories */
-typedef struct gmx_directory *
- gmx_directory_t;
-
-/* Open a directory for reading. The first argument should be a pointer
- * to a declared gmx_directory_t variable. Returns 0 on success.
- */
-int
-gmx_directory_open(gmx_directory_t *p_gmxdir, const char *dirname);
-
-
-/* Given an initialized gmx_directory_t, if there are more files in
- * the directory this routine returns 0 and write the next name
- * into the USER-PROVIDED buffer name. The last argument is the max
- * number of characters that will be written. Just as strncpy, the
- * string will NOT be terminated it it is longer than maxlength_name.
- */
-int
-gmx_directory_nextfile(gmx_directory_t gmxdir, char *name, int maxlength_name);
-
-/* Release all data for a directory structure */
-int
-gmx_directory_close(gmx_directory_t gmxdir);
-
-
-char *low_gmxlibfn(const char *file, gmx_bool bAddCWD, gmx_bool bFatal);
-
-FILE *low_libopen(const char *file, gmx_bool bFatal);
-/* The same as the above, but does not terminate if (!bFatal) */
-
-/* Create unique name for temp file (wrapper around mkstemp).
- * Buf should be at least 7 bytes long
- */
-void gmx_tmpnam(char *buf);
-
-/* truncte the file to the specified length */
-int gmx_truncatefile(char *path, gmx_off_t length);
-
-/* rename/move the file (atomically, if the OS makes that available) oldname
- to newname */
-int gmx_file_rename(const char *oldname, const char *newname);
-
-/* copy the file (data only) oldname to newname. if copy_if_empty==FALSE,
- the file won't be copied if it's empty.*/
-int gmx_file_copy(const char *oldname, const char *newname, gmx_bool copy_if_empty);
-
-/* do an fsync() on an open file pointer.
- Only use this during checkpointing! */
-int gmx_fsync(FILE *fp);
-
-void gmx_chdir(const char *directory);
-void gmx_getcwd(char *buffer, size_t size);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* GMX_FILEIO_FUTIL_H */
* This file is part of the GROMACS molecular simulation package.
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2004, The GROMACS development team,
- * Copyright (c) 2013, by the GROMACS development team, led by
+ * Copyright (c) 2001-2004, The GROMACS development team.
+ * Copyright (c) 2013,2014, 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.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#ifdef GMX_INTERNAL_XDR
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <errno.h>
#include <stdio.h>
#include "thread_mpi/threads.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "macros.h"
#include "gromacs/utility/smalloc.h"
-#include "futil.h"
+#include "gromacs/utility/futil.h"
#include "filenm.h"
#include "gromacs/utility/cstringutil.h"
#include "gmxfio.h"
if (fn)
{
fio->iFTP = fn2ftp(fn);
- fio->fn = strdup(fn);
+ fio->fn = gmx_strdup(fn);
fio->bStdio = FALSE;
/* If this file type is in the list of XDR files, open it like that */
/* Use stdin/stdout for I/O */
fio->iFTP = efTPA;
fio->fp = bRead ? stdin : stdout;
- fio->fn = strdup("STDIO");
+ fio->fn = gmx_strdup("STDIO");
fio->bStdio = TRUE;
}
fio->bRead = bRead;
* This file is part of the GROMACS molecular simulation package.
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2004, The GROMACS development team,
- * Copyright (c) 2013, by the GROMACS development team, led by
+ * Copyright (c) 2001-2004, The GROMACS development team.
+ * Copyright (c) 2013,2014, 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.
#define GMX_FILEIO_GMXFIO_H
#include <stdio.h>
-#include "../legacyheaders/typedefs.h"
-#include "futil.h"
+
+#include "../utility/cstringutil.h"
+#include "../utility/futil.h"
+#include "../utility/real.h"
+#include "../math/vectypes.h"
#ifdef __cplusplus
extern "C" {
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <ctype.h>
#include <errno.h>
#include <io.h>
#endif
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "macros.h"
#include "gromacs/utility/smalloc.h"
-#include "futil.h"
+#include "gromacs/utility/futil.h"
#include "filenm.h"
#include "gromacs/utility/cstringutil.h"
#include "gmxfio.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <errno.h>
#include <stdio.h>
#include "macros.h"
#include "gromacs/utility/smalloc.h"
-#include "futil.h"
+#include "gromacs/utility/futil.h"
#include "filenm.h"
#include "gmxfio.h"
#include "md5.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdio.h>
#include <errno.h>
#include "macros.h"
#include "gromacs/utility/smalloc.h"
-#include "futil.h"
+#include "gromacs/utility/futil.h"
#include "filenm.h"
#include "gmxfio.h"
#include "md5.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <errno.h>
#include <stdio.h>
#include <io.h>
#endif
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "macros.h"
#include "gromacs/utility/smalloc.h"
-#include "futil.h"
+#include "gromacs/utility/futil.h"
#include "filenm.h"
#include "gmxfio.h"
#include "md5.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <limits.h>
#include <math.h>
#include "xdrf.h"
#include "xdr_datatype.h"
-#include "futil.h"
+#include "gromacs/utility/futil.h"
/* This is just for clarity - it can never be anything but 4! */
#define XDR_INT_SIZE 4
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "matio.h"
+
+#include "config.h"
-#include <stdio.h>
#include <ctype.h>
+#include <stdio.h>
#include <algorithm>
-#include "sysstuff.h"
-#include "futil.h"
-#include "gromacs/utility/cstringutil.h"
-#include "macros.h"
-#include "gromacs/utility/smalloc.h"
-#include "gmx_fatal.h"
-#include "matio.h"
-#include "gmxfio.h"
+#include "gromacs/fileio/gmxfio.h"
+#include "gromacs/legacyheaders/copyrite.h"
#include "gromacs/math/utilities.h"
-#include "copyrite.h"
-
+#include "gromacs/utility/cstringutil.h"
#include "gromacs/utility/exceptions.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/utility/programcontext.h"
+#include "gromacs/utility/smalloc.h"
#define round(a) (int)(a+0.5)
*m = NULL;
}
-void clear_matrix(int nx, int ny, real **m)
-{
- int x, y;
-
- for (x = 0; x < nx; x++)
- {
- for (y = 0; y < ny; y++)
- {
- m[x][y] = 0;
- }
- }
-}
-
gmx_bool matelmt_cmp(t_xpmelmt e1, t_xpmelmt e2)
{
return (e1.c1 == e2.c1) && (e1.c2 == e2.c2);
sscanf(line, "%s%s%lf%lf%lf", code, desc, &r, &g, &b);
m[i].code.c1 = code[0];
m[i].code.c2 = 0;
- m[i].desc = strdup(desc);
+ m[i].desc = gmx_strdup(desc);
m[i].rgb.r = r;
m[i].rgb.g = g;
m[i].rgb.b = b;
in = libopen(fn);
n = getcmap(in, fn, map);
- gmx_fio_fclose(in);
+ gmx_ffclose(in);
return n;
}
return fg;
}
-void skipstr(char *line)
+static void skipstr(char *line)
{
int i, c;
line[c-i] = '\0';
}
-char *line2string(char **line)
+static char *line2string(char **line)
{
int i;
return *line;
}
-void parsestring(char *line, const char *label, char *string)
+static void parsestring(char *line, const char *label, char *string)
{
if (strstr(line, label))
{
}
}
-void read_xpm_entry(FILE *in, t_matrix *mm)
+static void read_xpm_entry(FILE *in, t_matrix *mm)
{
t_mapping *map;
char *line_buf = NULL, *line = NULL, *str, buf[256] = {0};
line = strchr(line, '\"');
line++;
line2string(&line);
- map[m].desc = strdup(line);
+ map[m].desc = gmx_strdup(line);
m++;
}
}
sfree(line_buf);
}
-int read_xpm_matrix(const char *fnm, t_matrix **matrix)
+int read_xpm_matrix(const char *fnm, t_matrix **mat)
{
FILE *in;
char *line = NULL;
{
if (strstr(line, "/* XPM */"))
{
- srenew(*matrix, nmat+1);
- read_xpm_entry(in, &(*matrix)[nmat]);
+ srenew(*mat, nmat+1);
+ read_xpm_entry(in, &(*mat)[nmat]);
nmat++;
}
}
return nmat;
}
-real **matrix2real(t_matrix *matrix, real **mat)
+real **matrix2real(t_matrix *in, real **out)
{
t_mapping *map;
double tmp;
real *rmap;
int i, j, nmap;
- nmap = matrix->nmap;
- map = matrix->map;
+ nmap = in->nmap;
+ map = in->map;
snew(rmap, nmap);
for (i = 0; i < nmap; i++)
rmap[i] = tmp;
}
- if (mat == NULL)
+ if (out == NULL)
{
- snew(mat, matrix->nx);
- for (i = 0; i < matrix->nx; i++)
+ snew(out, in->nx);
+ for (i = 0; i < in->nx; i++)
{
- snew(mat[i], matrix->ny);
+ snew(out[i], in->ny);
}
}
- for (i = 0; i < matrix->nx; i++)
+ for (i = 0; i < in->nx; i++)
{
- for (j = 0; j < matrix->ny; j++)
+ for (j = 0; j < in->ny; j++)
{
- mat[i][j] = rmap[matrix->matrix[i][j]];
+ out[i][j] = rmap[in->matrix[i][j]];
}
}
sfree(rmap);
fprintf(stderr, "Converted a %dx%d matrix with %d levels to reals\n",
- matrix->nx, matrix->ny, nmap);
+ in->nx, in->ny, nmap);
- return mat;
+ return out;
}
-void write_xpm_header(FILE *out,
- const char *title, const char *legend,
- const char *label_x, const char *label_y,
- gmx_bool bDiscrete)
+static void write_xpm_header(FILE *out,
+ const char *title, const char *legend,
+ const char *label_x, const char *label_y,
+ gmx_bool bDiscrete)
{
fprintf(out, "/* XPM */\n");
try
nlevels-1);
}
-void write_xpm_map3(FILE *out, int n_x, int n_y, int *nlevels,
- real lo, real mid, real hi,
- t_rgb rlo, t_rgb rmid, t_rgb rhi)
+static void write_xpm_map3(FILE *out, int n_x, int n_y, int *nlevels,
+ real lo, real mid, real hi,
+ t_rgb rlo, t_rgb rmid, t_rgb rhi)
{
int i, nmid;
real r, g, b, clev_lo, clev_hi;
-void write_xpm_map_split(FILE *out, int n_x, int n_y,
- int *nlevel_top, real lo_top, real hi_top,
- t_rgb rlo_top, t_rgb rhi_top,
- gmx_bool bDiscreteColor,
- int *nlevel_bot, real lo_bot, real hi_bot,
- t_rgb rlo_bot, t_rgb rhi_bot)
+static void write_xpm_map_split(FILE *out, int n_x, int n_y,
+ int *nlevel_top, real lo_top, real hi_top,
+ t_rgb rlo_top, t_rgb rhi_top,
+ gmx_bool bDiscreteColor,
+ int *nlevel_bot, real lo_bot, real hi_bot,
+ t_rgb rlo_bot, t_rgb rhi_bot)
{
int ntot;
}
-void write_xpm_map(FILE *out, int n_x, int n_y, int *nlevels, real lo, real hi,
- t_rgb rlo, t_rgb rhi)
+static void write_xpm_map(FILE *out, int n_x, int n_y, int *nlevels,
+ real lo, real hi, t_rgb rlo, t_rgb rhi)
{
int i, nlo;
real invlevel, r, g, b;
}
}
-void write_xpm_axis(FILE *out, const char *axis, gmx_bool bSpatial, int n,
- real *label)
+static void write_xpm_axis(FILE *out, const char *axis, gmx_bool bSpatial,
+ int n, real *label)
{
int i;
}
}
-void write_xpm_data(FILE *out, int n_x, int n_y, real **matrix,
- real lo, real hi, int nlevels)
+static void write_xpm_data(FILE *out, int n_x, int n_y, real **mat,
+ real lo, real hi, int nlevels)
{
int i, j, c;
real invlevel;
fprintf(out, "\"");
for (i = 0; (i < n_x); i++)
{
- c = gmx_nint((matrix[i][j]-lo)*invlevel);
+ c = gmx_nint((mat[i][j]-lo)*invlevel);
if (c < 0)
{
c = 0;
}
}
-void write_xpm_data3(FILE *out, int n_x, int n_y, real **matrix,
- real lo, real mid, real hi, int nlevels)
+static void write_xpm_data3(FILE *out, int n_x, int n_y, real **mat,
+ real lo, real mid, real hi, int nlevels)
{
int i, j, c = 0, nmid;
real invlev_lo, invlev_hi;
fprintf(out, "\"");
for (i = 0; (i < n_x); i++)
{
- if (matrix[i][j] >= mid)
+ if (mat[i][j] >= mid)
{
- c = nmid+gmx_nint((matrix[i][j]-mid)*invlev_hi);
+ c = nmid+gmx_nint((mat[i][j]-mid)*invlev_hi);
}
- else if (matrix[i][j] >= lo)
+ else if (mat[i][j] >= lo)
{
- c = gmx_nint((matrix[i][j]-lo)*invlev_lo);
+ c = gmx_nint((mat[i][j]-lo)*invlev_lo);
}
else
{
}
}
-void write_xpm_data_split(FILE *out, int n_x, int n_y, real **matrix,
- real lo_top, real hi_top, int nlevel_top,
- real lo_bot, real hi_bot, int nlevel_bot)
+static void write_xpm_data_split(FILE *out, int n_x, int n_y, real **mat,
+ real lo_top, real hi_top, int nlevel_top,
+ real lo_bot, real hi_bot, int nlevel_bot)
{
int i, j, c;
real invlev_top, invlev_bot;
{
if (i < j)
{
- c = nlevel_bot+round((matrix[i][j]-lo_top)*invlev_top);
+ c = nlevel_bot+round((mat[i][j]-lo_top)*invlev_top);
if ((c < nlevel_bot) || (c >= nlevel_bot+nlevel_top))
{
- gmx_fatal(FARGS, "Range checking i = %d, j = %d, c = %d, bot = %d, top = %d matrix[i,j] = %f", i, j, c, nlevel_bot, nlevel_top, matrix[i][j]);
+ gmx_fatal(FARGS, "Range checking i = %d, j = %d, c = %d, bot = %d, top = %d matrix[i,j] = %f", i, j, c, nlevel_bot, nlevel_top, mat[i][j]);
}
}
else if (i > j)
{
- c = round((matrix[i][j]-lo_bot)*invlev_bot);
+ c = round((mat[i][j]-lo_bot)*invlev_bot);
if ((c < 0) || (c >= nlevel_bot+nlevel_bot))
{
- gmx_fatal(FARGS, "Range checking i = %d, j = %d, c = %d, bot = %d, top = %d matrix[i,j] = %f", i, j, c, nlevel_bot, nlevel_top, matrix[i][j]);
+ gmx_fatal(FARGS, "Range checking i = %d, j = %d, c = %d, bot = %d, top = %d matrix[i,j] = %f", i, j, c, nlevel_bot, nlevel_top, mat[i][j]);
}
}
else
const char *title, const char *legend,
const char *label_x, const char *label_y,
int n_x, int n_y, real axis_x[], real axis_y[],
- real *matrix[], real lo, real mid, real hi,
+ real *mat[], real lo, real mid, real hi,
t_rgb rlo, t_rgb rmid, t_rgb rhi, int *nlevels)
{
/* See write_xpm.
write_xpm_map3(out, n_x, n_y, nlevels, lo, mid, hi, rlo, rmid, rhi);
write_xpm_axis(out, "x", flags & MAT_SPATIAL_X, n_x, axis_x);
write_xpm_axis(out, "y", flags & MAT_SPATIAL_Y, n_y, axis_y);
- write_xpm_data3(out, n_x, n_y, matrix, lo, mid, hi, *nlevels);
+ write_xpm_data3(out, n_x, n_y, mat, lo, mid, hi, *nlevels);
}
void write_xpm_split(FILE *out, unsigned int flags,
const char *title, const char *legend,
const char *label_x, const char *label_y,
int n_x, int n_y, real axis_x[], real axis_y[],
- real *matrix[],
+ real *mat[],
real lo_top, real hi_top, int *nlevel_top,
t_rgb rlo_top, t_rgb rhi_top,
real lo_bot, real hi_bot, int *nlevel_bot,
bDiscreteColor, nlevel_bot, lo_bot, hi_bot, rlo_bot, rhi_bot);
write_xpm_axis(out, "x", flags & MAT_SPATIAL_X, n_x, axis_x);
write_xpm_axis(out, "y", flags & MAT_SPATIAL_Y, n_y, axis_y);
- write_xpm_data_split(out, n_x, n_y, matrix, lo_top, hi_top, *nlevel_top,
+ write_xpm_data_split(out, n_x, n_y, mat, lo_top, hi_top, *nlevel_top,
lo_bot, hi_bot, *nlevel_bot);
}
const char *title, const char *legend,
const char *label_x, const char *label_y,
int n_x, int n_y, real axis_x[], real axis_y[],
- real *matrix[], real lo, real hi,
+ real *mat[], real lo, real hi,
t_rgb rlo, t_rgb rhi, int *nlevels)
{
/* out xpm file
write_xpm_map(out, n_x, n_y, nlevels, lo, hi, rlo, rhi);
write_xpm_axis(out, "x", flags & MAT_SPATIAL_X, n_x, axis_x);
write_xpm_axis(out, "y", flags & MAT_SPATIAL_Y, n_y, axis_y);
- write_xpm_data(out, n_x, n_y, matrix, lo, hi, *nlevels);
+ write_xpm_data(out, n_x, n_y, mat, lo, hi, *nlevels);
}
* This file is part of the GROMACS molecular simulation package.
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2004, The GROMACS development team,
- * Copyright (c) 2013, by the GROMACS development team, led by
+ * Copyright (c) 2001-2004, The GROMACS development team.
+ * Copyright (c) 2013,2014, 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.
#ifndef GMX_FILEIO_MATIO_H
#define GMX_FILEIO_MATIO_H
-#include "../legacyheaders/typedefs.h"
+#include <stdio.h>
+
+#include "../legacyheaders/types/rgb.h"
+#include "../utility/basedefinitions.h"
+#include "../utility/real.h"
#ifdef __cplusplus
extern "C" {
#endif
+typedef struct {
+ char c1; /* should all be non-zero (and printable and not '"') */
+ char c2; /*
+ * should all be zero (single char color names: smaller xpm's)
+ * or should all be non-zero (double char color names: more colors)
+ */
+} t_xpmelmt;
+
+typedef short t_matelmt;
+
+typedef struct {
+ t_xpmelmt code; /* see comment for t_xpmelmt */
+ const char *desc;
+ t_rgb rgb;
+} t_mapping;
+
+#define MAT_SPATIAL_X (1<<0)
+#define MAT_SPATIAL_Y (1<<1)
+/* Defines if x and y are spatial dimensions,
+ * when not, there are n axis ticks at the middle of the elements,
+ * when set, there are n+1 axis ticks at the edges of the elements.
+ */
+
+typedef struct {
+ unsigned int flags; /* The possible flags are defined above */
+ int nx, ny;
+ int y0;
+ char title[256];
+ char legend[256];
+ char label_x[256];
+ char label_y[256];
+ gmx_bool bDiscrete;
+ real *axis_x;
+ real *axis_y;
+ t_matelmt **matrix;
+ int nmap;
+ t_mapping *map;
+} t_matrix;
+/* title matrix title
+ * legend label for the continuous legend
+ * label_x label for the x-axis
+ * label_y label for the y-axis
+ * nx, ny size of the matrix
+ * axis_x[] the x-ticklabels
+ * axis_y[] the y-ticklables
+ * *matrix[] element x,y is matrix[x][y]
+ * nmap number of color levels for the output(?)
+ */
+
gmx_bool matelmt_cmp(t_xpmelmt e1, t_xpmelmt e2);
t_matelmt searchcmap(int n, t_mapping map[], t_xpmelmt c);
void writecmap(const char *fn, int n, t_mapping map[]);
/* print mapping table to fn */
-int read_xpm_matrix(const char *fnm, t_matrix **matrix);
+int read_xpm_matrix(const char *fnm, t_matrix **mat);
/* Reads a number of matrices from .xpm file fnm and returns this number */
-real **matrix2real(t_matrix *matrix, real **mat);
+real **matrix2real(t_matrix *in, real **out);
/* Converts an matrix in a t_matrix struct to a matrix of reals
* When mat==NULL memory will be allocated
* Returns NULL when something went wrong
const char *title, const char *legend,
const char *label_x, const char *label_y,
int n_x, int n_y, real axis_x[], real axis_y[],
- real *matrix[], real lo, real mid, real hi,
+ real *mat[], real lo, real mid, real hi,
t_rgb rlo, t_rgb rmid, t_rgb rhi, int *nlevels);
/* See write_xpm.
* Writes a colormap varying as rlo -> rmid -> rhi.
const char *title, const char *legend,
const char *label_x, const char *label_y,
int n_x, int n_y, real axis_x[], real axis_y[],
- real *matrix[],
+ real *mat[],
real lo_top, real hi_top, int *nlevel_top,
t_rgb rlo_top, t_rgb rhi_top,
real lo_bot, real hi_bot, int *nlevel_bot,
const char *title, const char *legend,
const char *label_x, const char *label_y,
int n_x, int n_y, real t_x[], real t_y[],
- real *matrix[], real lo, real hi,
+ real *mat[], real lo, real hi,
t_rgb rlo, t_rgb rhi, int *nlevels);
/* out xpm file
* flags flags, defined types/matrix.h
* n_x, n_y size of the matrix
* axis_x[] the x-ticklabels (n_x or n_x+1)
* axis_y[] the y-ticklables (n_y or n_y+1)
- * *matrix[] element x,y is matrix[x][y]
+ * *mat[] element x,y is mat[x][y]
* lo output lower than lo is set to lo
* hi output higher than hi is set to hi
* rlo rgb value for level lo
void done_matrix(int nx, real ***m);
-void clear_matrix(int nx, int ny, real **m);
-
#ifdef __cplusplus
}
#endif
* the use of GMX_INTEGER_BIG_ENDIAN, and the renaming of the
* functions md5_init, md5_append and md5_finish to have a gmx_ prefix
* (to avoid name clashes). */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#ifdef GMX_INTEGER_BIG_ENDIAN
#define ARCH_IS_BIG_ENDIAN 1
#else
/* Define storage for little-endian or both types of CPUs. */
md5_word_t xbuf[16];
- /* cppcheck-suppress unassignedVariable */
const md5_word_t *X;
#endif
*/
#include "mdoutf.h"
-#include "gromacs/legacyheaders/xvgr.h"
#include "gromacs/legacyheaders/mdrun.h"
#include "gromacs/legacyheaders/types/commrec.h"
#include "gromacs/legacyheaders/mvdata.h"
#include "checkpoint.h"
#include "copyrite.h"
-#include "gromacs/legacyheaders/gmx_fatal.h"
+#include "gromacs/fileio/xvgr.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/smalloc.h"
struct gmx_mdoutf {
#define GMX_FILEIO_MDOUTF_H
#include <stdio.h>
-#include "../legacyheaders/types/simple.h"
-#include "../legacyheaders/types/topology.h"
+
#include "../legacyheaders/types/inputrec.h"
#include "../legacyheaders/types/oenv.h"
#include "../legacyheaders/network.h"
+
+#include "../math/vectypes.h"
+#include "../utility/basedefinitions.h"
#include "filenm.h"
#include "enxio.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct gmx_mtop_t;
+
typedef struct gmx_mdoutf *gmx_mdoutf_t;
/*! \brief Allocate and initialize object to manager trajectory writing output
int mdrun_flags,
const t_commrec *cr,
const t_inputrec *ir,
- gmx_mtop_t *mtop,
+ struct gmx_mtop_t *mtop,
const output_env_t oenv);
/*! \brief Getter for file pointer */
void mdoutf_write_to_trajectory_files(FILE *fplog, t_commrec *cr,
gmx_mdoutf_t of,
int mdof_flags,
- gmx_mtop_t *top_global,
+ struct gmx_mtop_t *top_global,
gmx_int64_t step, double t,
t_state *state_local, t_state *state_global,
rvec *f_local, rvec *f_global);
#define MDOF_CPT (1<<4)
#define MDOF_IMD (1<<5)
+#ifdef __cplusplus
+}
+#endif
#endif /* GMX_FILEIO_MDOUTF_H */
*/
#include "mtxio.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
/* This module provides routines to read/write sparse or full storage
* matrices from/to files. It is normally used for the Hessian matrix
* in normal mode analysis.
*/
-#include "gromacs/legacyheaders/copyrite.h"
-#include "gromacs/legacyheaders/gmx_fatal.h"
#include "gromacs/fileio/gmxfio.h"
#include "gromacs/fileio/xdrf.h"
#include "gromacs/linearalgebra/sparsematrix.h"
-
+#include "gromacs/utility/baseversion.h"
+#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/smalloc.h"
/* Just a number to identify our file type */
gmx_fio_do_int(fio, i);
/* Write generating Gromacs version */
- gmx_fio_write_string(fio, GromacsVersion());
+ gmx_fio_write_string(fio, gmx_version());
/* Write 1 for double, 0 for single precision */
if (sizeof(real) == sizeof(double))
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2012, by the GROMACS development team, led by
+ * Copyright (c) 2012,2014, 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.
* in normal mode analysis.
*/
-#ifndef GMX_LINEARALGEBRA_MTXIO_H
-#define GMX_LINEARALGEBRA_MTXIO_H
+#ifndef GMX_FILEIO_MTXIO_H
+#define GMX_FILEIO_MTXIO_H
-#include "../legacyheaders/types/simple.h"
-
-#include "sparsematrix.h"
+#include "../linearalgebra/sparsematrix.h"
+#include "../utility/real.h"
#ifdef __cplusplus
extern "C" {
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "pdbio.h"
+
+#include "config.h"
#include <ctype.h>
+#include <stdlib.h>
#include <string.h>
-#include "sysstuff.h"
+#include "gromacs/legacyheaders/copyrite.h"
+#include "gromacs/legacyheaders/types/ifunc.h"
+#include "gromacs/legacyheaders/typedefs.h"
+#include "gromacs/utility/futil.h"
+
+#include "gromacs/fileio/gmxfio.h"
+#include "gromacs/math/units.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/topology/atomprop.h"
+#include "gromacs/topology/residuetypes.h"
+#include "gromacs/topology/symtab.h"
+#include "gromacs/topology/topology.h"
#include "gromacs/utility/cstringutil.h"
-#include "vec.h"
+#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/smalloc.h"
-#include "typedefs.h"
-#include "symtab.h"
-#include "pdbio.h"
-#include "vec.h"
-#include "copyrite.h"
-#include "futil.h"
-#include "atomprop.h"
-#include "physics.h"
-#include "pbc.h"
-#include "gmxfio.h"
-
-#include "gromacs/legacyheaders/gmx_fatal.h"
typedef struct {
int ai, aj;
int nlongname = 0;
int chainnum, lastchainnum;
int lastresind, lastchainresind;
- gmx_residuetype_t rt;
+ gmx_residuetype_t*rt;
const char *p_restype;
const char *p_lastrestype;
#ifndef GMX_FILEIO_PDBIO_H
#define GMX_FILEIO_PDBIO_H
-#include "../legacyheaders/sysstuff.h"
-#include "../legacyheaders/typedefs.h"
-#include "../legacyheaders/symtab.h"
-#include "../legacyheaders/atomprop.h"
+#include <stdio.h>
+
+#include "../legacyheaders/types/simple.h"
#ifdef __cplusplus
extern "C" {
#endif
+struct gmx_atomprop;
+struct t_atoms;
+struct t_topology;
+
typedef struct gmx_conect_t *gmx_conect;
/* Enumerated type for pdb records. The other entries are ignored
* This function is fundamentally broken as far as thread-safety is concerned.
*/
-void write_pdbfile_indexed(FILE *out, const char *title, t_atoms *atoms,
+void write_pdbfile_indexed(FILE *out, const char *title, struct t_atoms *atoms,
rvec x[], int ePBC, matrix box, char chain,
int model_nr, atom_id nindex, const atom_id index[],
gmx_conect conect, gmx_bool bTerSepChains);
/* REALLY low level */
-void write_pdbfile(FILE *out, const char *title, t_atoms *atoms,
+void write_pdbfile(FILE *out, const char *title, struct t_atoms *atoms,
rvec x[], int ePBC, matrix box, char chain,
int model_nr, gmx_conect conect, gmx_bool bTerSepChains);
/* Low level pdb file writing routine.
* which may be useful for visualization purposes.
*/
-void get_pdb_atomnumber(t_atoms *atoms, gmx_atomprop_t aps);
+void get_pdb_atomnumber(struct t_atoms *atoms, struct gmx_atomprop *aps);
/* Routine to extract atomic numbers from the atom names */
int read_pdbfile(FILE *in, char *title, int *model_nr,
- t_atoms *atoms, rvec x[], int *ePBC, matrix box,
+ struct t_atoms *atoms, rvec x[], int *ePBC, matrix box,
gmx_bool bChange, gmx_conect conect);
/* Function returns number of atoms found.
* ePBC and gmx_conect structure may be NULL.
*/
void read_pdb_conf(const char *infile, char *title,
- t_atoms *atoms, rvec x[], int *ePBC, matrix box,
+ struct t_atoms *atoms, rvec x[], int *ePBC, matrix box,
gmx_bool bChange, gmx_conect conect);
/* Read a pdb file and extract ATOM and HETATM fields.
* Read a box from the CRYST1 line, return 0 box when no CRYST1 is found.
void gmx_conect_add(gmx_conect conect, int ai, int aj);
/* Add a connection between ai and aj (numbered from 0 to natom-1) */
-gmx_conect gmx_conect_generate(t_topology *top);
+gmx_conect gmx_conect_generate(struct t_topology *top);
/* Generate a conect structure from a topology */
gmx_conect gmx_conect_init(void);
*/
#include "strdb.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/smalloc.h"
#include "gromacs/utility/cstringutil.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
gmx_bool get_a_line(FILE *fp, char line[], int n)
{
#ifdef DEBUG
fprintf(stderr, "Have read: %s\n", buf);
#endif
- ptr[i] = strdup(buf);
+ ptr[i] = gmx_strdup(buf);
}
gmx_ffclose(in);
maxi += 50;
srenew(ptr, maxi);
}
- ptr[i] = strdup(buf);
+ ptr[i] = gmx_strdup(buf);
i++;
}
nstr = i;
#include <stdio.h>
-#include "../legacyheaders/types/simple.h"
+#include "../utility/basedefinitions.h"
#ifdef __cplusplus
extern "C" {
#include <gtest/gtest.h>
#include <string>
-#include "gromacs/fileio/path.h"
#include "gromacs/fileio/tngio.h"
#include "gromacs/fileio/tngio_for_tools.h"
+#include "gromacs/utility/path.h"
#include "testutils/testfilemanager.h"
*/
#include "gromacs/fileio/timecontrol.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include "thread_mpi/threads.h"
-#include "gromacs/legacyheaders/types/simple.h"
-#include "gromacs/legacyheaders/gmx_fatal.h"
+#include "gromacs/utility/basedefinitions.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/real.h"
/* The source code in this file should be thread-safe.
Please keep it that way. */
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2013, by the GROMACS development team, led by
+ * Copyright (c) 2013,2014, 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.
#ifndef GMX_FILEIO_TIMECONTROL_H
#define GMX_FILEIO_TIMECONTROL_H
-#include "gromacs/legacyheaders/types/simple.h"
+#include "gromacs/utility/basedefinitions.h"
+#include "gromacs/utility/real.h"
#ifdef __cplusplus
extern "C"
*/
#include "tngio.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#include "gromacs/legacyheaders/copyrite.h"
-#include "gromacs/legacyheaders/gmx_fatal.h"
-#include "gromacs/legacyheaders/main.h"
-#include "gromacs/legacyheaders/physics.h"
+#include "gromacs/legacyheaders/types/ifunc.h"
+
+#include "gromacs/fileio/gmxfio.h"
+#include "gromacs/math/units.h"
#include "gromacs/math/utilities.h"
+#include "gromacs/topology/topology.h"
+#include "gromacs/utility/basenetwork.h"
#include "gromacs/utility/common.h"
+#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/gmxassert.h"
#include "gromacs/utility/programcontext.h"
-#include "gmxfio.h"
static const char *modeToVerb(char mode)
{
#ifndef GMX_FILEIO_TNGIO_H
#define GMX_FILEIO_TNGIO_H
-#include "gromacs/legacyheaders/typedefs.h"
#include "tng/tng_io_fwd.h"
+#include "gromacs/legacyheaders/types/inputrec.h"
+#include "gromacs/math/vectypes.h"
+#include "gromacs/utility/real.h"
+
#ifdef __cplusplus
extern "C" {
#endif
}
#endif
+struct gmx_mtop_t;
+
/*! \brief Open a TNG trajectory file
*
* \param filename Name of file to open
* \param tng Valid handle to a TNG trajectory
* \param mtop Pointer to a topology (can be NULL)
*/
-void gmx_tng_add_mtop(tng_trajectory_t tng,
- const gmx_mtop_t *mtop);
+void gmx_tng_add_mtop(tng_trajectory_t tng,
+ const struct gmx_mtop_t *mtop);
/*! \brief Do all TNG preparation for full-precision whole-system
* trajectory writing during MD simulations.
* \param mtop Global topology
* \param ir Input settings (for writing frequencies)
*/
-void gmx_tng_prepare_md_writing(tng_trajectory_t tng,
- const gmx_mtop_t *mtop,
- const t_inputrec *ir);
+void gmx_tng_prepare_md_writing(tng_trajectory_t tng,
+ const struct gmx_mtop_t *mtop,
+ const t_inputrec *ir);
/*! \brief Set the default compression precision for TNG writing
*
* \param mtop Global topology
* \param ir Input settings (for writing frequencies)
*/
-void gmx_tng_prepare_low_prec_writing(tng_trajectory_t tng,
- const gmx_mtop_t *mtop,
- const t_inputrec *ir);
+void gmx_tng_prepare_low_prec_writing(tng_trajectory_t tng,
+ const struct gmx_mtop_t *mtop,
+ const t_inputrec *ir);
/*! \brief Write a frame to a TNG file
*
*/
#include "tngio_for_tools.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "tng/tng_io.h"
#endif
-#include "gromacs/legacyheaders/types/atoms.h"
-#include "gromacs/legacyheaders/physics.h"
-#include "gromacs/legacyheaders/gmx_fatal.h"
-
+#include "gromacs/math/units.h"
#include "gromacs/utility/common.h"
+#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/smalloc.h"
void gmx_prepare_tng_writing(const char *filename,
size = sizeof(double);
break;
default:
- size = 0; /* Just to make the compiler happy. */
gmx_incons("Illegal datatype of box shape values!");
}
for (int i = 0; i < DIM; i++)
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-
#ifndef GMX_FILEIO_TNGIO_FOR_TOOLS_H
#define GMX_FILEIO_TNGIO_FOR_TOOLS_H
-#include "gromacs/legacyheaders/typedefs.h"
+#include <stdio.h>
+
#include "tng/tng_io_fwd.h"
+#include "gromacs/legacyheaders/types/simple.h"
+#include "gromacs/utility/basedefinitions.h"
+#include "gromacs/utility/real.h"
+
#ifdef __cplusplus
extern "C" {
#endif
}
#endif
+struct gmx_mtop_t;
+struct t_trxframe;
+
/*! \brief Prepare to write TNG output from trajectory conversion tools */
void gmx_prepare_tng_writing(const char *filename,
char mode,
tng_trajectory_t *in,
tng_trajectory_t *out,
int nAtoms,
- const gmx_mtop_t *mtop,
+ const struct gmx_mtop_t *mtop,
const atom_id *index,
const char *indexGroupName);
* atoms.
*/
void gmx_write_tng_from_trxframe(tng_trajectory_t output,
- t_trxframe *frame,
+ struct t_trxframe *frame,
int natoms);
/*! \brief Creates a molecule containing only the indexed atoms and sets
/*! \brief Read the first/next TNG frame. */
gmx_bool gmx_read_next_tng_frame(tng_trajectory_t input,
- t_trxframe *fr,
+ struct t_trxframe *fr,
gmx_int64_t *requestedIds,
int numRequestedIds);
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
/* This file is completely threadsafe - keep it that way! */
+#include <stdlib.h>
#include <string.h>
-#include "sysstuff.h"
-#include "gromacs/utility/smalloc.h"
-#include "gromacs/utility/cstringutil.h"
-#include "gmx_fatal.h"
#include "macros.h"
#include "names.h"
-#include "symtab.h"
-#include "futil.h"
+#include "gromacs/utility/futil.h"
#include "filenm.h"
#include "gmxfio.h"
#include "tpxio.h"
#include "txtdump.h"
#include "confio.h"
-#include "atomprop.h"
#include "copyrite.h"
-#include "vec.h"
-#include "mtop_util.h"
+
+#include "gromacs/math/vec.h"
+#include "gromacs/topology/atomprop.h"
+#include "gromacs/topology/block.h"
+#include "gromacs/topology/mtop_util.h"
+#include "gromacs/topology/symtab.h"
+#include "gromacs/topology/topology.h"
+#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
#define TPX_TAG_RELEASE "release"
for (i = 0; (i < nr); i++)
{
gmx_fio_do_string(fio, buf);
- symbuf->buf[i] = strdup(buf);
+ symbuf->buf[i] = gmx_strdup(buf);
}
}
else
* This file is part of the GROMACS molecular simulation package.
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2004, The GROMACS development team,
- * Copyright (c) 2013, by the GROMACS development team, led by
+ * Copyright (c) 2001-2004, The GROMACS development team.
+ * Copyright (c) 2013,2014, 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.
* can also be used with the routines in gmxfio.h
*
**************************************************************/
-#include "../legacyheaders/typedefs.h"
+#include "../legacyheaders/types/inputrec.h"
+#include "../legacyheaders/types/state.h"
#include "gmxfio.h"
#ifdef __cplusplus
extern "C" {
#endif
+struct gmx_mtop_t;
+struct t_atoms;
+struct t_block;
+struct t_topology;
+
typedef struct
{
int bIr; /* Non zero if input_rec is present */
*/
void write_tpx_state(const char *fn,
- t_inputrec *ir, t_state *state, gmx_mtop_t *mtop);
+ t_inputrec *ir, t_state *state, struct gmx_mtop_t *mtop);
/* Write a file, and close it again.
* If fn == NULL, an efTPA file will be written to stdout (which
* will not be closed afterwards)
void read_tpx_state(const char *fn,
t_inputrec *ir, t_state *state, rvec *f,
- gmx_mtop_t *mtop);
+ struct gmx_mtop_t *mtop);
int read_tpx(const char *fn,
t_inputrec *ir, matrix box, int *natoms,
- rvec *x, rvec *v, rvec *f, gmx_mtop_t *mtop);
+ rvec *x, rvec *v, rvec *f, struct gmx_mtop_t *mtop);
/* Read a file, and close it again.
* If fn == NULL, an efTPA file will be read from stdin (which
* will not be closed afterwards)
int read_tpx_top(const char *fn,
t_inputrec *ir, matrix box, int *natoms,
- rvec *x, rvec *v, rvec *f, t_topology *top);
+ rvec *x, rvec *v, rvec *f, struct t_topology *top);
/* As read_tpx, but for the old t_topology struct */
gmx_bool fn2bTPX(const char *file);
/* return if *file is one of the TPX file types */
-gmx_bool read_tps_conf(const char *infile, char *title, t_topology *top,
+gmx_bool read_tps_conf(const char *infile, char *title, struct t_topology *top,
int *ePBC, rvec **x, rvec **v, matrix box, gmx_bool bMass);
/* Read title, top.atoms, x, v (if not NULL) and box from an STX file,
* memory for atoms, x and v will be allocated.
* else if bMass=TRUE, read the masses into top.atoms from the mass database.
*/
-void tpx_make_chain_identifiers(t_atoms *atoms, t_block *mols);
+void tpx_make_chain_identifiers(struct t_atoms *atoms, struct t_block *mols);
#ifdef __cplusplus
}
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include "typedefs.h"
#include "gromacs/utility/smalloc.h"
-#include "sysstuff.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "sim_util.h"
#include "mdrun.h"
#include "confio.h"
#include "trajectory_writing.h"
#include "mdoutf.h"
+#include "gromacs/legacyheaders/types/commrec.h"
#include "gromacs/timing/wallcycle.h"
void
if (bCPT)
{
(*nchkpt)++;
- bCPT = FALSE;
}
debug_gmx();
if (bLastStep && step_rel == ir->nsteps &&
#define GMX_FILEIO_TRAJECTORY_WRITING_H
#include <stdio.h>
+
+#include "../legacyheaders/types/commrec_fwd.h"
+#include "../legacyheaders/mdebin.h"
+#include "../timing/wallcycle.h"
+
#include "filenm.h"
#include "mdoutf.h"
-#include "../legacyheaders/typedefs.h"
-#include "../legacyheaders/mdebin.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
/*! \brief Wrapper routine for writing trajectories during mdrun
*
);
+#ifdef __cplusplus
+}
+#endif
+
#endif /* GMX_FILEIO_TRAJECTORY_WRITING_H */
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <string.h>
-#include "sysstuff.h"
#include "gromacs/utility/smalloc.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "txtdump.h"
#include "names.h"
-#include "futil.h"
+#include "gromacs/utility/futil.h"
#include "trnio.h"
#include "gmxfio.h"
* This file is part of the GROMACS molecular simulation package.
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2004, The GROMACS development team,
- * Copyright (c) 2013, by the GROMACS development team, led by
+ * Copyright (c) 2001-2004, The GROMACS development team.
+ * Copyright (c) 2013,2014, 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 "../legacyheaders/typedefs.h"
#include "gmxfio.h"
#ifdef __cplusplus
#ifndef GMX_FILEIO_TRX_H
#define GMX_FILEIO_TRX_H
-#include "../legacyheaders/types/atoms.h"
+#include "../math/vectypes.h"
+#include "../utility/basedefinitions.h"
+#include "../utility/real.h"
#ifdef __cplusplus
extern "C" {
#endif
+struct t_atoms;
+
typedef struct gmxvmdplugin t_gmxvmdplugin;
-typedef struct trxframe
+typedef struct t_trxframe
{
int flags; /* flags for read_first/next_frame */
int not_ok; /* integrity flags */
real lambda; /* free energy perturbation lambda */
int fep_state; /* which fep state are we in? */
gmx_bool bAtoms;
- t_atoms *atoms; /* atoms struct (natoms) */
+ struct t_atoms *atoms; /* atoms struct (natoms) */
gmx_bool bPrec;
real prec; /* precision of x, fraction of 1 nm */
gmx_bool bX;
*/
#include "trxio.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <assert.h>
#include <math.h>
-#include "sysstuff.h"
-#include "typedefs.h"
#ifdef GMX_USE_PLUGINS
#include "vmdio.h"
#endif
-#include "gromacs/utility/smalloc.h"
-#include "pbc.h"
#include "gmxfio.h"
#include "trxio.h"
#include "tpxio.h"
#include "tngio.h"
#include "tngio_for_tools.h"
#include "names.h"
-#include "vec.h"
-#include "futil.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/utility/futil.h"
#include "xtcio.h"
#include "pdbio.h"
#include "confio.h"
#include "xdrf.h"
#include "gromacs/fileio/timecontrol.h"
-#include "gromacs/legacyheaders/gmx_fatal.h"
+#include "gromacs/fileio/trx.h"
+#include "gromacs/topology/atoms.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
/* defines for frame counter output */
#define SKIP1 10
#ifndef GMX_FILEIO_TRXIO_H
#define GMX_FILEIO_TRXIO_H
-#include "../legacyheaders/typedefs.h"
-#include "filenm.h"
#include "../legacyheaders/readinp.h"
-#include "pdbio.h"
#include "../legacyheaders/oenv.h"
+
+#include "filenm.h"
#include "gmxfio.h"
+#include "pdbio.h"
#ifdef __cplusplus
extern "C" {
}
#endif
+struct gmx_mtop_t;
+struct t_atoms;
+struct t_topology;
+struct t_trxframe;
+
/* a dedicated status type contains fp, etc. */
typedef struct t_trxstatus t_trxstatus;
* 1/(nm) */
real ndec2prec(int ndec);
-void clear_trxframe(t_trxframe *fr, gmx_bool bFirst);
+void clear_trxframe(struct t_trxframe *fr, gmx_bool bFirst);
/* Set all content gmx_booleans to FALSE.
* When bFirst = TRUE, set natoms=-1, all pointers to NULL
* and all data to zero.
*/
-void set_trxframe_ePBC(t_trxframe *fr, int ePBC);
+void set_trxframe_ePBC(struct t_trxframe *fr, int ePBC);
/* Set the type of periodic boundary conditions, ePBC=-1 is not set */
int nframes_read(t_trxstatus *status);
/* Returns the number of frames read from the trajectory */
-int write_trxframe_indexed(t_trxstatus *status, t_trxframe *fr, int nind,
+int write_trxframe_indexed(t_trxstatus *status, struct t_trxframe *fr, int nind,
const atom_id *ind, gmx_conect gc);
/* Write an indexed frame to a TRX file, see write_trxframe. gc may be NULL */
-int write_trxframe(t_trxstatus *status, t_trxframe *fr, gmx_conect gc);
+int write_trxframe(t_trxstatus *status, struct t_trxframe *fr, gmx_conect gc);
/* Write a frame to a TRX file.
* Only entries for which the gmx_boolean is TRUE will be written,
* except for step, time, lambda and/or box, which may not be
* gc is important for pdb file writing only and may be NULL.
*/
-int write_trx(t_trxstatus *status, int nind, const atom_id *ind, t_atoms *atoms,
+int write_trx(t_trxstatus *status, int nind, const atom_id *ind, struct t_atoms *atoms,
int step, real time, matrix box, rvec x[], rvec *v,
gmx_conect gc);
/* Write an indexed frame to a TRX file.
* atoms can be NULL for file types which don't need atom names.
*/
-void trjtools_gmx_prepare_tng_writing(const char *filename,
- char filemode,
- t_trxstatus *in,
- t_trxstatus **out,
- const char *infile,
- const int natoms,
- const gmx_mtop_t *mtop,
- const atom_id *index,
- const char *index_group_name);
+void trjtools_gmx_prepare_tng_writing(const char *filename,
+ char filemode,
+ t_trxstatus *in,
+ t_trxstatus **out,
+ const char *infile,
+ const int natoms,
+ const struct gmx_mtop_t *mtop,
+ const atom_id *index,
+ const char *index_group_name);
/* Sets up *out for writing TNG. If *in != NULL and contains a TNG trajectory
* some data, e.g. molecule system, will be copied over from *in to *out.
* If *in == NULL a file name (infile) of a TNG file can be provided instead
* tng_trajectory_t are encapsulated, so client trajectory-writing
* code with a t_trxstatus can't just call the TNG writing
* function. */
-void write_tng_frame(t_trxstatus *status,
- t_trxframe *fr);
+void write_tng_frame(t_trxstatus *status,
+ struct t_trxframe *fr);
void close_trx(t_trxstatus *status);
/* Close trj file as opened with read_first_x, read_frist_frame
#define FRAME_NOT_OK (HEADER_NOT_OK | DATA_NOT_OK)
int read_first_frame(const output_env_t oenv, t_trxstatus **status,
- const char *fn, t_trxframe *fr, int flags);
+ const char *fn, struct t_trxframe *fr, int flags);
/* Read the first frame which is in accordance with flags, which are
* defined further up in this file.
* Returns natoms when succeeded, 0 otherwise.
*/
gmx_bool read_next_frame(const output_env_t oenv, t_trxstatus *status,
- t_trxframe *fr);
+ struct t_trxframe *fr);
/* Reads the next frame which is in accordance with fr->flags.
* Returns TRUE when succeeded, FALSE otherwise.
*/
void rewind_trj(t_trxstatus *status);
/* Rewind trj file as opened with read_first_x */
-t_topology *read_top(const char *fn, int *ePBC);
+struct t_topology *read_top(const char *fn, int *ePBC);
/* Extract a topology data structure from a topology file.
* If ePBC!=NULL *ePBC gives the pbc type.
*/
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
+#include "vmdio.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
/* Derived from PluginMgr.C and catdcd.c */
#include <windows.h>
#include <shlobj.h>
#endif
-#include "gromacs/utility/smalloc.h"
-#include "futil.h"
-#include "vmdio.h"
-
-#include "types/simple.h"
-#include "vec.h"
-#include "gmxfio.h"
+#include "gromacs/fileio/gmxfio.h"
+#include "gromacs/fileio/trx.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/utility/basedefinitions.h"
+#include "gromacs/utility/futil.h"
+#include "gromacs/utility/smalloc.h"
typedef int (*initfunc)(void);
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2009,2010,2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2009,2010,2012,2013,2014, 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.
*/
-
-#ifndef GMX_FILEIO_VMDIO_H_
-#define GMX_FILEIO_VMDIO_H_
+#ifndef GMX_FILEIO_VMDIO_H
+#define GMX_FILEIO_VMDIO_H
#include "external/vmd_molfile/molfile_plugin.h"
-#include "trx.h"
+
+#include "gromacs/utility/basedefinitions.h"
#ifdef __cplusplus
extern "C" {
#endif
+struct t_trxframe;
+
struct gmxvmdplugin
{
molfile_plugin_t *api;
gmx_bool bV;
};
-int read_first_vmd_frame(const char *fn, struct trxframe *fr);
-gmx_bool read_next_vmd_frame(struct trxframe *fr);
+int read_first_vmd_frame(const char *fn, struct t_trxframe *fr);
+gmx_bool read_next_vmd_frame(struct t_trxframe *fr);
#ifdef __cplusplus
}
#endif
-#endif /* GMX_FILEIO_VMDIO_H_ */
+#endif
*/
#include "writeps.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdio.h>
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/smalloc.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/fileio/gmxfio.h"
const char *fontnm[efontNR] = {
#define GMX_FILEIO_WRITEPS_H
#include <stdio.h>
-#include "../legacyheaders/types/matrix.h"
-#include "../legacyheaders/types/simple.h"
+
+#include "../legacyheaders/types/rgb.h"
+#include "../utility/basedefinitions.h"
+#include "../utility/real.h"
#ifdef __cplusplus
extern "C" {
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "typedefs.h"
#include "xdrf.h"
-#include "gmx_fatal.h"
+
+#include "config.h"
+
+#include "gromacs/math/vectypes.h"
+#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/smalloc.h"
int xdr_real(XDR *xdrs, real *r)
imaj = (int)imaj64;
imin = (int)imin64;
ret = xdr_int(xdrs, &imaj);
- ret = xdr_int(xdrs, &imin);
+ ret |= xdr_int(xdrs, &imin);
*i = (((gmx_int64_t)imaj << 32) | ((gmx_int64_t)imin & two_p32_m1));
* This file is part of the GROMACS molecular simulation package.
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2004, The GROMACS development team,
- * Copyright (c) 2013, by the GROMACS development team, led by
+ * Copyright (c) 2001-2004, The GROMACS development team.
+ * Copyright (c) 2013,2014, 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.
#define GMX_FILEIO_XDRF_H
#include <stdio.h>
-#include "../legacyheaders/typedefs.h"
+
+#include "gromacs/utility/basedefinitions.h"
+#include "gromacs/utility/real.h"
#ifdef __PGI /*Portland group compiler*/
#define int64_t long long
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "xtcio.h"
+
+#include "config.h"
#include <string.h>
-#include "typedefs.h"
-#include "xdrf.h"
-#include "gmxfio.h"
-#include "xtcio.h"
+
+#include "gromacs/fileio/gmxfio.h"
+#include "gromacs/fileio/xdrf.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/utility/smalloc.h"
-#include "vec.h"
-#include "futil.h"
-#include "gmx_fatal.h"
#define XTC_MAGIC 1995
* This file is part of the GROMACS molecular simulation package.
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2004, The GROMACS development team,
- * Copyright (c) 2013, by the GROMACS development team, led by
+ * Copyright (c) 2001-2004, The GROMACS development team.
+ * Copyright (c) 2013,2014, 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.
#ifndef GMX_FILEIO_XTCIO_H
#define GMX_FILEIO_XTCIO_H
-#include "../legacyheaders/typedefs.h"
+#include "../math/vectypes.h"
+#include "../utility/basedefinitions.h"
+#include "../utility/real.h"
#include "gmxfio.h"
#ifdef __cplusplus
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "gromacs/fileio/xvgr.h"
+
+#include "config.h"
#include <string.h>
#include <ctype.h>
#include <sys/time.h>
#endif
-#include "sysstuff.h"
-#include "gromacs/utility/cstringutil.h"
-#include "gromacs/fileio/futil.h"
-#include "copyrite.h"
-#include "oenv.h"
-#include "gromacs/utility/smalloc.h"
-#include "xvgr.h"
-#include "viewit.h"
-#include "vec.h"
-#include "gromacs/fileio/gmxfio.h"
+#include "gromacs/legacyheaders/copyrite.h"
+#include "gromacs/legacyheaders/oenv.h"
+#include "gromacs/fileio/gmxfio.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/utility/cstringutil.h"
#include "gromacs/utility/exceptions.h"
-#include "gmx_fatal.h"
-#include "gromacs/utility/programcontext.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/futil.h"
+#include "gromacs/utility/smalloc.h"
gmx_bool output_env_get_print_xvgr_codes(const output_env_t oenv)
{
gmx::BinaryInformationSettings settings;
settings.generatedByHeader(true);
settings.linePrefix("# ");
- gmx::printBinaryInformation(fp, gmx::getProgramContext(), settings);
+ gmx::printBinaryInformation(fp, output_env_get_program_context(oenv),
+ settings);
}
GMX_CATCH_ALL_AND_EXIT_WITH_FATAL_ERROR;
- fprintf(fp, "# %s is part of G R O M A C S:\n#\n", ShortProgram());
+ fprintf(fp, "# %s is part of G R O M A C S:\n#\n",
+ output_env_get_program_display_name(oenv));
bromacs(pukestr, 99);
fprintf(fp, "# %s\n#\n", pukestr);
fprintf(fp, "@ title \"%s\"\n", xvgrstr(title, oenv, buf, STRLEN));
ptr1 = strchr(ptr0, '"');
if (ptr1 != NULL)
{
- str = strdup(ptr0);
+ str = gmx_strdup(ptr0);
str[ptr1-ptr0] = '\0';
}
else
{
- str = strdup("");
+ str = gmx_strdup("");
}
}
else
{
- str = strdup("");
+ str = gmx_strdup("");
}
return str;
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2010, by the GROMACS development team, led by
+ * Copyright (c) 2010,2014, 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.
*/
+#ifndef GMX_FILEIO_XVGR_H
+#define GMX_FILEIO_XVGR_H
-#ifndef _xvgr_h
-#define _xvgr_h
+#include <stdio.h>
-#include "sysstuff.h"
-#include "typedefs.h"
-#include "viewit.h"
+#include "../legacyheaders/types/oenv.h"
+#include "../utility/basedefinitions.h"
+#include "../utility/real.h"
#ifdef __cplusplus
extern "C" {
}
#endif
-#endif /* _xvgr_h */
+#endif
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include <stdio.h>
#include <string.h>
-#include "physics.h"
+#include "gromacs/math/units.h"
#include "gromacs/utility/smalloc.h"
#include "macros.h"
#include "txtdump.h"
#include "bondf.h"
-#include "xvgr.h"
+#include "gromacs/fileio/xvgr.h"
#include "typedefs.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "gstat.h"
#include "gromacs/fileio/confio.h"
#include "gromacs/fileio/trxio.h"
-#include "gromacs/legacyheaders/gmx_fatal.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/utility/fatalerror.h"
void print_one(const output_env_t oenv, const char *base, const char *name,
const char *title, const char *ylabel, int nf, real time[],
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include <stdio.h>
#include "macros.h"
#include "typedefs.h"
-#include "physics.h"
#include "gromacs/utility/smalloc.h"
-#include "xvgr.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/fileio/xvgr.h"
+#include "gromacs/utility/futil.h"
#include "gstat.h"
#include "names.h"
-#include "gmx_fatal.h"
-#include "vec.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/math/vec.h"
#include "correl.h"
#define MODE(x) ((mode & (x)) == (x))
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2010,2011,2013, by the GROMACS development team, led by
+ * Copyright (c) 2010,2011,2013,2014, 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.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
+
#include <stdio.h>
-#include "types/simple.h"
-#include "gmx_fatal.h"
+
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/real.h"
/*Make range-array (Permutation identity) for sorting */
void rangeArray(int *ar, int size)
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2010,2011,2013, by the GROMACS development team, led by
+ * Copyright (c) 2010,2011,2013,2014, 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.
#ifndef _binsearch_h
#define _binsearch_h
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#ifdef __cplusplus
extern "C"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include "cmat.h"
#include "gromacs/utility/smalloc.h"
#include "macros.h"
-#include "vec.h"
-#include "xvgr.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/fileio/xvgr.h"
#include "gromacs/fileio/matio.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
t_mat *init_mat(int n1, gmx_bool b1D)
{
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdio.h>
#include <stdlib.h>
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
/* dens_filter.c
* Routines for Filters and convolutions
*/
#include "typedefs.h"
#include "dens_filter.h"
#include "gromacs/utility/smalloc.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#ifdef GMX_DOUBLE
#define EXP(x) (exp(x))
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2011,2013, by the GROMACS development team, led by
+ * Copyright (c) 2011,2013,2014, 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.
#ifndef _dens_filter_h
#define _dens_filter_h
-#include "types/simple.h"
+#include "gromacs/utility/basedefinitions.h"
+#include "gromacs/utility/real.h"
#ifdef __cplusplus
extern "C"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdlib.h>
#include <string.h>
-#include "gromacs/utility/smalloc.h"
#include "gstat.h"
-#include "gmx_fatal.h"
-#include "index.h"
+
+#include "gromacs/topology/residuetypes.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
t_dlist *mk_dlist(FILE *log,
t_atoms *atoms, int *nlist,
gmx_bool bPhi, gmx_bool bPsi, gmx_bool bChi, gmx_bool bHChi,
- int maxchi, int r0, gmx_residuetype_t rt)
+ int maxchi, int r0, gmx_residuetype_t *rt)
{
int ires, i, j, k, ii;
t_dihatms atm, prev;
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
+#include "gromacs/legacyheaders/typedefs.h"
+#include "gromacs/topology/symtab.h"
#include "gromacs/utility/smalloc.h"
-#include "gmx_fatal.h"
-#include "symtab.h"
+#include "gromacs/utility/fatalerror.h"
void replace_atom(t_topology *top, int inr, char *anm, char *resnm,
real q, real m, int type)
idef->il[i].iatoms[j] = niatoms[j];
}
idef->il[i].nr = nnr;
+ /* cppcheck-suppress uninitvar Fixed in cppcheck 1.65 */
sfree(niatoms);
}
}
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include "gromacs/utility/smalloc.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "eigio.h"
#include "gromacs/fileio/trnio.h"
#include "gromacs/fileio/tpxio.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
void read_eigenvectors(const char *file, int *natoms, gmx_bool *bFit,
rvec **xref, gmx_bool *bDMR,
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include <string.h>
#include "typedefs.h"
#include "gromacs/utility/smalloc.h"
-#include "xvgr.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/fileio/xvgr.h"
+#include "gromacs/utility/futil.h"
#include "gstat.h"
-#include "vec.h"
-#include "index.h"
+#include "gromacs/math/vec.h"
-#include "gromacs/legacyheaders/gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
const int nfp_ffn[effnNR] = { 0, 1, 2, 3, 2, 5, 7, 9, 4, 3};
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include "fitahx.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "gromacs/math/do_fit.h"
-#include "gromacs/legacyheaders/gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/smalloc.h"
static void my_calc_xcm(int nbb, atom_id bbind[], rvec x[], rvec xcm)
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
+#include <stdlib.h>
+
#include "typedefs.h"
#include "gromacs/utility/smalloc.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "geminate.h"
-#include "gromacs/legacyheaders/gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/gmxomp.h"
static void missing_code_message()
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
+#include <stdlib.h>
#include <string.h>
#include "gromacs/fileio/confio.h"
#include "copyrite.h"
-#include "gromacs/fileio/futil.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/futil.h"
+#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/smalloc.h"
#include "gromacs/utility/cstringutil.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "gromacs/statistics/statistics.h"
#include "gromacs/commandline/pargs.h"
#include "typedefs.h"
-#include "xvgr.h"
+#include "gromacs/fileio/xvgr.h"
#include "macros.h"
static const char *etitles[] = { "E-docked", "Free Energy" };
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
+
#include <math.h>
+#include <stdlib.h>
#include <string.h>
+
#include "gromacs/commandline/pargs.h"
-#include "sysstuff.h"
#include "typedefs.h"
#include "gromacs/utility/smalloc.h"
#include "macros.h"
-#include "gmx_fatal.h"
-#include "vec.h"
-#include "pbc.h"
-#include "gromacs/fileio/futil.h"
-#include "index.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/utility/futil.h"
+#include "gromacs/topology/index.h"
#include "gromacs/fileio/pdbio.h"
#include "gromacs/fileio/confio.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trxio.h"
#include "gromacs/fileio/matio.h"
-#include "mshift.h"
-#include "xvgr.h"
-#include "rmpbc.h"
+#include "gromacs/fileio/xvgr.h"
+#include "viewit.h"
+#include "gromacs/pbcutil/rmpbc.h"
#include "txtdump.h"
#include "eigio.h"
-#include "physics.h"
+#include "gromacs/math/units.h"
#include "gmx_ana.h"
#include "gromacs/math/do_fit.h"
for (v = 0; v < noutvec; v++)
{
sprintf(str, "vec %d", eignr[outvec[v]]+1);
- ylabel[v] = strdup(str);
+ ylabel[v] = gmx_strdup(str);
}
sprintf(str, "projection on eigenvectors (%s)", proj_unit);
write_xvgr_graphs(projfile, noutvec, 1, str, NULL, output_env_get_xvgr_tlabel(oenv),
init_t_atoms(&atoms, nframes, FALSE);
snew(x, nframes);
snew(b, nframes);
- atnm = strdup("C");
- resnm = strdup("PRJ");
+ atnm = gmx_strdup("C");
+ resnm = gmx_strdup("PRJ");
if (nframes > 10000)
{
{
v = outvec[g];
sprintf(str, "vec %d", eignr[v]+1);
- ylabel[g] = strdup(str);
+ ylabel[g] = gmx_strdup(str);
snew(y[g], 4);
for (s = 0; s < 4; s++)
{
gmx_fatal(FARGS, "Selected vector %d is larger than the number of eigenvalues (%d)", eignr[v]+1, neig);
}
sprintf(str, "vec %d", eignr[v]+1);
- ylabel[g] = strdup(str);
+ ylabel[g] = gmx_strdup(str);
snew(y[g], natoms);
for (i = 0; i < natoms; i++)
{
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
+
#include <math.h>
+#include <stdlib.h>
#include <string.h>
+
#include "gromacs/commandline/pargs.h"
-#include "sysstuff.h"
#include "typedefs.h"
#include "gromacs/utility/smalloc.h"
#include "macros.h"
-#include "gmx_fatal.h"
-#include "vec.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/math/vec.h"
#include "copyrite.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
#include "readinp.h"
#include "txtdump.h"
#include "gstat.h"
#include "gromacs/statistics/statistics.h"
-#include "xvgr.h"
+#include "gromacs/fileio/xvgr.h"
+#include "viewit.h"
#include "gmx_ana.h"
#include "geminate.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include <string.h>
-#include "sysstuff.h"
-#include "physics.h"
+#include "gromacs/math/units.h"
#include "typedefs.h"
#include "gromacs/utility/smalloc.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/commandline/pargs.h"
#include "copyrite.h"
-#include "vec.h"
-#include "index.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/topology/index.h"
#include "macros.h"
-#include "gmx_fatal.h"
-#include "xvgr.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/fileio/xvgr.h"
+#include "viewit.h"
#include "gstat.h"
#include "gromacs/fileio/trnio.h"
#include "gmx_ana.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
-#include <math.h>
-#include <string.h>
#include <ctype.h>
-#include <math.h>
#include <float.h>
+#include <math.h>
+#include <stdlib.h>
+#include <string.h>
-#include "sysstuff.h"
#include "typedefs.h"
#include "gromacs/utility/smalloc.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/commandline/pargs.h"
#include "macros.h"
#include "gromacs/fileio/enxio.h"
-#include "physics.h"
-#include "gmx_fatal.h"
-#include "xvgr.h"
+#include "gromacs/math/units.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/fileio/xvgr.h"
+#include "viewit.h"
#include "gmx_ana.h"
#include "gromacs/math/utilities.h"
#include "gromacs/utility/cstringutil.h"
str += sprintf(str, "dH/dl");
if (strlen(lv->lc->names[lv->dhdl]) > 0)
{
- str += sprintf(str, " (%s)", lv->lc->names[lv->dhdl]);
+ sprintf(str, " (%s)", lv->lc->names[lv->dhdl]);
}
}
}
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include <string.h>
#include "gromacs/commandline/pargs.h"
-#include "sysstuff.h"
#include "typedefs.h"
#include "gromacs/utility/smalloc.h"
#include "macros.h"
-#include "vec.h"
-#include "gromacs/fileio/futil.h"
-#include "index.h"
-#include "xvgr.h"
-#include "rmpbc.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/utility/futil.h"
+#include "gromacs/topology/index.h"
+#include "gromacs/fileio/xvgr.h"
+#include "gromacs/pbcutil/rmpbc.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trxio.h"
-#include "physics.h"
+#include "gromacs/math/units.h"
#include "gmx_ana.h"
-#include "gromacs/legacyheaders/gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#define MAX_ENDS 3
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
+#include "config.h"
+
#include <math.h>
+#include <stdio.h>
+#include <string.h>
#include "gromacs/fileio/confio.h"
#include "gromacs/fileio/pdbio.h"
-#include "gmx_fatal.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/futil.h"
#include "gstat.h"
#include "macros.h"
#include "gromacs/math/utilities.h"
-#include "physics.h"
-#include "index.h"
+#include "gromacs/math/units.h"
+#include "gromacs/topology/residuetypes.h"
#include "gromacs/utility/smalloc.h"
#include "gromacs/commandline/pargs.h"
#include "gromacs/fileio/tpxio.h"
-#include <string.h>
-#include "sysstuff.h"
#include "txtdump.h"
#include "typedefs.h"
-#include "vec.h"
-#include "xvgr.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/fileio/xvgr.h"
+#include "viewit.h"
#include "gromacs/fileio/matio.h"
#include "gmx_ana.h"
return j;
}
-static void histogramming(FILE *log, int nbin, gmx_residuetype_t rt,
+static void histogramming(FILE *log, int nbin, gmx_residuetype_t *rt,
int nf, int maxchi, real **dih,
int nlist, t_dlist dlist[],
atom_id index[],
snew(leg, NJC);
for (i = 0; (i < NKKKPHI); i++)
{
- leg[i] = strdup(kkkphi[i].name);
+ leg[i] = gmx_strdup(kkkphi[i].name);
}
for (i = 0; (i < NKKKPSI); i++)
{
- leg[i+NKKKPHI] = strdup(kkkpsi[i].name);
+ leg[i+NKKKPHI] = gmx_strdup(kkkpsi[i].name);
}
for (i = 0; (i < NKKKCHI); i++)
{
- leg[i+NKKKPHI+NKKKPSI] = strdup(kkkchi1[i].name);
+ leg[i+NKKKPHI+NKKKPSI] = gmx_strdup(kkkchi1[i].name);
}
xvgr_legend(fp, NJC, (const char**)leg, oenv);
fprintf(fp, "%5s ", "#Res.");
char *leg[edMax];
#define NLEG asize(leg)
- leg[0] = strdup("Phi");
- leg[1] = strdup("Psi");
- leg[2] = strdup("Omega");
- leg[3] = strdup("Chi1");
- leg[4] = strdup("Chi2");
- leg[5] = strdup("Chi3");
- leg[6] = strdup("Chi4");
- leg[7] = strdup("Chi5");
- leg[8] = strdup("Chi6");
+ leg[0] = gmx_strdup("Phi");
+ leg[1] = gmx_strdup("Psi");
+ leg[2] = gmx_strdup("Omega");
+ leg[3] = gmx_strdup("Chi1");
+ leg[4] = gmx_strdup("Chi2");
+ leg[5] = gmx_strdup("Chi3");
+ leg[6] = gmx_strdup("Chi4");
+ leg[7] = gmx_strdup("Chi5");
+ leg[8] = gmx_strdup("Chi6");
/* Print order parameters */
fp = xvgropen(fn, "Dihedral Rotamer Transitions", "Residue", "Transitions/ns",
for (i = 0; i < NLEG; i++)
{
- leg[i] = strdup(const_leg[i]);
+ leg[i] = gmx_strdup(const_leg[i]);
}
/* Print order parameters */
gmx_bool bDo_rt, bDo_oh, bDo_ot, bDo_jc;
real dt = 0, traj_t_ns;
output_env_t oenv;
- gmx_residuetype_t rt;
+ gmx_residuetype_t *rt;
atom_id isize, *index;
int ndih, nactdih, nf;
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
+#include <stdlib.h>
#include <string.h>
#include "macros.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trxio.h"
#include "gromacs/utility/cstringutil.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "macros.h"
-#include "index.h"
+#include "gromacs/topology/index.h"
#include "gromacs/random/random.h"
-#include "pbc.h"
-#include "rmpbc.h"
-#include "xvgr.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/pbcutil/rmpbc.h"
+#include "gromacs/fileio/xvgr.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/fileio/matio.h"
#include "cmat.h"
#include "gromacs/fileio/trnio.h"
#include "gromacs/linearalgebra/eigensolver.h"
#include "gromacs/math/do_fit.h"
-#include "gromacs/legacyheaders/gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
/* print to two file pointers at once (i.e. stderr and log) */
static gmx_inline
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
-#include "sysstuff.h"
#include "typedefs.h"
#include "macros.h"
-#include "vec.h"
-#include "pbc.h"
-#include "rmpbc.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/pbcutil/pbc.h"
#include "gromacs/commandline/pargs.h"
-#include "xvgr.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/fileio/xvgr.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trxio.h"
-#include "index.h"
+#include "gromacs/topology/index.h"
#include "gromacs/utility/smalloc.h"
-#include "calcgrid.h"
#include "nrnb.h"
-#include "physics.h"
+#include "gromacs/math/units.h"
#include "coulomb.h"
#include "pme.h"
#include "gstat.h"
#include "gromacs/fileio/matio.h"
-#include "mtop_util.h"
+#include "gromacs/topology/mtop_util.h"
#include "gmx_ana.h"
-#include "gromacs/legacyheaders/gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
static void clust_size(const char *ndx, const char *trx, const char *xpm,
const char *xpmw, const char *ncl, const char *acl,
{
index[i] = i;
}
- gname = strdup("mols");
+ gname = gmx_strdup("mols");
}
else
{
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include <string.h>
#include "gromacs/utility/smalloc.h"
#include "macros.h"
#include "typedefs.h"
-#include "xvgr.h"
#include "gromacs/commandline/pargs.h"
#include "gromacs/fileio/tpxio.h"
-#include "vec.h"
-#include "index.h"
-#include "pbc.h"
-#include "gmx_fatal.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/topology/index.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/fileio/confio.h"
#include "gromacs/fileio/pdbio.h"
#include "txtdump.h"
#include "viewit.h"
-#include "rmpbc.h"
+#include "gromacs/pbcutil/rmpbc.h"
#include "gmx_ana.h"
#include "gromacs/math/do_fit.h"
{
if (debug)
{
- fprintf(debug, "{%d %d}", *i1+bFW ? dx : dy, *i2+bFW ? dy : dx );
+ fprintf(debug, "{%d %d}", *i1 + (bFW ? dx : dy), *i2 + (bFW ? dy : dx) );
}
if (bFW)
{
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include <string.h>
#endif
#include "gromacs/commandline/pargs.h"
-#include "sysstuff.h"
#include "typedefs.h"
#include "gromacs/utility/smalloc.h"
#include "macros.h"
-#include "vec.h"
-#include "pbc.h"
-#include "gromacs/fileio/futil.h"
-#include "index.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/utility/futil.h"
+#include "gromacs/topology/index.h"
#include "gromacs/fileio/confio.h"
#include "gromacs/fileio/trnio.h"
-#include "mshift.h"
-#include "xvgr.h"
-#include "rmpbc.h"
+#include "gromacs/fileio/xvgr.h"
+#include "gromacs/pbcutil/rmpbc.h"
#include "txtdump.h"
#include "gromacs/fileio/matio.h"
#include "eigio.h"
-#include "physics.h"
#include "gmx_ana.h"
#include "gromacs/utility/cstringutil.h"
#include "gromacs/fileio/trxio.h"
#include "gromacs/linearalgebra/eigensolver.h"
#include "gromacs/math/do_fit.h"
-#include "gromacs/legacyheaders/gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
int gmx_covar(int argc, char *argv[])
{
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
+
+#include <assert.h>
+#include <stdlib.h>
#include "gromacs/commandline/pargs.h"
#include "typedefs.h"
#include "gromacs/utility/smalloc.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trxio.h"
-#include "xvgr.h"
-#include "rmpbc.h"
-#include "pbc.h"
-#include "physics.h"
-#include "index.h"
+#include "gromacs/fileio/xvgr.h"
+#include "gromacs/pbcutil/rmpbc.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/math/units.h"
+#include "gromacs/topology/index.h"
#include "gromacs/statistics/statistics.h"
#include "gmx_ana.h"
#include "macros.h"
-#include "gromacs/legacyheaders/gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#define SQR(x) (pow(x, 2.0))
#define EPSI0 (EPSILON0*E_CHARGE*E_CHARGE*AVOGADRO/(KILO*NANO)) /* EPSILON0 in SI units */
xshfr[i] = 0.0;
}
}
-
+ assert(time != NULL);
if (nfr == 0)
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <math.h>
-#include <ctype.h>
+#include "config.h"
-#include "sysstuff.h"
+#include <ctype.h>
+#include <math.h>
+#include <stdlib.h>
#include <string.h>
+
#include "gromacs/utility/cstringutil.h"
#include "typedefs.h"
-#include "gromacs/utility/smalloc.h"
#include "macros.h"
#include "gstat.h"
-#include "vec.h"
-#include "xvgr.h"
-#include "pbc.h"
-#include "gromacs/fileio/futil.h"
-#include "gromacs/commandline/pargs.h"
-#include "index.h"
+#include "viewit.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/topology/index.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trxio.h"
-#include "physics.h"
+#include "gromacs/math/units.h"
#include "gmx_ana.h"
#include "macros.h"
-#include "gromacs/legacyheaders/gmx_fatal.h"
+#include "gromacs/commandline/pargs.h"
+#include "gromacs/fileio/xvgr.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/pbcutil/rmpbc.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/futil.h"
+#include "gromacs/utility/smalloc.h"
typedef struct {
char *atomname;
gmx_fatal(FARGS, "Invalid line in datafile at line %d\n", i+1);
}
(*eltab)[i].nr_el = tempnr;
- (*eltab)[i].atomname = strdup(tempname);
+ (*eltab)[i].atomname = gmx_strdup(tempname);
}
gmx_ffclose(in);
slice = (z / (*slWidth));
}
sought.nr_el = 0;
- sought.atomname = strdup(*(top->atoms.atomname[index[n][i]]));
+ sought.atomname = gmx_strdup(*(top->atoms.atomname[index[n][i]]));
/* now find the number of electrons. This is not efficient. */
found = (t_electron *)
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include <string.h>
#include "gromacs/commandline/pargs.h"
-#include "sysstuff.h"
#include "typedefs.h"
#include "gromacs/utility/smalloc.h"
#include "macros.h"
-#include "vec.h"
-#include "pbc.h"
-#include "gromacs/fileio/futil.h"
-#include "index.h"
-#include "mshift.h"
-#include "xvgr.h"
-#include "princ.h"
-#include "rmpbc.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/utility/futil.h"
+#include "gromacs/topology/index.h"
#include "txtdump.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trxio.h"
#include "gstat.h"
#include "gromacs/fileio/matio.h"
-#include "pbc.h"
+#include "viewit.h"
#include "gmx_ana.h"
-#include "gromacs/legacyheaders/gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
int gmx_densmap(int argc, char *argv[])
{
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <ctype.h>
#include <math.h>
#include <string.h>
-#include "sysstuff.h"
#include "gromacs/utility/cstringutil.h"
#include "typedefs.h"
-#include "gromacs/utility/smalloc.h"
#include "macros.h"
#include "gstat.h"
-#include "vec.h"
-#include "xvgr.h"
-#include "pbc.h"
-#include "gromacs/fileio/futil.h"
-#include "gromacs/commandline/pargs.h"
-#include "index.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/utility/futil.h"
+#include "gromacs/topology/index.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trxio.h"
-#include "physics.h"
-#include "gromacs/fileio/matio.h"
+#include "gromacs/math/units.h"
#include "dens_filter.h"
#include "binsearch.h"
#include "powerspect.h"
#include "gmx_ana.h"
#include "copyrite.h"
+#include "gromacs/commandline/pargs.h"
+#include "gromacs/fileio/matio.h"
+#include "gromacs/fileio/xvgr.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/pbcutil/rmpbc.h"
#include "gromacs/utility/exceptions.h"
-#include "gromacs/legacyheaders/gmx_fatal.h"
-#include "gromacs/utility/programcontext.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
#ifdef GMX_DOUBLE
#define FLOOR(x) ((int) floor(x))
sfree(yticks);
}
-static void writeraw(t_interf ***int1, t_interf ***int2, int tblocks, int xbins, int ybins, char **fnms)
+static void writeraw(t_interf ***int1, t_interf ***int2, int tblocks,
+ int xbins, int ybins, char **fnms,
+ const output_env_t oenv)
{
FILE *raw1, *raw2;
int i, j, n;
gmx::BinaryInformationSettings settings;
settings.generatedByHeader(true);
settings.linePrefix("# ");
- gmx::printBinaryInformation(raw1, gmx::getProgramContext(), settings);
- gmx::printBinaryInformation(raw2, gmx::getProgramContext(), settings);
+ gmx::printBinaryInformation(raw1, output_env_get_program_context(oenv),
+ settings);
+ gmx::printBinaryInformation(raw2, output_env_get_program_context(oenv),
+ settings);
}
GMX_CATCH_ALL_AND_EXIT_WITH_FATAL_ERROR;
fprintf(raw1, "# Legend: nt nx ny\n# Xbin Ybin Z t\n");
{
gmx_fatal(FARGS, "No or not correct number (2) of output-files: %d", nfxpm);
}
- writeraw(surf1, surf2, tblock, xslices, yslices, rawfiles);
+ writeraw(surf1, surf2, tblock, xslices, yslices, rawfiles, oenv);
}
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include <stdio.h>
#include "gstat.h"
#include "gromacs/utility/smalloc.h"
#include "macros.h"
-#include "xvgr.h"
+#include "gromacs/fileio/xvgr.h"
+#include "viewit.h"
#include "correl.h"
#include "gmx_ana.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/math/gmxcomplex.h"
#include "gromacs/math/utilities.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <string.h>
#include <math.h>
#include <algorithm>
#include "macros.h"
-#include "gromacs/commandline/pargs.h"
-#include "sysstuff.h"
-#include "gromacs/utility/smalloc.h"
-#include "vec.h"
-#include "pbc.h"
+#include "gromacs/pbcutil/pbc.h"
#include "bondf.h"
-#include "gromacs/fileio/futil.h"
-#include "xvgr.h"
+#include "gromacs/utility/futil.h"
+#include "viewit.h"
#include "txtdump.h"
#include "gromacs/statistics/statistics.h"
#include "gstat.h"
-#include "index.h"
+#include "gromacs/topology/index.h"
#include "gromacs/random/random.h"
#include "names.h"
-#include "physics.h"
+#include "gromacs/math/units.h"
#include "calcmu.h"
#include "gromacs/fileio/enxio.h"
-#include "gromacs/fileio/matio.h"
#include "gmx_ana.h"
#include "copyrite.h"
#include "gromacs/fileio/trxio.h"
+#include "gromacs/commandline/pargs.h"
+#include "gromacs/fileio/matio.h"
+#include "gromacs/fileio/xvgr.h"
#include "gromacs/linearalgebra/nrjac.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/pbcutil/rmpbc.h"
#include "gromacs/utility/exceptions.h"
-#include "gromacs/legacyheaders/gmx_fatal.h"
-#include "gromacs/utility/programcontext.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
#define e2d(x) ENM2DEBYE*(x)
#define EANG2CM E_CHARGE*1.0e-10 /* e Angstrom to Coulomb meter */
gmx::BinaryInformationSettings settings;
settings.generatedByHeader(true);
settings.linePrefix("# ");
- gmx::printBinaryInformation(dip3d, gmx::getProgramContext(),
+ gmx::printBinaryInformation(dip3d, output_env_get_program_context(oenv),
settings);
}
GMX_CATCH_ALL_AND_EXIT_WITH_FATAL_ERROR;
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
+
#include <math.h>
+#include <stdlib.h>
#include <string.h>
#include "typedefs.h"
#include "macros.h"
-#include "mshift.h"
-#include "xvgr.h"
-#include "vec.h"
+#include "gromacs/pbcutil/mshift.h"
+#include "viewit.h"
#include "gromacs/fileio/confio.h"
-#include "gromacs/utility/smalloc.h"
#include "nrnb.h"
#include "disre.h"
-#include "gromacs/commandline/pargs.h"
#include "force.h"
#include "gstat.h"
#include "main.h"
#include "gromacs/fileio/pdbio.h"
-#include "index.h"
+#include "gromacs/topology/index.h"
#include "mdatoms.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trxio.h"
#include "mdrun.h"
#include "names.h"
-#include "gromacs/fileio/matio.h"
-#include "mtop_util.h"
+#include "gromacs/topology/mtop_util.h"
#include "gmx_ana.h"
+#include "gromacs/commandline/pargs.h"
+#include "gromacs/fileio/matio.h"
+#include "gromacs/fileio/xvgr.h"
#include "gromacs/math/do_fit.h"
-#include "gromacs/legacyheaders/gmx_fatal.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/pbcutil/ishift.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/pbcutil/rmpbc.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
typedef struct {
int n;
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
+
+#include <stdlib.h>
-#include "sysstuff.h"
#include "typedefs.h"
-#include "gromacs/utility/cstringutil.h"
-#include "gromacs/fileio/strdb.h"
#include "macros.h"
-#include "gromacs/utility/smalloc.h"
-#include "mshift.h"
-#include "gromacs/commandline/pargs.h"
#include "gromacs/fileio/pdbio.h"
-#include "gmx_fatal.h"
-#include "xvgr.h"
-#include "gromacs/fileio/matio.h"
-#include "index.h"
+#include "gromacs/topology/index.h"
#include "gstat.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trxio.h"
#include "viewit.h"
+#include "gromacs/commandline/pargs.h"
+#include "gromacs/fileio/matio.h"
+#include "gromacs/fileio/strdb.h"
+#include "gromacs/fileio/xvgr.h"
+#include "gromacs/pbcutil/rmpbc.h"
+#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
static int strip_dssp(char *dsspfile, int nres,
gmx_bool bPhobres[], real t,
int i;
- OOO = strdup("O");
+ OOO = gmx_strdup("O");
for (i = 0; (i < atoms->nr); i++)
{
leg[0] = "Structure";
for (s = 0; s < (size_t)mat->nmap; s++)
{
- leg[s+1] = strdup(map[s].desc);
+ leg[s+1] = gmx_strdup(map[s].desc);
}
fp = xvgropen(outfile, "Secondary Structure",
gmx_bool *bPhbres, bDoAccSurf;
real t;
int i, j, natoms, nframe = 0;
- matrix box;
+ matrix box = {{0}};
int gnx;
char *grpnm, *ss_str;
atom_id *index;
}
mat.map = NULL;
- mat.nmap = getcmap(libopen(opt2fn("-map", NFILE, fnm)),
- opt2fn("-map", NFILE, fnm), &(mat.map));
+ mat.nmap = readcmap(opt2fn("-map", NFILE, fnm), &(mat.map));
natoms = read_first_x(oenv, &status, ftp2fn(efTRX, NFILE, fnm), &t, &x, box);
if (natoms > atoms->nr)
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
+#include "config.h"
+
#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
#include "gromacs/fileio/confio.h"
#include "copyrite.h"
-#include "gmx_fatal.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/futil.h"
#include "gstat.h"
#include "macros.h"
#include "gromacs/math/utilities.h"
-#include "physics.h"
-#include "index.h"
+#include "gromacs/math/units.h"
#include "gromacs/utility/smalloc.h"
#include "gromacs/commandline/pargs.h"
-#include <string.h>
-#include "sysstuff.h"
#include "txtdump.h"
#include "typedefs.h"
-#include "vec.h"
-#include "xvgr.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/fileio/xvgr.h"
+#include "viewit.h"
#include "correl.h"
#include "gmx_ana.h"
#include "gromacs/fft/fft.h"
#include "copyrite.h"
#include "gromacs/fileio/filenm.h"
#include "macros.h"
-#include "pbc.h"
-#include "gromacs/utility/smalloc.h"
+#include "gromacs/math/vec.h"
+
#include "gromacs/commandline/pargs.h"
-#include "vec.h"
-#include "xvgr.h"
+#include "gromacs/fileio/trx.h"
#include "gromacs/fileio/trxio.h"
-
-#include "gromacs/legacyheaders/gmx_fatal.h"
+#include "gromacs/fileio/xvgr.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/topology/index.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
int gmx_dyecoupl(int argc, char *argv[])
{
int ndon, nacc;
atom_id *donindex, *accindex;
char *grpnm;
- t_atoms *atoms = NULL;
t_trxstatus *status;
t_trxframe fr;
}
printf("Select group with donor atom pairs defining the transition moment\n");
- get_index(atoms, ftp2fn_null(efNDX, NFILE, fnm), 1, &ndon, &donindex, &grpnm);
+ get_index(NULL, ftp2fn_null(efNDX, NFILE, fnm), 1, &ndon, &donindex, &grpnm);
printf("Select group with acceptor atom pairs defining the transition moment\n");
- get_index(atoms, ftp2fn_null(efNDX, NFILE, fnm), 1, &nacc, &accindex, &grpnm);
+ get_index(NULL, ftp2fn_null(efNDX, NFILE, fnm), 1, &nacc, &accindex, &grpnm);
/*check if groups are identical*/
grident = TRUE;
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
-#include "gromacs/math/3dview.h"
-#include "gromacs/commandline/pargs.h"
-#include "gromacs/utility/smalloc.h"
-#include "index.h"
+#include "gromacs/topology/index.h"
#include "gromacs/fileio/confio.h"
-#include "gmx_fatal.h"
-#include "vec.h"
-#include "physics.h"
+#include "gromacs/math/units.h"
#include "gmx_ana.h"
#include "macros.h"
#include "gromacs/fileio/trxio.h"
+#include "gromacs/commandline/pargs.h"
+#include "gromacs/math/3dtransforms.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/topology/atoms.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
static void rot_conf(t_atoms *atoms, rvec x[], rvec v[], real trans, real angle,
rvec head, rvec tail, int isize, atom_id index[],
/* Now the total rotation matrix: */
/* Rotate a couple of times */
- rotate(ZZ, -phi, Rz);
- rotate(YY, M_PI/2-theta, Ry);
- rotate(XX, angle*DEG2RAD, Rx);
+ gmx_mat4_init_rotation(ZZ, -phi, Rz);
+ gmx_mat4_init_rotation(YY, M_PI/2-theta, Ry);
+ gmx_mat4_init_rotation(XX, angle*DEG2RAD, Rx);
Rx[WW][XX] = trans;
- rotate(YY, theta-M_PI/2, Rinvy);
- rotate(ZZ, phi, Rinvz);
+ gmx_mat4_init_rotation(YY, theta-M_PI/2, Rinvy);
+ gmx_mat4_init_rotation(ZZ, phi, Rinvz);
- mult_matrix(temp1, Ry, Rz);
- mult_matrix(temp2, Rinvy, Rx);
- mult_matrix(temp3, temp2, temp1);
- mult_matrix(Mtot, Rinvz, temp3);
+ gmx_mat4_mmul(temp1, Ry, Rz);
+ gmx_mat4_mmul(temp2, Rinvy, Rx);
+ gmx_mat4_mmul(temp3, temp2, temp1);
+ gmx_mat4_mmul(Mtot, Rinvz, temp3);
- print_m4(debug, "Rz", Rz);
- print_m4(debug, "Ry", Ry);
- print_m4(debug, "Rx", Rx);
- print_m4(debug, "Rinvy", Rinvy);
- print_m4(debug, "Rinvz", Rinvz);
- print_m4(debug, "Mtot", Mtot);
+ if (debug)
+ {
+ gmx_mat4_print(debug, "Rz", Rz);
+ gmx_mat4_print(debug, "Ry", Ry);
+ gmx_mat4_print(debug, "Rx", Rx);
+ gmx_mat4_print(debug, "Rinvy", Rinvy);
+ gmx_mat4_print(debug, "Rinvz", Rinvz);
+ gmx_mat4_print(debug, "Mtot", Mtot);
+ }
for (i = 0; (i < isize); i++)
{
ai = index[i];
- m4_op(Mtot, xout[ai], xv);
+ gmx_mat4_transform_point(Mtot, xout[ai], xv);
rvec_add(xv, xcm, xout[ai]);
- m4_op(Mtot, v[ai], xv);
+ gmx_mat4_transform_point(Mtot, v[ai], xv);
copy_rvec(xv, vout[ai]);
}
}
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include <string.h>
#include "gromacs/fileio/pdbio.h"
#include "gromacs/fileio/confio.h"
-#include "symtab.h"
-#include "gromacs/utility/smalloc.h"
#include "macros.h"
-#include "gromacs/commandline/pargs.h"
#include "gromacs/fileio/strdb.h"
-#include "index.h"
-#include "vec.h"
+#include "gromacs/topology/index.h"
#include "typedefs.h"
#include "gromacs/gmxlib/conformation-utilities.h"
-#include "physics.h"
-#include "atomprop.h"
+#include "gromacs/math/units.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trxio.h"
-#include "pbc.h"
#include "princ.h"
#include "txtdump.h"
#include "viewit.h"
-#include "rmpbc.h"
#include "gmx_ana.h"
-#include "gromacs/legacyheaders/gmx_fatal.h"
+#include "gromacs/commandline/pargs.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/pbcutil/rmpbc.h"
+#include "gromacs/topology/atomprop.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
typedef struct
{
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <string.h>
+#include "config.h"
+
#include <math.h>
+#include <stdlib.h>
+#include <string.h>
#include "typedefs.h"
#include "gromacs/utility/smalloc.h"
#include "disre.h"
#include "names.h"
#include "macros.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "gromacs/fileio/enxio.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "gmx_ana.h"
#include "gromacs/fileio/trxio.h"
nset = 0;
timestep = 0.0;
snew(fnms, argc);
- nfile = 0;
lastfilestep = 0;
laststep = startstep = 0;
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <string.h>
#include <math.h>
#include "gromacs/utility/cstringutil.h"
#include "typedefs.h"
-#include "gmx_fatal.h"
-#include "vec.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/math/vec.h"
#include "gromacs/utility/smalloc.h"
#include "gromacs/fileio/enxio.h"
#include "gromacs/commandline/pargs.h"
#include "names.h"
#include "macros.h"
-#include "xvgr.h"
+#include "gromacs/fileio/xvgr.h"
#include "gstat.h"
-#include "physics.h"
+#include "gromacs/math/units.h"
#include "gromacs/fileio/matio.h"
#include "gromacs/fileio/strdb.h"
#include "gmx_ana.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
+#include <stdlib.h>
#include <string.h>
#include "typedefs.h"
-#include "gmx_fatal.h"
-#include "vec.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/math/vec.h"
#include "gromacs/utility/cstringutil.h"
#include "gromacs/utility/smalloc.h"
#include "gromacs/fileio/enxio.h"
#include "names.h"
#include "copyrite.h"
#include "macros.h"
-#include "xvgr.h"
+#include "gromacs/fileio/xvgr.h"
#include "gstat.h"
-#include "physics.h"
+#include "gromacs/math/units.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trxio.h"
#include "viewit.h"
-#include "mtop_util.h"
+#include "gromacs/topology/mtop_util.h"
#include "gmx_ana.h"
#include "mdebin.h"
j = 0;
for (k = 0; k < nre; k++)
{
- newnm[k] = strdup(nm[k].name);
+ newnm[k] = gmx_strdup(nm[k].name);
/* Insert dashes in all the names */
while ((ptr = strchr(newnm[k], ' ')) != NULL)
{
}
if (bSum)
{
- leg[nset] = strdup("Sum");
+ leg[nset] = gmx_strdup("Sum");
xvgr_legend(out, nset+1, (const char**)leg, oenv);
}
else
for (j = 0; j < 3; j++)
{
sprintf(buf, "eig%d", j+1);
- otenleg[(bOvec ? 12 : 3)*i+j] = strdup(buf);
+ otenleg[(bOvec ? 12 : 3)*i+j] = gmx_strdup(buf);
}
if (bOvec)
{
for (j = 0; j < 9; j++)
{
sprintf(buf, "vec%d%s", j/3+1, j%3 == 0 ? "x" : (j%3 == 1 ? "y" : "z"));
- otenleg[12*i+3+j] = strdup(buf);
+ otenleg[12*i+3+j] = gmx_strdup(buf);
}
}
}
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include <string.h>
#include "gromacs/commandline/pargs.h"
-#include "sysstuff.h"
#include "typedefs.h"
#include "gromacs/utility/smalloc.h"
#include "macros.h"
-#include "vec.h"
-#include "index.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/topology/index.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trxio.h"
#include "princ.h"
-#include "rmpbc.h"
+#include "gromacs/pbcutil/rmpbc.h"
#include "gmx_ana.h"
#include "gromacs/math/do_fit.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <ctype.h>
+#include <stdlib.h>
#include <string.h>
#include "gromacs/utility/cstringutil.h"
#include "gromacs/utility/smalloc.h"
-#include "sysstuff.h"
#include "gromacs/fileio/confio.h"
#include "gromacs/commandline/pargs.h"
-#include "pbc.h"
+#include "gromacs/pbcutil/pbc.h"
#include "force.h"
-#include "gmx_fatal.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/math/utilities.h"
#include "macros.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "gromacs/fileio/tpxio.h"
#include "mdrun.h"
-#include "main.h"
#include "gromacs/random/random.h"
-#include "index.h"
-#include "mtop_util.h"
+#include "gromacs/topology/index.h"
#include "gmx_ana.h"
static void insert_ion(int nsa, int *nwater,
char *str;
int i;
- str = strdup(mname);
+ str = gmx_strdup(mname);
i = strlen(str)-1;
while (i > 1 && (isdigit(str[i]) || (str[i] == '+') || (str[i] == '-')))
{
if (np)
{
snew(pptr, 1);
- pptr[0] = strdup(p_name);
+ pptr[0] = gmx_strdup(p_name);
snew(paptr, 1);
paptr[0] = aname(p_name);
}
if (nn)
{
snew(nptr, 1);
- nptr[0] = strdup(n_name);
+ nptr[0] = gmx_strdup(n_name);
snew(naptr, 1);
naptr[0] = aname(n_name);
}
}
/* Store this molecules section line */
srenew(mol_line, nmol_line+1);
- mol_line[nmol_line] = strdup(buf);
+ mol_line[nmol_line] = gmx_strdup(buf);
nmol_line++;
}
}
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
-#include "sysstuff.h"
-#include "gromacs/commandline/pargs.h"
#include <string.h>
+
+#include "gromacs/commandline/pargs.h"
#include "gromacs/utility/smalloc.h"
#include "typedefs.h"
#include "gromacs/fileio/confio.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
#include "macros.h"
-#include "vec.h"
-#include "index.h"
-#include "gmx_fatal.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/topology/index.h"
+#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/fatalerror.h"
#include "gmx_ana.h"
int gmx_genpr(int argc, char *argv[])
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include <string.h>
#include "gromacs/commandline/pargs.h"
-#include "sysstuff.h"
#include "typedefs.h"
#include "gromacs/utility/smalloc.h"
#include "macros.h"
-#include "vec.h"
-#include "pbc.h"
-#include "gromacs/fileio/futil.h"
-#include "index.h"
-#include "mshift.h"
-#include "xvgr.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/utility/futil.h"
+#include "gromacs/topology/index.h"
+#include "gromacs/fileio/xvgr.h"
+#include "viewit.h"
#include "princ.h"
-#include "rmpbc.h"
+#include "gromacs/pbcutil/rmpbc.h"
#include "txtdump.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trxio.h"
#include "gstat.h"
#include "gmx_ana.h"
-#include "gromacs/legacyheaders/gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
real calc_gyro(rvec x[], int gnx, atom_id index[], t_atom atom[], real tm,
rvec gvec, rvec d, gmx_bool bQ, gmx_bool bRot, gmx_bool bMOI, matrix trans)
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
-
-#include "sysstuff.h"
#include <string.h>
+
#include "typedefs.h"
#include "gromacs/utility/smalloc.h"
#include "macros.h"
#include "princ.h"
-#include "rmpbc.h"
-#include "vec.h"
-#include "xvgr.h"
-#include "pbc.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/pbcutil/rmpbc.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/fileio/xvgr.h"
+#include "viewit.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/commandline/pargs.h"
-#include "index.h"
+#include "gromacs/topology/index.h"
#include "gmx_ana.h"
#include "gromacs/fileio/trxio.h"
-#include "gromacs/legacyheaders/gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
/****************************************************************************/
/* This program calculates the ordering of water molecules across a box, as */
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
/*#define HAVE_NN_LOOPS*/
#include "gromacs/commandline/pargs.h"
#include "copyrite.h"
-#include "sysstuff.h"
#include "txtdump.h"
-#include "physics.h"
+#include "gromacs/math/units.h"
#include "macros.h"
-#include "gmx_fatal.h"
-#include "index.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/topology/index.h"
#include "gromacs/utility/smalloc.h"
-#include "vec.h"
-#include "xvgr.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/fileio/xvgr.h"
+#include "viewit.h"
#include "gstat.h"
#include "gromacs/utility/cstringutil.h"
-#include "pbc.h"
+#include "gromacs/pbcutil/pbc.h"
#include "correl.h"
#include "gmx_ana.h"
#include "geminate.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/fileio/matio.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trxio.h"
{
int i;
- if (ISDON(datable[id]) || !datable)
+ if (!datable || ISDON(datable[id]))
{
if (ddd->dptr[id] == NOTSET) /* New donor */
{
static void normalizeACF(real *ct, real *gt, int nhb, int len)
{
- real ct_fac, gt_fac;
+ real ct_fac, gt_fac = 0;
int i;
/* Xu and Berne use the same normalization constant */
ct_fac = 1.0/ct[0];
- gt_fac = (nhb == 0) ? 0 : 1.0/(real)nhb;
+ if (nhb != 0)
+ {
+ gt_fac = 1.0/(real)nhb;
+ }
printf("Normalization for c(t) = %g for gh(t) = %g\n", ct_fac, gt_fac);
for (i = 0; i < len; i++)
gmx_fatal(FARGS, "Could not initiate t_gemParams params.");
}
}
- gemstring = strdup(gemType[hb->per->gemtype]);
+ gemstring = gmx_strdup(gemType[hb->per->gemtype]);
do_hbac(opt2fn("-ac", NFILE, fnm), hb, nDump,
bMerge, bContact, fit_start, temp, r2cut > 0, smooth_tail_start, oenv,
gemstring, nThreads, NN, bBallistic, bGemFit);
{
t_matrix mat;
int id, ia, hh, x, y;
+ mat.flags = mat.y0 = 0;
if ((nframes > 0) && (hb->nrhb > 0))
{
if (USE_THIS_GROUP(j) )
{
sprintf(buf, "Donors %s", grpnames[j]);
- legnames[i++] = strdup(buf);
+ legnames[i++] = gmx_strdup(buf);
sprintf(buf, "Acceptors %s", grpnames[j]);
- legnames[i++] = strdup(buf);
+ legnames[i++] = gmx_strdup(buf);
}
}
if (i != nleg)
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
+#include <string.h>
#include "gromacs/fileio/confio.h"
-#include "gmx_fatal.h"
#include "fitahx.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
#include "gstat.h"
#include "hxprops.h"
#include "macros.h"
#include "gromacs/math/utilities.h"
-#include "pbc.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trxio.h"
-#include "physics.h"
-#include "index.h"
#include "gromacs/utility/smalloc.h"
-#include "gromacs/commandline/pargs.h"
-#include <string.h>
-#include "sysstuff.h"
#include "txtdump.h"
#include "typedefs.h"
-#include "vec.h"
-#include "xvgr.h"
+#include "gromacs/math/vec.h"
+#include "viewit.h"
#include "gmx_ana.h"
+#include "gromacs/commandline/pargs.h"
+#include "gromacs/fileio/xvgr.h"
+#include "gromacs/pbcutil/rmpbc.h"
+#include "gromacs/utility/fatalerror.h"
+
int gmx_helix(int argc, char *argv[])
{
const char *desc[] = {
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "typedefs.h"
-#include "gromacs/utility/smalloc.h"
#include "macros.h"
-#include "xvgr.h"
-#include "gromacs/commandline/pargs.h"
-#include "vec.h"
-#include "index.h"
-#include "pbc.h"
-#include "gmx_fatal.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/topology/index.h"
#include "gstat.h"
-#include "pbc.h"
#include "gmx_ana.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/commandline/pargs.h"
#include "gromacs/fileio/trxio.h"
+#include "gromacs/fileio/xvgr.h"
#include "gromacs/math/do_fit.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/pbcutil/rmpbc.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/futil.h"
+#include "gromacs/utility/smalloc.h"
int gmx_helixorient(int argc, char *argv[])
{
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include <string.h>
-#include "sysstuff.h"
#include "typedefs.h"
-#include "gromacs/commandline/pargs.h"
-#include "gromacs/utility/smalloc.h"
#include "macros.h"
#include "gstat.h"
-#include "vec.h"
-#include "xvgr.h"
-#include "pbc.h"
-#include "gromacs/fileio/futil.h"
-#include "index.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/utility/futil.h"
+#include "gromacs/topology/index.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trxio.h"
-#include "gromacs/fileio/matio.h"
#include "binsearch.h"
#include "powerspect.h"
-#include "gromacs/legacyheaders/gmx_fatal.h"
+#include "gromacs/commandline/pargs.h"
+#include "gromacs/fileio/matio.h"
+#include "gromacs/fileio/xvgr.h"
+#include "gromacs/pbcutil/rmpbc.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
/* Print name of first atom in all groups in index file */
static void print_types(atom_id index[], atom_id a[], int ngrps,
fprintf(stderr, "Using following groups: \n");
for (i = 0; i < ngrps; i++)
{
- fprintf(stderr, "Groupname: %s First atomname: %s First atomnr %u\n",
+ fprintf(stderr, "Groupname: %s First atomname: %s First atomnr %d\n",
groups[i], *(top->atoms.atomname[a[index[i]]]), a[index[i]]);
}
fprintf(stderr, "\n");
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
+#include <math.h>
#include <stdio.h>
#include <stdlib.h>
-#include <math.h>
#include <string.h>
#include "gromacs/commandline/pargs.h"
-#include "sysstuff.h"
#include "typedefs.h"
#include "gromacs/utility/smalloc.h"
#include "macros.h"
-#include "vec.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/utility/futil.h"
#include "txtdump.h"
#include "gromacs/fileio/enxio.h"
#include "gstat.h"
-#include "xvgr.h"
+#include "gromacs/fileio/xvgr.h"
+#include "viewit.h"
#include "gmx_ana.h"
#include "gromacs/fileio/trxio.h"
* on the code from g_anaeig. You can reach him as olange@gwdg.de. He
* probably also holds copyright to the following code.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include "readinp.h"
#include "gromacs/commandline/pargs.h"
-#include "sysstuff.h"
#include "typedefs.h"
#include "gromacs/utility/smalloc.h"
#include "macros.h"
-#include "gmx_fatal.h"
-#include "vec.h"
-#include "pbc.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/fileio/pdbio.h"
#include "gromacs/fileio/confio.h"
#include "gromacs/fileio/tpxio.h"
-#include "gromacs/fileio/matio.h"
-#include "mshift.h"
-#include "xvgr.h"
-#include "rmpbc.h"
+#include "gromacs/fileio/xvgr.h"
#include "txtdump.h"
#include "eigio.h"
-#include "index.h"
+#include "gromacs/topology/index.h"
#include "gromacs/utility/cstringutil.h"
typedef struct
printf("\n");
}
- EigvecFile = NULL;
EigvecFile = opt2fn("-f", NFILE, fnm);
/*read eigenvectors from eigvec.trr*/
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <ctype.h>
#include <string.h>
-#include "sysstuff.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
#include "macros.h"
-#include "gromacs/utility/cstringutil.h"
-#include "gromacs/commandline/pargs.h"
#include "gromacs/fileio/confio.h"
#include "typedefs.h"
-#include "index.h"
-#include "gromacs/utility/smalloc.h"
-#include "vec.h"
-#include "index.h"
+#include "gromacs/topology/index.h"
+#include "gromacs/math/vec.h"
-#include "gromacs/legacyheaders/gmx_fatal.h"
+#include "gromacs/commandline/pargs.h"
+#include "gromacs/topology/block.h"
+#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
/* It's not nice to have size limits, but we should not spend more time
* on this ancient tool, but instead use the new selection library.
{
c = (*string)[0];
(*string)++;
- s = strdup((*string));
+ s = gmx_strdup((*string));
sp = strchr(s, c);
if (sp != NULL)
{
{
block->index[i] = block->index[i+1]-shift;
}
- name = strdup((*gn)[nr]);
+ name = gmx_strdup((*gn)[nr]);
sfree((*gn)[nr]);
for (i = nr; i < block->nr-1; i++)
{
{
sprintf(buf, "%s_%s_%d", (*gn)[sel_nr], name, atoms->resinfo[resind].nr);
}
- (*gn)[block->nr-1] = strdup(buf);
+ (*gn)[block->nr-1] = gmx_strdup(buf);
}
block->a[block->nra] = a;
block->nra++;
{
rvec_sub(x[ca_end], x[i], vec);
}
+ else
+ {
+ break;
+ }
}
- while ((i < natoms) && (norm(vec) < 0.45));
+ while (norm(vec) < 0.45);
end[nchain] = ca_end;
while ((end[nchain]+1 < natoms) &&
srenew(block->index, block->nr+1);
srenew(*gn, block->nr);
sprintf(buf, "%s_chain%d", (*gn)[sel_nr], j+1);
- (*gn)[block->nr-1] = strdup(buf);
+ (*gn)[block->nr-1] = gmx_strdup(buf);
for (i = block->index[sel_nr]; i < block->index[sel_nr+1]; i++)
{
a = block->a[i];
{
sscanf(string, "%s", gname);
sfree((*gn)[sel_nr]);
- (*gn)[sel_nr] = strdup(gname);
+ (*gn)[sel_nr] = gmx_strdup(gname);
}
}
}
copy2block(nr, index, block);
srenew(*gn, block->nr);
newgroup = block->nr-1;
- (*gn)[newgroup] = strdup(gname);
+ (*gn)[newgroup] = gmx_strdup(gname);
}
else
{
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include <string.h>
#include "macros.h"
-#include "vec.h"
-#include "sysstuff.h"
+#include "gromacs/math/vec.h"
#include "typedefs.h"
#include "gromacs/fileio/filenm.h"
#include "gromacs/commandline/pargs.h"
-#include "gromacs/fileio/futil.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/futil.h"
+#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/smalloc.h"
#include "gromacs/fileio/matio.h"
-#include "xvgr.h"
-#include "index.h"
+#include "gromacs/fileio/xvgr.h"
+#include "gromacs/topology/index.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trxio.h"
-#include "rmpbc.h"
-#include "pbc.h"
+#include "gromacs/pbcutil/rmpbc.h"
+#include "gromacs/pbcutil/pbc.h"
#include "gmx_ana.h"
int **nmat, **totnmat;
real *mean_n;
int *tot_n;
- matrix box;
+ matrix box = {{0}};
output_env_t oenv;
gmx_rmpbc_t gpbc = NULL;
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include <stdlib.h>
-
-#include "sysstuff.h"
#include <string.h>
+
#include "typedefs.h"
#include "gromacs/utility/smalloc.h"
#include "macros.h"
-#include "vec.h"
-#include "xvgr.h"
-#include "pbc.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/fileio/xvgr.h"
+#include "viewit.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/commandline/pargs.h"
-#include "index.h"
+#include "gromacs/topology/index.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trxio.h"
-#include "rmpbc.h"
+#include "gromacs/pbcutil/rmpbc.h"
#include "gmx_ana.h"
#include "names.h"
{
snew(leg, 1);
sprintf(buf, "Internal in %s", grpn[0]);
- leg[0] = strdup(buf);
+ leg[0] = gmx_strdup(buf);
xvgr_legend(dist, 0, (const char**)leg, oenv);
if (num)
{
for (k = i+1; (k < ng); k++, j++)
{
sprintf(buf, "%s-%s", grpn[i], grpn[k]);
- leg[j] = strdup(buf);
+ leg[j] = gmx_strdup(buf);
}
}
xvgr_legend(dist, j, (const char**)leg, oenv);
for (i = 0; (i < ng-1); i++)
{
sprintf(buf, "%s-%s", grpn[0], grpn[i+1]);
- leg[i] = strdup(buf);
+ leg[i] = gmx_strdup(buf);
}
xvgr_legend(dist, ng-1, (const char**)leg, oenv);
if (num)
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "typedefs.h"
#include "gromacs/utility/smalloc.h"
#include "gromacs/commandline/pargs.h"
#include "macros.h"
-#include "gromacs/fileio/futil.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/futil.h"
+#include "gromacs/utility/fatalerror.h"
#include "gromacs/fileio/trxio.h"
static int calc_ntype(int nft, int *ft, t_idef *idef)
gmx_fatal(FARGS, "Unsupported function type '%s' selected",
interaction_function[ftype].longname);
}
- grpnames[ind] = strdup(buf);
+ grpnames[ind] = gmx_strdup(buf);
ind++;
}
}
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
-#include "gromacs/commandline/pargs.h"
-#include "gromacs/utility/smalloc.h"
#include "macros.h"
#include "gromacs/fileio/confio.h"
-#include "xvgr.h"
-#include "index.h"
+#include "viewit.h"
+#include "gromacs/topology/index.h"
#include "gmx_ana.h"
-#include "gmx_fatal.h"
#include "gromacs/fileio/trxio.h"
+#include "gromacs/commandline/pargs.h"
+#include "gromacs/fileio/xvgr.h"
#include "gromacs/math/do_fit.h"
+#include "gromacs/topology/atoms.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
static real dointerp(int n, rvec x1[], rvec x2[], rvec xx[],
int I, int N, real first, real last)
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include <string.h>
-#include "sysstuff.h"
-#include "gromacs/utility/smalloc.h"
#include "macros.h"
-#include "gromacs/commandline/pargs.h"
#include "gromacs/math/utilities.h"
-#include "gromacs/fileio/futil.h"
-#include "index.h"
+#include "gromacs/utility/futil.h"
+#include "gromacs/topology/index.h"
#include "typedefs.h"
-#include "xvgr.h"
+#include "viewit.h"
#include "gstat.h"
#include "gromacs/statistics/statistics.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trxio.h"
-#include "pbc.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "gromacs/fileio/confio.h"
#include "gmx_ana.h"
-#include "gromacs/legacyheaders/gmx_fatal.h"
+#include "gromacs/commandline/pargs.h"
+#include "gromacs/fileio/xvgr.h"
+#include "gromacs/pbcutil/rmpbc.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
#define FACTOR 1000.0 /* Convert nm^2/ps to 10e-5 cm^2/s */
/* NORMAL = total diffusion coefficient (default). X,Y,Z is diffusion
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include <string.h>
-#include "gromacs/commandline/pargs.h"
-#include "sysstuff.h"
#include "typedefs.h"
-#include "gromacs/utility/smalloc.h"
#include "macros.h"
-#include "vec.h"
-#include "pbc.h"
#include "copyrite.h"
-#include "gromacs/fileio/futil.h"
-#include "index.h"
-#include "mshift.h"
-#include "xvgr.h"
+#include "gromacs/utility/futil.h"
#include "gstat.h"
#include "txtdump.h"
#include "eigio.h"
-#include "mtop_util.h"
-#include "physics.h"
-#include "main.h"
+#include "gromacs/topology/mtop_util.h"
+#include "gromacs/math/units.h"
#include "gmx_ana.h"
+#include "gromacs/commandline/pargs.h"
+#include "gromacs/fileio/mtxio.h"
+#include "gromacs/fileio/xvgr.h"
#include "gromacs/linearalgebra/eigensolver.h"
-#include "gromacs/linearalgebra/mtxio.h"
#include "gromacs/linearalgebra/sparsematrix.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/utility/smalloc.h"
static double cv_corr(double nu, double T)
{
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include <string.h>
#include "gromacs/commandline/pargs.h"
-#include "sysstuff.h"
#include "typedefs.h"
#include "gromacs/utility/smalloc.h"
#include "macros.h"
-#include "gmx_fatal.h"
-#include "vec.h"
-#include "gromacs/fileio/futil.h"
-#include "index.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/utility/futil.h"
+#include "gromacs/topology/index.h"
#include "gromacs/fileio/pdbio.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trxio.h"
#include "txtdump.h"
-#include "physics.h"
+#include "gromacs/math/units.h"
#include "gromacs/random/random.h"
#include "eigio.h"
#include "gmx_ana.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
+#include <stdlib.h>
#include <string.h>
#include "gromacs/commandline/pargs.h"
-#include "sysstuff.h"
#include "typedefs.h"
#include "gromacs/utility/smalloc.h"
#include "macros.h"
-#include "gmx_fatal.h"
-#include "vec.h"
-#include "gromacs/fileio/futil.h"
-#include "index.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/fileio/pdbio.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trxio.h"
#include "txtdump.h"
-#include "physics.h"
+#include "gromacs/math/units.h"
#include "eigio.h"
#include "gmx_ana.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include "typedefs.h"
#include "macros.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include <string.h>
-#include "sysstuff.h"
#include "typedefs.h"
-#include "gromacs/utility/smalloc.h"
#include "macros.h"
#include "gstat.h"
-#include "vec.h"
-#include "xvgr.h"
-#include "pbc.h"
-#include "gromacs/fileio/futil.h"
-#include "gromacs/commandline/pargs.h"
-#include "index.h"
+#include "gromacs/math/vec.h"
+#include "viewit.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/utility/futil.h"
+#include "gromacs/topology/index.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trxio.h"
#include "gromacs/fileio/confio.h"
#include "cmat.h"
#include "gmx_ana.h"
-#include "gromacs/legacyheaders/gmx_fatal.h"
+#include "gromacs/commandline/pargs.h"
+#include "gromacs/fileio/xvgr.h"
+#include "gromacs/pbcutil/rmpbc.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
/****************************************************************************/
/* This program calculates the order parameter per atom for an interface or */
fprintf(stderr, "Using following groups: \n");
for (i = 0; i < ngrps; i++)
{
- fprintf(stderr, "Groupname: %s First atomname: %s First atomnr %u\n",
+ fprintf(stderr, "Groupname: %s First atomname: %s First atomnr %d\n",
groups[i], *(top->atoms.atomname[a[index[i]]]), a[index[i]]);
}
fprintf(stderr, "\n");
#include "typedefs.h"
#include "types/commrec.h"
#include "gromacs/utility/smalloc.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "copyrite.h"
#include "gromacs/fileio/tpxio.h"
#include "readinp.h"
#include "checkpoint.h"
#include "gmx_ana.h"
#include "gromacs/random/random.h"
-#include "physics.h"
+#include "gromacs/math/units.h"
#include "mdatoms.h"
#include "coulomb.h"
-#include "mtop_util.h"
+#include "gromacs/topology/mtop_util.h"
#include "network.h"
#include "main.h"
#include "macros.h"
-#include "gromacs/legacyheaders/gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
/* We use the same defines as in mvdata.c here */
#define block_bc(cr, d) gmx_bcast( sizeof(d), &(d), (cr))
#define NFILE asize(fnm)
cr = init_commrec();
-#ifdef GMX_LIB_MPI
- MPI_Barrier(MPI_COMM_WORLD);
-#endif
PCA_Flags = PCA_NOEXIT_ON_ARGS;
- PCA_Flags |= (MASTER(cr) ? 0 : PCA_QUIET);
if (!parse_common_args(&argc, argv, PCA_Flags,
NFILE, fnm, asize(pa), pa, asize(desc), desc,
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
+
#include <math.h>
#include <string.h>
-#include "sysstuff.h"
-#include "physics.h"
#include "typedefs.h"
#include "gromacs/utility/smalloc.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/commandline/pargs.h"
-#include "vec.h"
-#include "index.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/topology/index.h"
#include "macros.h"
-#include "xvgr.h"
-#include "rmpbc.h"
+#include "gromacs/fileio/xvgr.h"
+#include "viewit.h"
+#include "gromacs/pbcutil/rmpbc.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trxio.h"
#include "gmx_ana.h"
for (d2 = 0; d2 < DIM; d2++)
{
sprintf(buf, "eig%d %c", d+1, 'x'+d2);
- legp[d*DIM+d2] = strdup(buf);
+ legp[d*DIM+d2] = gmx_strdup(buf);
}
}
xvgr_legend(outv, DIM*DIM, (const char**)legp, oenv);
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
-#include <math.h>
#include <ctype.h>
-
-#include "sysstuff.h"
+#include <math.h>
#include <string.h>
+
#include "typedefs.h"
#include "gromacs/utility/smalloc.h"
#include "macros.h"
#include "princ.h"
-#include "rmpbc.h"
-#include "vec.h"
-#include "xvgr.h"
-#include "pbc.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/pbcutil/rmpbc.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/fileio/xvgr.h"
+#include "viewit.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/commandline/pargs.h"
-#include "index.h"
+#include "gromacs/topology/index.h"
#include "gmx_ana.h"
#include "gromacs/utility/cstringutil.h"
#include "gromacs/fileio/trxio.h"
-#include "gromacs/legacyheaders/gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#define EPS0 8.85419E-12
#define ELC 1.60219E-19
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include <string.h>
#include "gromacs/commandline/pargs.h"
-#include "sysstuff.h"
#include "typedefs.h"
#include "gromacs/utility/smalloc.h"
#include "macros.h"
-#include "vec.h"
-#include "pbc.h"
-#include "gromacs/fileio/futil.h"
-#include "index.h"
-#include "mshift.h"
-#include "xvgr.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/utility/futil.h"
+#include "gromacs/topology/index.h"
#include "princ.h"
-#include "rmpbc.h"
+#include "gromacs/pbcutil/rmpbc.h"
#include "txtdump.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trxio.h"
+#include "gromacs/fileio/xvgr.h"
#include "gstat.h"
#include "gmx_ana.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
-#include "sysstuff.h"
#include <string.h>
+
#include "typedefs.h"
#include "gromacs/utility/smalloc.h"
#include "macros.h"
-#include "vec.h"
-#include "xvgr.h"
-#include "physics.h"
-#include "pbc.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/fileio/xvgr.h"
+#include "viewit.h"
+#include "gromacs/math/units.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/commandline/pargs.h"
-#include "index.h"
#include "nrama.h"
#include "gmx_ana.h"
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
-#include "sysstuff.h"
#include "typedefs.h"
#include "macros.h"
-#include "vec.h"
-#include "pbc.h"
-#include "xvgr.h"
-#include "gromacs/fileio/futil.h"
-#include "gromacs/commandline/pargs.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "viewit.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trxio.h"
-#include "physics.h"
-#include "index.h"
-#include "gromacs/utility/smalloc.h"
-#include "calcgrid.h"
+#include "gromacs/topology/index.h"
#include "nrnb.h"
#include "coulomb.h"
#include "gstat.h"
-#include "gromacs/fileio/matio.h"
#include "gmx_ana.h"
#include "names.h"
-#include "gromacs/legacyheaders/gmx_fatal.h"
+#include "gromacs/commandline/pargs.h"
+#include "gromacs/fileio/xvgr.h"
+#include "gromacs/pbcutil/rmpbc.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
static void check_box_c(matrix box)
{
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
-#include "gromacs/utility/smalloc.h"
#include <math.h>
+#include <stdlib.h>
+
+#include "gromacs/utility/smalloc.h"
#include "macros.h"
#include "typedefs.h"
-#include "xvgr.h"
+#include "gromacs/fileio/xvgr.h"
#include "copyrite.h"
#include "gromacs/commandline/pargs.h"
-#include "vec.h"
-#include "index.h"
-#include "gmx_fatal.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/topology/index.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/futil.h"
#include "princ.h"
-#include "rmpbc.h"
+#include "gromacs/pbcutil/rmpbc.h"
#include "gromacs/fileio/matio.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trxio.h"
int ePBC;
t_iatom *iatom = NULL;
- matrix box;
+ matrix box = {{0}};
rvec *x, *xp, *xm = NULL, **mat_x = NULL, **mat_x2, *mat_x2_j = NULL, vec1,
vec2;
t_trxstatus *status;
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trxio.h"
#include "gromacs/fileio/strdb.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "macros.h"
-#include "index.h"
-#include "pbc.h"
-#include "xvgr.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/topology/index.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/fileio/xvgr.h"
+#include "viewit.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/fileio/matio.h"
#include "gmx_ana.h"
{
lp += n;
snew(equiv[neq], 1);
- equiv[neq][0].nname = strdup(atomname);
+ equiv[neq][0].nname = gmx_strdup(atomname);
while (sscanf(lp, "%d %s %s %n", &resnr, resname, atomname, &n) == 3)
{
/* this is not efficient, but I'm lazy (again) */
srenew(equiv[neq], na+1);
equiv[neq][na].rnr = resnr-1;
- equiv[neq][na].rname = strdup(resname);
- equiv[neq][na].aname = strdup(atomname);
+ equiv[neq][na].rname = gmx_strdup(resname);
+ equiv[neq][na].aname = gmx_strdup(atomname);
if (na > 0)
{
equiv[neq][na].nname = NULL;
}
if (bFound)
{
- *nname = strdup(equiv[i-1][0].nname);
+ *nname = gmx_strdup(equiv[i-1][0].nname);
}
return bFound;
rnrj, *atoms->resinfo[rnrj].name, *atoms->atomname[index[j]]);
if (nnm[i] && bEquiv)
{
- nnm[j] = strdup(nnm[i]);
+ nnm[j] = gmx_strdup(nnm[i]);
}
if (bEquiv)
{
noe_gr[gi].anr = index[i];
if (nnm[i])
{
- noe_gr[gi].aname = strdup(nnm[i]);
+ noe_gr[gi].aname = gmx_strdup(nnm[i]);
}
else
{
- noe_gr[gi].aname = strdup(*atoms->atomname[index[i]]);
+ noe_gr[gi].aname = gmx_strdup(*atoms->atomname[index[i]]);
if (noe_index[i] == noe_index[i+1])
{
noe_gr[gi].aname[strlen(noe_gr[gi].aname)-1] = '*';
}
}
noe_gr[gi].rnr = atoms->atom[index[i]].resind;
- noe_gr[gi].rname = strdup(*atoms->resinfo[noe_gr[gi].rnr].name);
+ noe_gr[gi].rname = gmx_strdup(*atoms->resinfo[noe_gr[gi].rnr].name);
/* dump group definitions */
if (debug)
{
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
-#include "gromacs/utility/smalloc.h"
#include <math.h>
+
+#include "gromacs/utility/smalloc.h"
#include "macros.h"
#include "typedefs.h"
-#include "xvgr.h"
+#include "gromacs/fileio/xvgr.h"
+#include "viewit.h"
#include "gromacs/commandline/pargs.h"
-#include "vec.h"
-#include "index.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/topology/index.h"
#include "gromacs/fileio/pdbio.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trxio.h"
-#include "pbc.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
#include "princ.h"
-#include "rmpbc.h"
+#include "gromacs/pbcutil/rmpbc.h"
#include "gromacs/fileio/confio.h"
#include "gmx_ana.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include <string.h>
-#include "sysstuff.h"
-#include "physics.h"
+
#include "typedefs.h"
-#include "gromacs/utility/smalloc.h"
-#include "gromacs/fileio/futil.h"
-#include "gromacs/commandline/pargs.h"
-#include "index.h"
+#include "gromacs/utility/futil.h"
+#include "gromacs/topology/index.h"
#include "macros.h"
-#include "gmx_fatal.h"
-#include "xvgr.h"
#include "gstat.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
+#include "viewit.h"
#include "gmx_ana.h"
#include "gromacs/fileio/trxio.h"
+#include "gromacs/commandline/pargs.h"
+#include "gromacs/pbcutil/rmpbc.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
int gmx_rotacf(int argc, char *argv[])
{
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include <string.h>
#include "gromacs/commandline/pargs.h"
-#include "sysstuff.h"
#include "typedefs.h"
#include "gromacs/utility/smalloc.h"
#include "macros.h"
-#include "vec.h"
-#include "pbc.h"
-#include "gromacs/fileio/futil.h"
-#include "index.h"
-#include "mshift.h"
-#include "xvgr.h"
-#include "rmpbc.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/utility/futil.h"
+#include "gromacs/topology/index.h"
+#include "gromacs/fileio/xvgr.h"
+#include "viewit.h"
+#include "gromacs/pbcutil/rmpbc.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trxio.h"
#include "gmx_ana.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include <string.h>
#include "macros.h"
-#include "vec.h"
-#include "sysstuff.h"
+#include "gromacs/math/vec.h"
#include "typedefs.h"
#include "gromacs/fileio/filenm.h"
#include "gromacs/fileio/trxio.h"
#include "gromacs/commandline/pargs.h"
-#include "gromacs/fileio/futil.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/futil.h"
+#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/smalloc.h"
-#include "pbc.h"
-#include "xvgr.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/fileio/xvgr.h"
#include "gmx_ana.h"
-#include "gromacs/legacyheaders/gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
typedef struct {
char *label;
*(atoms->resinfo[resnr].name),
atoms->resinfo[resnr].nr,
anr+1);
- cg[ncg].label = strdup(buf);
+ cg[ncg].label = gmx_strdup(buf);
ncg++;
}
}
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
-#include "gromacs/utility/smalloc.h"
-#include "sysstuff.h"
#include "typedefs.h"
#include "macros.h"
-#include "vec.h"
-#include "pbc.h"
-#include "xvgr.h"
+#include "gromacs/math/vec.h"
#include "copyrite.h"
-#include "gromacs/commandline/pargs.h"
-#include "index.h"
+#include "gromacs/topology/index.h"
#include "gstat.h"
#include "gmx_ana.h"
#include "nsfactor.h"
-#include "gromacs/fileio/futil.h"
-#include "gromacs/fileio/matio.h"
+#include "gromacs/commandline/pargs.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trxio.h"
-#include "gromacs/legacyheaders/gmx_fatal.h"
+#include "gromacs/fileio/xvgr.h"
+#include "gromacs/pbcutil/rmpbc.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/utility/gmxomp.h"
+#include "gromacs/utility/smalloc.h"
int gmx_sans(int argc, char *argv[])
{
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
-#include "sysstuff.h"
-#include "typedefs.h"
#include "macros.h"
-#include "vec.h"
-#include "pbc.h"
-#include "xvgr.h"
#include "copyrite.h"
-#include "gromacs/fileio/futil.h"
-#include "gromacs/commandline/pargs.h"
-#include "gromacs/fileio/tpxio.h"
-#include "physics.h"
-#include "index.h"
-#include "gromacs/utility/smalloc.h"
-#include "calcgrid.h"
-#include "nrnb.h"
-#include "coulomb.h"
-#include "gstat.h"
-#include "gromacs/fileio/matio.h"
#include "gmx_ana.h"
-#include "names.h"
#include "sfactor.h"
+#include "gromacs/commandline/pargs.h"
+#include "gromacs/utility/smalloc.h"
+
int gmx_saxs(int argc, char *argv[])
{
const char *desc[] = {
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
+
#include <math.h>
+#include <stdlib.h>
#include <string.h>
+
#include "gromacs/commandline/pargs.h"
-#include "sysstuff.h"
#include "typedefs.h"
#include "gromacs/utility/smalloc.h"
#include "macros.h"
-#include "gmx_fatal.h"
-#include "vec.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/utility/futil.h"
#include "readinp.h"
#include "txtdump.h"
#include "gstat.h"
-#include "xvgr.h"
-#include "physics.h"
+#include "gromacs/fileio/xvgr.h"
+#include "gromacs/math/units.h"
#include "gromacs/fileio/pdbio.h"
#include "gromacs/fileio/matio.h"
#include "gmx_ana.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
-#include <stdio.h>
#include <math.h>
+#include <stdio.h>
#include "typedefs.h"
#include "gromacs/commandline/pargs.h"
-#include "xvgr.h"
+#include "gromacs/fileio/xvgr.h"
+#include "viewit.h"
#include "gromacs/fileio/pdbio.h"
#include "macros.h"
#include "gromacs/utility/smalloc.h"
-#include "vec.h"
-#include "pbc.h"
-#include "physics.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/math/units.h"
#include "names.h"
#include "txtdump.h"
#include "gromacs/fileio/trnio.h"
-#include "symtab.h"
#include "gromacs/fileio/confio.h"
real pot(real x, real qq, real c6, real cn, int npow)
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include "macros.h"
-#include "gromacs/commandline/pargs.h"
-#include "gromacs/utility/smalloc.h"
#include "gstat.h"
-#include "vec.h"
-#include "xvgr.h"
-#include "pbc.h"
-#include "index.h"
+#include "gromacs/math/vec.h"
+#include "viewit.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/topology/index.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trxio.h"
#include "gmx_ana.h"
-#include "gmx_fatal.h"
+#include "gromacs/commandline/pargs.h"
+#include "gromacs/fileio/xvgr.h"
+#include "gromacs/pbcutil/rmpbc.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
static void calc_com_pbc(int nrefat, t_topology *top, rvec x[], t_pbc *pbc,
atom_id index[], rvec xref, gmx_bool bPBC)
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
+#include "config.h"
+#include <math.h>
+#include <stdlib.h>
#include "gromacs/commandline/pargs.h"
#include "typedefs.h"
#include "gromacs/utility/smalloc.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trxio.h"
-#include <math.h>
-#include "index.h"
-#include "pbc.h"
-#include "rmpbc.h"
+#include "gromacs/topology/index.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/pbcutil/rmpbc.h"
#include "gmx_ana.h"
#include "macros.h"
-
static const double bohr = 0.529177249; /* conversion factor to compensate for VMD plugin conversion... */
-static void mequit(void)
-{
- printf("Memory allocation error\n");
- exit(1);
-}
-
int gmx_spatial(int argc, char *argv[])
{
const char *desc[] = {
MINBIN[i] -= (double)iNAB*rBINWIDTH;
nbin[i] = (long)ceil((MAXBIN[i]-MINBIN[i])/rBINWIDTH);
}
- bin = (long ***)malloc(nbin[XX]*sizeof(long **));
- if (!bin)
- {
- mequit();
- }
+ snew(bin, nbin[XX]);
for (i = 0; i < nbin[XX]; ++i)
{
- bin[i] = (long **)malloc(nbin[YY]*sizeof(long *));
- if (!bin[i])
- {
- mequit();
- }
+ snew(bin[i], nbin[YY]);
for (j = 0; j < nbin[YY]; ++j)
{
- bin[i][j] = (long *)calloc(nbin[ZZ], sizeof(long));
- if (!bin[i][j])
- {
- mequit();
- }
+ snew(bin[i][j], nbin[ZZ]);
}
}
copy_mat(box, box_pbc);
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include "macros.h"
-#include "gromacs/commandline/pargs.h"
-#include "gromacs/utility/smalloc.h"
#include "gstat.h"
-#include "vec.h"
-#include "xvgr.h"
-#include "pbc.h"
-#include "index.h"
+#include "viewit.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/topology/index.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trxio.h"
-#include "physics.h"
+#include "gromacs/math/units.h"
#include "gmx_ana.h"
-#include "gmx_fatal.h"
+#include "gromacs/commandline/pargs.h"
+#include "gromacs/fileio/xvgr.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/pbcutil/rmpbc.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
static void calc_com_pbc(int nrefat, t_topology *top, rvec x[], t_pbc *pbc,
atom_id index[], rvec xref, int ePBC)
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
+#include "config.h"
#include <math.h>
+#include <stdio.h>
+#include <string.h>
+
#include "gromacs/fileio/confio.h"
-#include "gmx_fatal.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/futil.h"
#include "gstat.h"
#include "macros.h"
#include "gromacs/math/utilities.h"
-#include "physics.h"
-#include "index.h"
+#include "gromacs/math/units.h"
+#include "gromacs/topology/index.h"
#include "gromacs/utility/smalloc.h"
#include "gromacs/commandline/pargs.h"
-#include <string.h>
-#include "sysstuff.h"
#include "txtdump.h"
#include "typedefs.h"
-#include "vec.h"
-#include "xvgr.h"
-#include "pbc.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/fileio/xvgr.h"
+#include "viewit.h"
+#include "gromacs/pbcutil/pbc.h"
#include "gmx_ana.h"
#include "gromacs/fileio/trxio.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
+#include <stdlib.h>
#include <string.h>
+
#include "gromacs/commandline/pargs.h"
-#include "sysstuff.h"
#include "typedefs.h"
#include "gromacs/utility/smalloc.h"
#include "macros.h"
-#include "vec.h"
-#include "pbc.h"
-#include "gromacs/fileio/futil.h"
-#include "index.h"
-#include "mshift.h"
-#include "xvgr.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/utility/futil.h"
+#include "gromacs/topology/index.h"
+#include "gromacs/fileio/xvgr.h"
+#include "viewit.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trxio.h"
-#include "rmpbc.h"
-#include "physics.h"
+#include "gromacs/pbcutil/rmpbc.h"
+#include "gromacs/math/units.h"
#include "gromacs/fileio/confio.h"
#include "gmx_ana.h"
#include "gromacs/linearalgebra/nrjac.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
static void low_print_data(FILE *fp, real time, rvec x[], int n, atom_id *index,
gmx_bool bDim[], const char *sffmt)
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
-#include <string.h>
#include <math.h>
+#include <stdlib.h>
+#include <string.h>
+
#include "macros.h"
-#include "sysstuff.h"
#include "gromacs/utility/smalloc.h"
#include "typedefs.h"
#include "gromacs/fileio/gmxfio.h"
#include "gromacs/fileio/tngio.h"
#include "gromacs/fileio/tngio_for_tools.h"
#include "gromacs/commandline/pargs.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/fileio/pdbio.h"
#include "gromacs/fileio/confio.h"
#include "names.h"
-#include "index.h"
-#include "vec.h"
+#include "gromacs/topology/index.h"
+#include "gromacs/math/vec.h"
#include "gromacs/fileio/xtcio.h"
-#include "rmpbc.h"
-#include "pbc.h"
-#include "xvgr.h"
+#include "gromacs/fileio/xvgr.h"
#include "gmx_ana.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#define TIME_EXPLICIT 0
#define TIME_CONTINUE 1
{
if (nfile_out != nset)
{
- char *buf = strdup(fnms_out[0]);
+ char *buf = gmx_strdup(fnms_out[0]);
snew(fnms_out, nset);
for (i = 0; (i < nset); i++)
{
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
-#include <string.h>
#include <math.h>
+#include <stdlib.h>
+#include <string.h>
#include "copyrite.h"
#include "macros.h"
-#include "sysstuff.h"
-#include "gromacs/utility/smalloc.h"
#include "typedefs.h"
#include "gromacs/fileio/gmxfio.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trxio.h"
#include "gromacs/fileio/trnio.h"
#include "gromacs/fileio/tngio_for_tools.h"
-#include "gromacs/commandline/pargs.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/fileio/pdbio.h"
#include "gromacs/fileio/confio.h"
#include "names.h"
-#include "index.h"
-#include "vec.h"
+#include "gromacs/topology/index.h"
+#include "gromacs/math/vec.h"
#include "gromacs/fileio/xtcio.h"
-#include "rmpbc.h"
-#include "pbc.h"
#include "viewit.h"
-#include "xvgr.h"
#include "gmx_ana.h"
+#include "gromacs/commandline/pargs.h"
+#include "gromacs/fileio/xvgr.h"
#include "gromacs/math/do_fit.h"
-#include "gmx_fatal.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/pbcutil/rmpbc.h"
+#include "gromacs/topology/topology.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
#ifdef HAVE_UNISTD_H
#include <unistd.h>
{
gmx_fatal(FARGS, "Output file name '%s' does not contain a '.'", out_file);
}
- outf_base = strdup(out_file);
+ outf_base = gmx_strdup(out_file);
outf_base[outf_ext - out_file] = '\0';
}
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
+#include <stdlib.h>
#include <string.h>
+
#include "gromacs/commandline/pargs.h"
-#include "sysstuff.h"
#include "typedefs.h"
#include "gromacs/utility/smalloc.h"
#include "macros.h"
-#include "vec.h"
-#include "pbc.h"
-#include "gromacs/fileio/futil.h"
-#include "index.h"
-#include "mshift.h"
-#include "xvgr.h"
-#include "princ.h"
-#include "rmpbc.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/utility/futil.h"
+#include "gromacs/topology/index.h"
+#include "gromacs/fileio/xvgr.h"
+
+#include "gromacs/pbcutil/rmpbc.h"
#include "txtdump.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trxio.h"
#include "gmx_ana.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
typedef struct {
atom_id i;
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
+#include <stdlib.h>
#include <time.h>
#ifdef HAVE_SYS_TIME_H
#include <sys/time.h>
#endif
-#include "gromacs/commandline/pargs.h"
#include "typedefs.h"
#include "types/commrec.h"
-#include "gromacs/utility/smalloc.h"
-#include "vec.h"
-#include "copyrite.h"
+#include "gromacs/math/vec.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/utility/cstringutil.h"
#include "readinp.h"
#include "gromacs/timing/walltime_accounting.h"
#include "gromacs/math/utilities.h"
-#include "gmx_fatal.h"
+#include "gromacs/commandline/pargs.h"
+#include "gromacs/utility/baseversion.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
/* Enum for situations that can occur during log file parsing, the
* corresponding string entries can be found in do_the_tests() in
}
-static gmx_bool is_equal(real a, real b)
-{
- real diff, eps = 1.0e-7;
-
-
- diff = a - b;
-
- if (diff < 0.0)
- {
- diff = -diff;
- }
-
- if (diff < eps)
- {
- return TRUE;
- }
- else
- {
- return FALSE;
- }
-}
-
-
static void remove_if_exists(const char *fn)
{
if (gmx_fexist(fn))
fprintf(fp, "\n");
/* Only mention settings if they were modified: */
- bRefinedCoul = !is_equal(info->rcoulomb[k_win], info->rcoulomb[0]);
- bRefinedVdW = !is_equal(info->rvdw[k_win], info->rvdw[0] );
+ bRefinedCoul = !gmx_within_tol(info->rcoulomb[k_win], info->rcoulomb[0], GMX_REAL_EPS);
+ bRefinedVdW = !gmx_within_tol(info->rvdw[k_win], info->rvdw[0], GMX_REAL_EPS);
bRefinedGrid = !(info->nkx[k_win] == info->nkx[0] &&
info->nky[k_win] == info->nky[0] &&
info->nkz[k_win] == info->nkz[0]);
{
if ( (cp = getenv("MPIRUN")) != NULL)
{
- *cmd_mpirun = strdup(cp);
+ *cmd_mpirun = gmx_strdup(cp);
}
else
{
- *cmd_mpirun = strdup(def_mpirun);
+ *cmd_mpirun = gmx_strdup(def_mpirun);
}
}
else
{
- *cmd_mpirun = strdup(empty_mpirun);
+ *cmd_mpirun = gmx_strdup(empty_mpirun);
}
if ( (cp = getenv("MDRUN" )) != NULL)
{
- *cmd_mdrun = strdup(cp);
+ *cmd_mdrun = gmx_strdup(cp);
}
else
{
- *cmd_mdrun = strdup(def_mdrun);
+ *cmd_mdrun = gmx_strdup(def_mdrun);
}
}
{
/* Determine which Coulomb radii rc to use in the benchmarks */
add = (rmax-rmin)/(*ntprs-1);
- if (is_equal(rmin, info->rcoulomb[0]))
+ if (gmx_within_tol(rmin, info->rcoulomb[0], GMX_REAL_EPS))
{
ir->rcoulomb = rmin + j*add;
}
- else if (is_equal(rmax, info->rcoulomb[0]))
+ else if (gmx_within_tol(rmax, info->rcoulomb[0], GMX_REAL_EPS))
{
ir->rcoulomb = rmin + (j-1)*add;
}
fprintf(fp, " %-14s\n", fn_bench_tprs[j]);
/* Make it clear to the user that some additional settings were modified */
- if (!is_equal(ir->rvdw, info->rvdw[0])
- || !is_equal(ir->rlistlong, info->rlistlong[0]) )
+ if (!gmx_within_tol(ir->rvdw, info->rvdw[0], GMX_REAL_EPS)
+ || !gmx_within_tol(ir->rlistlong, info->rlistlong[0], GMX_REAL_EPS) )
{
bNote = TRUE;
}
/* Add test scenarios if rmin or rmax were set */
if (*ntprs <= 2)
{
- if (!is_equal(*rmin, rcoulomb) && (*ntprs == 1) )
+ if (!gmx_within_tol(*rmin, rcoulomb, GMX_REAL_EPS) && (*ntprs == 1) )
{
(*ntprs)++;
fprintf(stderr, "NOTE: Setting -rmin to %g changed -ntpr to %d\n",
*rmin, *ntprs);
}
- if (!is_equal(*rmax, rcoulomb) && (*ntprs == 1) )
+ if (!gmx_within_tol(*rmax, rcoulomb, GMX_REAL_EPS) && (*ntprs == 1) )
{
(*ntprs)++;
fprintf(stderr, "NOTE: Setting -rmax to %g changed -ntpr to %d\n",
}
old = *ntprs;
/* If one of rmin, rmax is set, we need 2 tpr files at minimum */
- if (!is_equal(*rmax, rcoulomb) || !is_equal(*rmin, rcoulomb) )
+ if (!gmx_within_tol(*rmax, rcoulomb, GMX_REAL_EPS) || !gmx_within_tol(*rmin, rcoulomb, GMX_REAL_EPS) )
{
*ntprs = max(*ntprs, 2);
}
/* If both rmin, rmax are set, we need 3 tpr files at minimum */
- if (!is_equal(*rmax, rcoulomb) && !is_equal(*rmin, rcoulomb) )
+ if (!gmx_within_tol(*rmax, rcoulomb, GMX_REAL_EPS) && !gmx_within_tol(*rmin, rcoulomb, GMX_REAL_EPS) )
{
*ntprs = max(*ntprs, 3);
}
if (*ntprs > 1)
{
- if (is_equal(*rmin, rcoulomb) && is_equal(rcoulomb, *rmax)) /* We have just a single rc */
+ if (gmx_within_tol(*rmin, rcoulomb, GMX_REAL_EPS) && gmx_within_tol(rcoulomb, *rmax, GMX_REAL_EPS)) /* We have just a single rc */
{
fprintf(stderr, "WARNING: Resetting -ntpr to 1 since no Coulomb radius scaling is requested.\n"
"Please set rmin < rmax to test Coulomb radii in the [rmin, rmax] interval\n"
sep_line(fp);
fprintf(fp, "\n P E R F O R M A N C E R E S U L T S\n");
sep_line(fp);
- fprintf(fp, "%s for Gromacs %s\n", ShortProgram(), GromacsVersion());
+ fprintf(fp, "%s for Gromacs %s\n", output_env_get_program_display_name(oenv),
+ gmx_version());
if (!bThreads)
{
fprintf(fp, "Number of ranks : %d\n", nnodes);
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
+#include <assert.h>
#include <math.h>
+#include <stdlib.h>
#include <string.h>
-#include "sysstuff.h"
#include "gromacs/utility/smalloc.h"
#include "macros.h"
#include "gromacs/commandline/pargs.h"
#include "gromacs/math/utilities.h"
-#include "gromacs/fileio/futil.h"
-#include "index.h"
+#include "gromacs/utility/futil.h"
+#include "gromacs/topology/index.h"
#include "typedefs.h"
-#include "xvgr.h"
+#include "gromacs/fileio/xvgr.h"
+#include "viewit.h"
#include "gstat.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trxio.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "gromacs/fileio/matio.h"
#include "gmx_ana.h"
srenew(sbox, nalloc);
srenew(sx, nalloc);
}
+ assert(time != NULL); assert(sbox != NULL);
time[nfr] = t;
copy_mat(box, sbox[nfr]);
for (fbin = 0; fbin < nr; fbin++)
{
sprintf(buf, "%g ps", (fbin + 1)*fshift*dt);
- legend[fbin] = strdup(buf);
+ legend[fbin] = gmx_strdup(buf);
}
xvgr_legend(fp, nr, (const char**)legend, oenv);
for (i = 0; i < nalloc; i++)
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
+#include "config.h"
+
#include <math.h>
+#include <stdio.h>
+#include <string.h>
#include "gromacs/fileio/confio.h"
-#include "gmx_fatal.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/futil.h"
#include "gstat.h"
#include "macros.h"
#include "gromacs/math/utilities.h"
-#include "physics.h"
-#include "index.h"
+#include "gromacs/math/units.h"
+#include "gromacs/topology/index.h"
#include "gromacs/utility/smalloc.h"
#include "gromacs/commandline/pargs.h"
-#include <string.h>
-#include "sysstuff.h"
#include "txtdump.h"
#include "typedefs.h"
-#include "vec.h"
-#include "xvgr.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/fileio/xvgr.h"
+#include "viewit.h"
#include "gmx_ana.h"
#include "gromacs/fft/fft.h"
#include "gromacs/fileio/trxio.h"
* \author Jochen Hub <jhub@gwdg.de>
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <ctype.h>
#include <stdio.h>
#include "gromacs/commandline/pargs.h"
#include "typedefs.h"
#include "gromacs/utility/smalloc.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "copyrite.h"
#include "gromacs/fileio/tpxio.h"
#include "names.h"
#include "gmx_ana.h"
#include "macros.h"
#include "gromacs/utility/cstringutil.h"
-#include "xvgr.h"
+#include "gromacs/fileio/xvgr.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
//! longest file names allowed in input files
#define WHAM_MAXFILELEN 2048
}
else
{
- fn = strdup(fnhist);
+ fn = gmx_strdup(fnhist);
strcpy(title, "Umbrella histograms");
}
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-#include "sysstuff.h"
-#include "physics.h"
#include "typedefs.h"
#include "gromacs/utility/smalloc.h"
#include "macros.h"
-#include "vec.h"
-#include "xvgr.h"
-#include "pbc.h"
-#include "pbc.h"
-#include "index.h"
+#include "gromacs/math/vec.h"
#include "gstat.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "gmx_ana.h"
#include "gromacs/commandline/pargs.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/fileio/strdb.h"
#include "gromacs/fileio/writeps.h"
}
else if (strcmp(argv[i], "-T") == 0)
{
- title = strdup(argv[++i]);
+ title = gmx_strdup(argv[++i]);
fprintf(stderr, "Title will be '%s'\n", title);
}
else if (strcmp(argv[i], "-nn") == 0)
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "typedefs.h"
#include "macros.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/smalloc.h"
#include "viewit.h"
#include "gmx_ana.h"
#include "gromacs/commandline/pargs.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/fileio/matio.h"
#include "gromacs/fileio/trxio.h"
#include "gromacs/fileio/writeps.h"
for (j = 0; (j < ntx); j++)
{
sprintf(buf, "%g", mat[i].axis_x[j]);
- xtick[j] = strdup(buf);
+ xtick[j] = gmx_strdup(buf);
}
ps_strfont(ps, psr->X.tickfont, psr->X.tickfontsize);
for (x = 0; (x < ntx); x++)
for (j = 0; (j < nty); j++)
{
sprintf(buf, "%g", mat[i].axis_y[j]);
- ytick[j] = strdup(buf);
+ ytick[j] = gmx_strdup(buf);
}
for (y = 0; (y < nty); y++)
sfree(mat[i].map);
mat[i].nmap = nmap;
mat[i].map = map;
- if (mat2 && (strcmp(mat[i].title, mat2[i].title) != 0))
+ if (strcmp(mat[i].title, mat2[i].title) != 0)
{
sprintf(mat[i].title+strlen(mat[i].title), " / %s", mat2[i].title);
}
- if (mat2 && (strcmp(mat[i].legend, mat2[i].legend) != 0))
+ if (strcmp(mat[i].legend, mat2[i].legend) != 0)
{
sprintf(mat[i].legend+strlen(mat[i].legend), " / %s", mat2[i].legend);
}
#define GMX_GMXANA_GSTAT_H
#include "../legacyheaders/typedefs.h"
-#include "../commandline/pargs.h"
#include "../legacyheaders/oenv.h"
-#include "../legacyheaders/mshift.h"
-#include "../legacyheaders/rmpbc.h"
-#include "../legacyheaders/index.h"
+#include "../commandline/pargs.h"
+#include "../topology/index.h"
#ifdef __cplusplus
extern "C" {
#endif
+struct gmx_residuetype_t;
+
/***********************************************
*
* A U T O C O R R E L A T I O N
t_dlist *mk_dlist(FILE *log,
t_atoms *atoms, int *nlist,
gmx_bool bPhi, gmx_bool bPsi, gmx_bool bChi, gmx_bool bHChi,
- int maxchi, int r0, gmx_residuetype_t rt);
+ int maxchi, int r0, struct gmx_residuetype_t *rt);
void pr_dlist(FILE *fp, int nl, t_dlist dl[], real dt, int printtype,
gmx_bool bPhi, gmx_bool bPsi, gmx_bool bChi, gmx_bool bOmega, int maxchi);
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include <string.h>
#include "typedefs.h"
#include "macros.h"
-#include "physics.h"
-#include "vec.h"
-#include "index.h"
+#include "gromacs/math/units.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/topology/index.h"
#include "hxprops.h"
#include "gromacs/utility/smalloc.h"
#include "bondf.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
real ellipticity(int nres, t_bb bb[])
{
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2013, by the GROMACS development team, led by
+ * Copyright (c) 2013,2014, 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.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
-#include "types/simple.h"
+#include "gromacs/utility/basedefinitions.h"
+#include "gromacs/utility/real.h"
static void nrerror(const char error_text[], gmx_bool bExit)
{
{
nrerror("allocation failure in rvector()", TRUE);
}
+ /* cppcheck-suppress memleak
+ * free_vector does the same vector arithmetic */
return v-nl;
}
{
nrerror("allocation failure in ivector()", TRUE);
}
+ /* cppcheck-suppress memleak
+ * free_vector does the same vector arithmetic */
return v-nl;
}
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
-#include "nrama.h"
#include <math.h>
-#include "sysstuff.h"
+#include <stdlib.h>
+
+#include "nrama.h"
#include "gromacs/utility/smalloc.h"
#include "typedefs.h"
#include "bondf.h"
-#include "gromacs/fileio/futil.h"
-#include "gmx_fatal.h"
-#include "rmpbc.h"
+#include "gromacs/utility/futil.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/pbcutil/rmpbc.h"
static const char *pp_pat[] = { "C", "N", "CA", "C", "N" };
#define NPP (sizeof(pp_pat)/sizeof(pp_pat[0]))
xr->pp[xr->npp].bShow = FALSE;
sprintf(buf, "%s-%d", *atoms->resinfo[atoms->atom[ff[1]].resind].name,
atoms->resinfo[atoms->atom[ff[1]].resind].nr);
- xr->pp[xr->npp].label = strdup(buf);
+ xr->pp[xr->npp].label = gmx_strdup(buf);
xr->npp++;
}
#include "typedefs.h"
#include "oenv.h"
-#include "mshift.h"
#include "../fileio/trxio.h"
#ifdef __cplusplus
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "nsfactor.h"
-#include <string.h>
+#include "config.h"
-#include "gromacs/random/random.h"
-#include "gromacs/utility/smalloc.h"
-#include "sysstuff.h"
-#include "vec.h"
-#include "nsfactor.h"
+#include <string.h>
-#include "gromacs/fileio/futil.h"
#include "gromacs/fileio/strdb.h"
-#include "gmx_fatal.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/random/random.h"
+#include "gromacs/topology/topology.h"
+#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/utility/gmxomp.h"
+#include "gromacs/utility/smalloc.h"
void check_binwidth(real binwidth)
{
i = line_no;
if (sscanf(line, "%s %d %d %lf", atomnm, &p, &n, &slength) == 4)
{
- gnsf->atomnm[i] = strdup(atomnm);
+ gnsf->atomnm[i] = gmx_strdup(atomnm);
gnsf->n[i] = n;
gnsf->p[i] = p;
gnsf->slength[i] = slength;
#ifndef _nsfactor_h
#define _nsfactor_h
-#include "index.h"
-#include "types/simple.h"
-#include "oenv.h"
+#include "gromacs/legacyheaders/oenv.h"
+#include "gromacs/legacyheaders/types/simple.h"
#ifdef __cplusplus
extern "C" {
#endif
+struct t_topology;
+
typedef struct gmx_neutron_atomic_structurefactors_t {
int nratoms;
int *p; /* proton number */
} gmx_neutron_atomic_structurefactors_t;
typedef struct gmx_sans_t {
- t_topology *top; /* topology */
- double *slength; /* scattering length for this topology */
+ struct t_topology *top; /* topology */
+ double *slength; /* scattering length for this topology */
} gmx_sans_t;
typedef struct gmx_radial_distribution_histogram_t {
gmx_neutron_atomic_structurefactors_t *gmx_neutronstructurefactors_init(const char *datfn);
-gmx_sans_t *gmx_sans_init(t_topology *top, gmx_neutron_atomic_structurefactors_t *gnsf);
+gmx_sans_t *gmx_sans_init(struct t_topology *top, gmx_neutron_atomic_structurefactors_t *gnsf);
gmx_radial_distribution_histogram_t *calc_radial_distribution_histogram (gmx_sans_t *gsans,
rvec *x,
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2013, by the GROMACS development team, led by
+ * Copyright (c) 2013,2014, 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.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdio.h>
#include <math.h>
#include "typedefs.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "gstat.h"
real LegendreP(real x, unsigned long m)
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include "gromacs/utility/smalloc.h"
#include "gromacs/fft/fft.h"
-#include "gmx_fatal.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/futil.h"
#include "interf.h"
#include "powerspect.h"
/*Prepare data structures for FFT, with time averaging of power spectrum*/
if ( (status = gmx_fft_init_2d_real(&fftp, xbins, ybins, GMX_FFT_FLAG_NONE) ) != 0)
{
- free(fftp);
gmx_fatal(status, __FILE__, __LINE__, "Error allocating FFT");
}
gmx_ffclose(datfile1);
gmx_ffclose(datfile2);
- free(ftspect1);
- free(ftspect2);
+ sfree(ftspect1);
+ sfree(ftspect2);
}
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdlib.h>
#include <math.h>
#include "typedefs.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
#include "macros.h"
-#include "physics.h"
+#include "gromacs/math/units.h"
#include "gromacs/utility/smalloc.h"
#include "gstat.h"
#include "gromacs/fileio/matio.h"
#include "copyrite.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
typedef struct {
int nx, ny;
* the research papers on the package. Check out http://www.gromacs.org.
*/
/* This file is completely threadsafe - keep it that way! */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include "typedefs.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "gromacs/utility/smalloc.h"
#include "txtdump.h"
#include "princ.h"
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2010, by the GROMACS development team, led by
+ * Copyright (c) 2010,2014, 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.
*/
-
-#ifndef _princ_h
-#define _princ_h
+#ifndef GMX_GMXANA_PRINC_H
+#define GMX_GMXANA_PRINC_H
#include "typedefs.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
-#include "sysstuff.h"
#include "gromacs/utility/smalloc.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/math/utilities.h"
-#include "gmx_fatal.h"
-#include "vec.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/math/vec.h"
#include "macros.h"
-#include "index.h"
+#include "gromacs/topology/index.h"
#include "gromacs/fileio/strdb.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trxio.h"
#include "typedefs.h"
#include "oenv.h"
#include "gromacs/fileio/gmxfio.h"
-#include "xvgr.h"
-#include "gromacs/fileio/matio.h"
+#include "gromacs/fileio/xvgr.h"
#include "names.h"
#include "sfactor.h"
t_complex ***t;
int i, j;
- t = (t_complex ***)calloc(x, sizeof(t_complex**));
- if (!t)
- {
- exit(fprintf(stderr, "\nallocation error"));
- }
- t[0] = (t_complex **)calloc(x*y, sizeof(t_complex*));
- if (!t[0])
- {
- exit(fprintf(stderr, "\nallocation error"));
- }
- t[0][0] = (t_complex *)calloc(x*y*z, sizeof(t_complex));
- if (!t[0][0])
- {
- exit(fprintf(stderr, "\nallocation error"));
- }
+ snew(t, x);
+ snew(t[0], x*y);
+ snew(t[0][0], x*y*z);
for (j = 1; j < y; j++)
{
}
}
}
- sfree (counter); free(tmpSF[0][0]); free(tmpSF[0]); free(tmpSF);
+ sfree(counter);
+ sfree(tmpSF[0][0]);
+ sfree(tmpSF[0]);
+ sfree(tmpSF);
}
if (sscanf(line, "%s %d %lf %lf %lf %lf %lf %lf %lf %lf %lf",
atomn, &p, &a1, &a2, &a3, &a4, &b1, &b2, &b3, &b4, &c) == 11)
{
- gsf->atomnm[i] = strdup(atomn);
+ gsf->atomnm[i] = gmx_strdup(atomn);
gsf->p[i] = p;
snew(gsf->a[i], 4);
snew(gsf->b[i], 4);
{
copy_rvec (fr->x[index[i]], pos[i].x);
}
-
- positions = (reduced_atom_t *)pos;
}
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-
#ifndef _sfactor_h
#define _sfactor_h
-
-#include "index.h"
#include "types/simple.h"
#include "../math/gmxcomplex.h"
#include "oenv.h"
-
-
#ifdef __cplusplus
extern "C" {
#endif
+struct t_topology;
+struct t_trxframe;
typedef struct gmx_structurefactors gmx_structurefactors_t;
int return_atom_type (const char *name, gmx_structurefactors_t *gsf);
-void rearrange_atoms (reduced_atom_t * positions, t_trxframe *fr, atom_id * index,
- int isize, t_topology * top, gmx_bool flag, gmx_structurefactors_t *gsf);
+void rearrange_atoms (reduced_atom_t * positions, struct t_trxframe *fr, atom_id * index,
+ int isize, struct t_topology * top, gmx_bool flag, gmx_structurefactors_t *gsf);
int do_scattering_intensity (const char* fnTPS, const char* fnNDX,
const char* fnXVG, const char *fnTRX,
# conditionally built, so we cannot use a GLOB_RECURSE here.
file(GLOB GMXLIB_SOURCES *.c *.cpp)
-# Files called xxx_test.c are test drivers with a main() function for module xxx.c,
-# so they should not be included in the library
-file(GLOB_RECURSE NOT_GMXLIB_SOURCES *_test.c *\#*)
-list(REMOVE_ITEM GMXLIB_SOURCES ${NOT_GMXLIB_SOURCES})
-
# gpu utils + cuda tools module
if(GMX_GPU)
# The log file output queries Cuda if GPU support is enabled
add_subdirectory(cuda_tools)
- add_subdirectory(gpu_utils)
- set(GMX_GPU_LIBRARIES ${GMX_GPU_LIBRARIES} gpu_utils cuda_tools PARENT_SCOPE)
+ add_subdirectory(gpu_utils)
endif()
set(GMXLIB_SOURCES ${GMXLIB_SOURCES} ${NONBONDED_SOURCES} PARENT_SCOPE)
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
-#include <math.h>
#include <assert.h>
-#include "physics.h"
-#include "vec.h"
+#include <math.h>
+
+#include "gromacs/math/units.h"
+#include "gromacs/math/vec.h"
#include "gromacs/math/utilities.h"
#include "txtdump.h"
#include "bondf.h"
-#include "gromacs/utility/smalloc.h"
-#include "pbc.h"
#include "ns.h"
#include "macros.h"
#include "names.h"
-#include "gmx_fatal.h"
-#include "mshift.h"
-#include "main.h"
#include "disre.h"
#include "orires.h"
#include "force.h"
#include "nonbonded.h"
#include "restcbt.h"
+#include "gromacs/pbcutil/ishift.h"
+#include "gromacs/pbcutil/mshift.h"
+#include "gromacs/pbcutil/pbc.h"
#include "gromacs/simd/simd.h"
#include "gromacs/simd/simd_math.h"
#include "gromacs/simd/vector_operations.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
/* Find a better place for this? */
const int cmap_coeff_matrix[] = {
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "typedefs.h"
#include "gromacs/utility/smalloc.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "calcgrid.h"
/* The grid sizes below are based on timing of a 3D cubic grid in fftw
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
-#include "sysstuff.h"
#include "typedefs.h"
-#include "vec.h"
-#include "pbc.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/pbcutil/pbc.h"
#include "gromacs/utility/smalloc.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "chargegroup.h"
/* The source code in this file should be thread-safe.
Please keep it that way. */
+#include "checkpoint.h"
+#include "config.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
+#include <errno.h>
+#include <stdlib.h>
#include <string.h>
#include <time.h>
+#include <fcntl.h>
#ifdef HAVE_SYS_TIME_H
#include <sys/time.h>
#endif
#include "names.h"
#include "typedefs.h"
#include "types/commrec.h"
-#include "gromacs/utility/smalloc.h"
#include "txtdump.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "network.h"
-#include "checkpoint.h"
-#include "main.h"
-#include "gromacs/utility/cstringutil.h"
-#include <fcntl.h>
#include "gromacs/fileio/filenm.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/fileio/gmxfio.h"
#include "gromacs/fileio/xdrf.h"
#include "gromacs/fileio/xdr_datatype.h"
+#include "gromacs/utility/basenetwork.h"
#include "gromacs/utility/baseversion.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
#include "buildinfo.h"
return 0;
#else
FILE *fp;
- int rc;
fp = fopen(filename, "rb+");
{
if (dtc == xdr_datatype_double)
{
+ /* cppcheck-suppress invalidPointerCast
+ * Only executed if real is anyhow double */
vd = (double *)vp;
}
else
static int do_cpte_real(XDR *xd, int cptp, int ecpt, int sflags,
real *r, FILE *list)
{
- int n;
-
return do_cpte_reals_low(xd, cptp, ecpt, sflags, 1, NULL, &r, list, ecprREAL);
}
bool_t res = 0;
int dtc = xdr_datatype_int;
int *vp, *va = NULL;
- int nf, dt, i;
+ int nf, dt;
nf = n;
res = xdr_int(xd, &nf);
bool_t res = 0;
int dtc = xdr_datatype_double;
double *vp, *va = NULL;
- int nf, dt, i;
+ int nf, dt;
nf = n;
res = xdr_int(xd, &nf);
static int do_cpte_rvecs(XDR *xd, int cptp, int ecpt, int sflags,
int n, rvec **v, FILE *list)
{
- int n3;
-
return do_cpte_reals_low(xd, cptp, ecpt, sflags,
n*DIM, NULL, (real **)v, list, ecprRVEC);
}
matrix v, FILE *list)
{
real *vr;
- real ret;
+ int ret;
vr = (real *)&(v[0][0]);
ret = do_cpte_reals_low(xd, cptp, ecpt, sflags,
int n, real **v, FILE *list)
{
int i;
- real *vr;
- real ret, reti;
+ int ret, reti;
char name[CPTSTRLEN];
ret = 0;
}
for (i = 0; i < n; i++)
{
- reti = 0;
- vr = v[i];
reti = do_cpte_reals_low(xd, cptp, ecpt, sflags, n, NULL, &(v[i]), NULL, ecprREAL);
if (list && reti == 0)
{
sprintf(name, "%s[%d]", st_names(cptp, ecpt), i);
pr_reals(list, 0, name, v[i], n);
}
- if (reti == 0)
+ if (reti != 0)
{
- ret = 0;
+ ret = reti;
}
}
return ret;
bool_t res = 0;
int magic;
int idum = 0;
- int i;
char *fhost;
if (bRead)
{
enerhist->ener_sum_sim[i] = enerhist->ener_sum[i];
}
- fflags |= (1<<eenhENERGY_SUM_SIM);
}
if ( (fflags & (1<<eenhENERGY_NSUM)) &&
{
/* Assume we have an old file format and copy nsum to nsteps */
enerhist->nsteps = enerhist->nsum;
- fflags |= (1<<eenhENERGY_NSTEPS);
}
if ( (fflags & (1<<eenhENERGY_NSUM_SIM)) &&
!(fflags & (1<<eenhENERGY_NSTEPS_SIM)))
{
/* Assume we have an old file format and copy nsum to nsteps */
enerhist->nsteps_sim = enerhist->nsum_sim;
- fflags |= (1<<eenhENERGY_NSTEPS_SIM);
}
return ret;
static int do_cpt_EDstate(XDR *xd, gmx_bool bRead,
edsamstate_t *EDstate, FILE *list)
{
- int i, j;
+ int i;
int ret = 0;
char buf[STRLEN];
gmx_file_position_t **p_outputfiles, int *nfiles,
FILE *list, int file_version)
{
- int i, j;
+ int i;
gmx_off_t offset;
gmx_off_t mask = 0xFFFFFFFFL;
int offset_high, offset_low;
char *fntemp; /* the temporary checkpoint file name */
time_t now;
char timebuf[STRLEN];
- int nppnodes, npmenodes, flag_64bit;
+ int nppnodes, npmenodes;
char buf[1024], suffix[5+STEPSTRSIZE], sbuf[STEPSTRSIZE];
gmx_file_position_t *outputfiles;
int noutputfiles;
char *ftime;
- int flags_eks, flags_enh, flags_dfh, i;
+ int flags_eks, flags_enh, flags_dfh;
t_fileio *ret;
if (DOMAINDECOMP(cr))
*/
int gmx_major, gmx_minor;
int cpt_major, cpt_minor;
- sscanf(gmx_version(), "VERSION %d.%d", &gmx_major, &gmx_minor);
- sscanf(version, "VERSION %d.%d", &cpt_major, &cpt_minor);
+ sscanf(gmx_version(), "VERSION %5d.%5d", &gmx_major, &gmx_minor);
+ sscanf(version, "VERSION %5d.%5d", &cpt_major, &cpt_minor);
version_differs = (gmx_major != cpt_major || gmx_minor != cpt_minor);
}
int file_version;
char *version, *btime, *buser, *bhost, *fprog, *ftime;
int double_prec;
- char filename[STRLEN], buf[STEPSTRSIZE];
- int nppnodes, eIntegrator_f, nppnodes_f, npmenodes_f;
+ char buf[STEPSTRSIZE];
+ int eIntegrator_f, nppnodes_f, npmenodes_f;
ivec dd_nc_f;
int natoms, ngtc, nnhpres, nhchainlength, nlambda, fflags, flags_eks, flags_enh, flags_dfh;
int d;
if (!PAR(cr))
{
- nppnodes = 1;
cr->npmenodes = 0;
}
else if (cr->nnodes == nppnodes_f + npmenodes_f)
{
cr->npmenodes = npmenodes_f;
}
- nppnodes = cr->nnodes - cr->npmenodes;
+ int nppnodes = cr->nnodes - cr->npmenodes;
if (nppnodes == nppnodes_f)
{
for (d = 0; d < DIM; d++)
}
}
}
- else
- {
- /* The number of PP nodes has not been set yet */
- nppnodes = -1;
- }
if (fflags != state->flags)
{
ivec dd_nc;
t_state state;
int flags_eks, flags_enh, flags_dfh;
- int indent;
- int i, j;
int ret;
gmx_file_position_t *outputfiles;
int nfiles;
+++ /dev/null
-/*
- * This file is part of the GROMACS molecular simulation package.
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2013, 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.
- *
- * GROMACS is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1
- * of the License, or (at your option) any later version.
- *
- * GROMACS is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with GROMACS; if not, see
- * http://www.gnu.org/licenses, or write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * If you want to redistribute modifications to GROMACS, 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 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.
- */
-/* This file is completely threadsafe - keep it that way! */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-
-struct gmx_invsqrtdata
-{
- unsigned int exptab[256]; /*!< Exponential lookup table */
- unsigned int fracttab[4096]; /*!< Mantissa lookup table */
-};
-
-
-struct gmx_invsqrtdata
-F77_FUNC(gmxinvsqrtdata, GMXINVSQRTDATA) =
-{
- /* data for exponent table - 256 floats */
- {
- 0x5f000000, 0x5e800000, 0x5e800000, 0x5e000000,
- 0x5e000000, 0x5d800000, 0x5d800000, 0x5d000000,
- 0x5d000000, 0x5c800000, 0x5c800000, 0x5c000000,
- 0x5c000000, 0x5b800000, 0x5b800000, 0x5b000000,
- 0x5b000000, 0x5a800000, 0x5a800000, 0x5a000000,
- 0x5a000000, 0x59800000, 0x59800000, 0x59000000,
- 0x59000000, 0x58800000, 0x58800000, 0x58000000,
- 0x58000000, 0x57800000, 0x57800000, 0x57000000,
- 0x57000000, 0x56800000, 0x56800000, 0x56000000,
- 0x56000000, 0x55800000, 0x55800000, 0x55000000,
- 0x55000000, 0x54800000, 0x54800000, 0x54000000,
- 0x54000000, 0x53800000, 0x53800000, 0x53000000,
- 0x53000000, 0x52800000, 0x52800000, 0x52000000,
- 0x52000000, 0x51800000, 0x51800000, 0x51000000,
- 0x51000000, 0x50800000, 0x50800000, 0x50000000,
- 0x50000000, 0x4f800000, 0x4f800000, 0x4f000000,
- 0x4f000000, 0x4e800000, 0x4e800000, 0x4e000000,
- 0x4e000000, 0x4d800000, 0x4d800000, 0x4d000000,
- 0x4d000000, 0x4c800000, 0x4c800000, 0x4c000000,
- 0x4c000000, 0x4b800000, 0x4b800000, 0x4b000000,
- 0x4b000000, 0x4a800000, 0x4a800000, 0x4a000000,
- 0x4a000000, 0x49800000, 0x49800000, 0x49000000,
- 0x49000000, 0x48800000, 0x48800000, 0x48000000,
- 0x48000000, 0x47800000, 0x47800000, 0x47000000,
- 0x47000000, 0x46800000, 0x46800000, 0x46000000,
- 0x46000000, 0x45800000, 0x45800000, 0x45000000,
- 0x45000000, 0x44800000, 0x44800000, 0x44000000,
- 0x44000000, 0x43800000, 0x43800000, 0x43000000,
- 0x43000000, 0x42800000, 0x42800000, 0x42000000,
- 0x42000000, 0x41800000, 0x41800000, 0x41000000,
- 0x41000000, 0x40800000, 0x40800000, 0x40000000,
- 0x40000000, 0x3f800000, 0x3f800000, 0x3f000000,
- 0x3f000000, 0x3e800000, 0x3e800000, 0x3e000000,
- 0x3e000000, 0x3d800000, 0x3d800000, 0x3d000000,
- 0x3d000000, 0x3c800000, 0x3c800000, 0x3c000000,
- 0x3c000000, 0x3b800000, 0x3b800000, 0x3b000000,
- 0x3b000000, 0x3a800000, 0x3a800000, 0x3a000000,
- 0x3a000000, 0x39800000, 0x39800000, 0x39000000,
- 0x39000000, 0x38800000, 0x38800000, 0x38000000,
- 0x38000000, 0x37800000, 0x37800000, 0x37000000,
- 0x37000000, 0x36800000, 0x36800000, 0x36000000,
- 0x36000000, 0x35800000, 0x35800000, 0x35000000,
- 0x35000000, 0x34800000, 0x34800000, 0x34000000,
- 0x34000000, 0x33800000, 0x33800000, 0x33000000,
- 0x33000000, 0x32800000, 0x32800000, 0x32000000,
- 0x32000000, 0x31800000, 0x31800000, 0x31000000,
- 0x31000000, 0x30800000, 0x30800000, 0x30000000,
- 0x30000000, 0x2f800000, 0x2f800000, 0x2f000000,
- 0x2f000000, 0x2e800000, 0x2e800000, 0x2e000000,
- 0x2e000000, 0x2d800000, 0x2d800000, 0x2d000000,
- 0x2d000000, 0x2c800000, 0x2c800000, 0x2c000000,
- 0x2c000000, 0x2b800000, 0x2b800000, 0x2b000000,
- 0x2b000000, 0x2a800000, 0x2a800000, 0x2a000000,
- 0x2a000000, 0x29800000, 0x29800000, 0x29000000,
- 0x29000000, 0x28800000, 0x28800000, 0x28000000,
- 0x28000000, 0x27800000, 0x27800000, 0x27000000,
- 0x27000000, 0x26800000, 0x26800000, 0x26000000,
- 0x26000000, 0x25800000, 0x25800000, 0x25000000,
- 0x25000000, 0x24800000, 0x24800000, 0x24000000,
- 0x24000000, 0x23800000, 0x23800000, 0x23000000,
- 0x23000000, 0x22800000, 0x22800000, 0x22000000,
- 0x22000000, 0x21800000, 0x21800000, 0x21000000,
- 0x21000000, 0x20800000, 0x20800000, 0x20000000,
- 0x20000000, 0x1f800000, 0x1f800000, 0x1f000000
- },
- /* data for fraction table - 4096 floats */
- {
- 0x3504f3, 0x34f9a4, 0x34ee57, 0x34e30c, 0x34d7c3, 0x34cc7c, 0x34c137, 0x34b5f5,
- 0x34aab4, 0x349f76, 0x34943a, 0x348900, 0x347dc7, 0x347291, 0x34675e, 0x345c2c,
- 0x3450fc, 0x3445ce, 0x343aa3, 0x342f79, 0x342452, 0x34192c, 0x340e09, 0x3402e8,
- 0x33f7c9, 0x33ecac, 0x33e191, 0x33d678, 0x33cb61, 0x33c04c, 0x33b539, 0x33aa28,
- 0x339f19, 0x33940d, 0x338902, 0x337df9, 0x3372f3, 0x3367ee, 0x335cec, 0x3351eb,
- 0x3346ed, 0x333bf0, 0x3330f6, 0x3325fd, 0x331b07, 0x331013, 0x330520, 0x32fa30,
- 0x32ef41, 0x32e455, 0x32d96b, 0x32ce82, 0x32c39c, 0x32b8b7, 0x32add5, 0x32a2f5,
- 0x329816, 0x328d3a, 0x32825f, 0x327787, 0x326cb0, 0x3261dc, 0x325709, 0x324c38,
- 0x32416a, 0x32369d, 0x322bd2, 0x32210a, 0x321643, 0x320b7e, 0x3200bb, 0x31f5fa,
- 0x31eb3b, 0x31e07e, 0x31d5c3, 0x31cb0a, 0x31c053, 0x31b59d, 0x31aaea, 0x31a038,
- 0x319589, 0x318adb, 0x318030, 0x317586, 0x316ade, 0x316038, 0x315594, 0x314af2,
- 0x314052, 0x3135b4, 0x312b18, 0x31207d, 0x3115e5, 0x310b4e, 0x3100b9, 0x30f627,
- 0x30eb96, 0x30e107, 0x30d67a, 0x30cbee, 0x30c165, 0x30b6dd, 0x30ac58, 0x30a1d4,
- 0x309752, 0x308cd2, 0x308254, 0x3077d8, 0x306d5e, 0x3062e5, 0x30586e, 0x304dfa,
- 0x304387, 0x303916, 0x302ea7, 0x302439, 0x3019ce, 0x300f64, 0x3004fc, 0x2ffa96,
- 0x2ff032, 0x2fe5d0, 0x2fdb6f, 0x2fd111, 0x2fc6b4, 0x2fbc59, 0x2fb200, 0x2fa7a9,
- 0x2f9d53, 0x2f9300, 0x2f88ae, 0x2f7e5e, 0x2f7410, 0x2f69c3, 0x2f5f79, 0x2f5530,
- 0x2f4ae9, 0x2f40a4, 0x2f3661, 0x2f2c1f, 0x2f21df, 0x2f17a1, 0x2f0d65, 0x2f032b,
- 0x2ef8f2, 0x2eeebc, 0x2ee487, 0x2eda53, 0x2ed022, 0x2ec5f2, 0x2ebbc5, 0x2eb199,
- 0x2ea76e, 0x2e9d46, 0x2e931f, 0x2e88fa, 0x2e7ed7, 0x2e74b5, 0x2e6a96, 0x2e6078,
- 0x2e565c, 0x2e4c41, 0x2e4229, 0x2e3812, 0x2e2dfd, 0x2e23e9, 0x2e19d8, 0x2e0fc8,
- 0x2e05ba, 0x2dfbad, 0x2df1a3, 0x2de79a, 0x2ddd93, 0x2dd38d, 0x2dc989, 0x2dbf87,
- 0x2db587, 0x2dab89, 0x2da18c, 0x2d9791, 0x2d8d97, 0x2d83a0, 0x2d79aa, 0x2d6fb6,
- 0x2d65c3, 0x2d5bd2, 0x2d51e3, 0x2d47f6, 0x2d3e0a, 0x2d3420, 0x2d2a38, 0x2d2051,
- 0x2d166c, 0x2d0c89, 0x2d02a8, 0x2cf8c8, 0x2ceeea, 0x2ce50d, 0x2cdb33, 0x2cd15a,
- 0x2cc782, 0x2cbdad, 0x2cb3d9, 0x2caa06, 0x2ca036, 0x2c9667, 0x2c8c99, 0x2c82ce,
- 0x2c7904, 0x2c6f3b, 0x2c6575, 0x2c5bb0, 0x2c51ed, 0x2c482b, 0x2c3e6b, 0x2c34ad,
- 0x2c2af0, 0x2c2135, 0x2c177b, 0x2c0dc4, 0x2c040e, 0x2bfa59, 0x2bf0a6, 0x2be6f5,
- 0x2bdd46, 0x2bd398, 0x2bc9eb, 0x2bc041, 0x2bb698, 0x2bacf0, 0x2ba34b, 0x2b99a6,
- 0x2b9004, 0x2b8663, 0x2b7cc4, 0x2b7326, 0x2b698a, 0x2b5ff0, 0x2b5657, 0x2b4cc0,
- 0x2b432a, 0x2b3996, 0x2b3004, 0x2b2673, 0x2b1ce4, 0x2b1357, 0x2b09cb, 0x2b0040,
- 0x2af6b7, 0x2aed30, 0x2ae3ab, 0x2ada27, 0x2ad0a4, 0x2ac724, 0x2abda4, 0x2ab427,
- 0x2aaaab, 0x2aa130, 0x2a97b7, 0x2a8e40, 0x2a84ca, 0x2a7b56, 0x2a71e3, 0x2a6872,
- 0x2a5f03, 0x2a5595, 0x2a4c29, 0x2a42be, 0x2a3955, 0x2a2fed, 0x2a2687, 0x2a1d23,
- 0x2a13c0, 0x2a0a5e, 0x2a00fe, 0x29f7a0, 0x29ee43, 0x29e4e8, 0x29db8e, 0x29d236,
- 0x29c8e0, 0x29bf8b, 0x29b637, 0x29ace5, 0x29a395, 0x299a46, 0x2990f8, 0x2987ad,
- 0x297e62, 0x297519, 0x296bd2, 0x29628c, 0x295948, 0x295005, 0x2946c4, 0x293d85,
- 0x293446, 0x292b0a, 0x2921cf, 0x291895, 0x290f5d, 0x290626, 0x28fcf1, 0x28f3be,
- 0x28ea8c, 0x28e15b, 0x28d82c, 0x28cefe, 0x28c5d2, 0x28bca8, 0x28b37f, 0x28aa57,
- 0x28a131, 0x28980c, 0x288ee9, 0x2885c7, 0x287ca7, 0x287389, 0x286a6b, 0x286150,
- 0x285835, 0x284f1c, 0x284605, 0x283cef, 0x2833db, 0x282ac8, 0x2821b7, 0x2818a7,
- 0x280f98, 0x28068b, 0x27fd80, 0x27f475, 0x27eb6d, 0x27e266, 0x27d960, 0x27d05c,
- 0x27c759, 0x27be57, 0x27b557, 0x27ac59, 0x27a35c, 0x279a60, 0x279166, 0x27886d,
- 0x277f76, 0x277680, 0x276d8c, 0x276499, 0x275ba7, 0x2752b7, 0x2749c9, 0x2740db,
- 0x2737f0, 0x272f05, 0x27261c, 0x271d35, 0x27144f, 0x270b6a, 0x270287, 0x26f9a5,
- 0x26f0c4, 0x26e7e5, 0x26df08, 0x26d62c, 0x26cd51, 0x26c477, 0x26bba0, 0x26b2c9,
- 0x26a9f4, 0x26a120, 0x26984e, 0x268f7d, 0x2686ad, 0x267ddf, 0x267512, 0x266c47,
- 0x26637d, 0x265ab4, 0x2651ed, 0x264927, 0x264063, 0x2637a0, 0x262ede, 0x26261e,
- 0x261d5f, 0x2614a2, 0x260be6, 0x26032b, 0x25fa72, 0x25f1ba, 0x25e903, 0x25e04e,
- 0x25d79a, 0x25cee7, 0x25c636, 0x25bd87, 0x25b4d8, 0x25ac2b, 0x25a37f, 0x259ad5,
- 0x25922c, 0x258985, 0x2580de, 0x257839, 0x256f96, 0x2566f4, 0x255e53, 0x2555b3,
- 0x254d15, 0x254479, 0x253bdd, 0x253343, 0x252aaa, 0x252213, 0x25197d, 0x2510e8,
- 0x250855, 0x24ffc3, 0x24f732, 0x24eea3, 0x24e615, 0x24dd88, 0x24d4fc, 0x24cc72,
- 0x24c3ea, 0x24bb62, 0x24b2dc, 0x24aa57, 0x24a1d4, 0x249952, 0x2490d1, 0x248852,
- 0x247fd3, 0x247756, 0x246edb, 0x246661, 0x245de8, 0x245570, 0x244cfa, 0x244485,
- 0x243c11, 0x24339f, 0x242b2e, 0x2422be, 0x241a4f, 0x2411e2, 0x240976, 0x24010c,
- 0x23f8a2, 0x23f03a, 0x23e7d4, 0x23df6e, 0x23d70a, 0x23cea7, 0x23c646, 0x23bde6,
- 0x23b587, 0x23ad29, 0x23a4cc, 0x239c71, 0x239417, 0x238bbf, 0x238368, 0x237b12,
- 0x2372bd, 0x236a69, 0x236217, 0x2359c6, 0x235177, 0x234928, 0x2340db, 0x23388f,
- 0x233045, 0x2327fb, 0x231fb3, 0x23176c, 0x230f27, 0x2306e2, 0x22fe9f, 0x22f65e,
- 0x22ee1d, 0x22e5de, 0x22dda0, 0x22d563, 0x22cd28, 0x22c4ed, 0x22bcb4, 0x22b47c,
- 0x22ac46, 0x22a411, 0x229bdd, 0x2293aa, 0x228b78, 0x228348, 0x227b19, 0x2272eb,
- 0x226abe, 0x226293, 0x225a69, 0x225240, 0x224a18, 0x2241f2, 0x2239cc, 0x2231a8,
- 0x222985, 0x222164, 0x221944, 0x221124, 0x220907, 0x2200ea, 0x21f8ce, 0x21f0b4,
- 0x21e89b, 0x21e083, 0x21d86d, 0x21d057, 0x21c843, 0x21c030, 0x21b81e, 0x21b00e,
- 0x21a7fe, 0x219ff0, 0x2197e3, 0x218fd8, 0x2187cd, 0x217fc4, 0x2177bc, 0x216fb5,
- 0x2167af, 0x215faa, 0x2157a7, 0x214fa5, 0x2147a4, 0x213fa4, 0x2137a5, 0x212fa8,
- 0x2127ac, 0x211fb1, 0x2117b7, 0x210fbe, 0x2107c7, 0x20ffd0, 0x20f7db, 0x20efe7,
- 0x20e7f5, 0x20e003, 0x20d813, 0x20d023, 0x20c835, 0x20c048, 0x20b85d, 0x20b072,
- 0x20a889, 0x20a0a1, 0x2098ba, 0x2090d4, 0x2088ef, 0x20810b, 0x207929, 0x207148,
- 0x206968, 0x206189, 0x2059ab, 0x2051cf, 0x2049f3, 0x204219, 0x203a40, 0x203268,
- 0x202a91, 0x2022bb, 0x201ae7, 0x201313, 0x200b41, 0x200370, 0x1ffba0, 0x1ff3d1,
- 0x1fec04, 0x1fe437, 0x1fdc6c, 0x1fd4a2, 0x1fccd9, 0x1fc511, 0x1fbd4a, 0x1fb584,
- 0x1fadc0, 0x1fa5fc, 0x1f9e3a, 0x1f9679, 0x1f8eb9, 0x1f86fa, 0x1f7f3c, 0x1f777f,
- 0x1f6fc4, 0x1f680a, 0x1f6050, 0x1f5898, 0x1f50e1, 0x1f492b, 0x1f4176, 0x1f39c3,
- 0x1f3210, 0x1f2a5f, 0x1f22af, 0x1f1aff, 0x1f1351, 0x1f0ba4, 0x1f03f8, 0x1efc4e,
- 0x1ef4a4, 0x1eecfb, 0x1ee554, 0x1eddae, 0x1ed608, 0x1ece64, 0x1ec6c1, 0x1ebf1f,
- 0x1eb77f, 0x1eafdf, 0x1ea840, 0x1ea0a3, 0x1e9906, 0x1e916b, 0x1e89d1, 0x1e8238,
- 0x1e7aa0, 0x1e7309, 0x1e6b73, 0x1e63de, 0x1e5c4a, 0x1e54b8, 0x1e4d26, 0x1e4596,
- 0x1e3e06, 0x1e3678, 0x1e2eeb, 0x1e275f, 0x1e1fd4, 0x1e184a, 0x1e10c1, 0x1e0939,
- 0x1e01b3, 0x1dfa2d, 0x1df2a8, 0x1deb25, 0x1de3a2, 0x1ddc21, 0x1dd4a1, 0x1dcd22,
- 0x1dc5a3, 0x1dbe26, 0x1db6aa, 0x1daf2f, 0x1da7b6, 0x1da03d, 0x1d98c5, 0x1d914e,
- 0x1d89d9, 0x1d8264, 0x1d7af1, 0x1d737e, 0x1d6c0d, 0x1d649c, 0x1d5d2d, 0x1d55bf,
- 0x1d4e52, 0x1d46e5, 0x1d3f7a, 0x1d3810, 0x1d30a7, 0x1d293f, 0x1d21d8, 0x1d1a73,
- 0x1d130e, 0x1d0baa, 0x1d0447, 0x1cfce6, 0x1cf585, 0x1cee25, 0x1ce6c7, 0x1cdf69,
- 0x1cd80d, 0x1cd0b1, 0x1cc957, 0x1cc1fe, 0x1cbaa5, 0x1cb34e, 0x1cabf8, 0x1ca4a2,
- 0x1c9d4e, 0x1c95fb, 0x1c8ea9, 0x1c8758, 0x1c8008, 0x1c78b8, 0x1c716a, 0x1c6a1d,
- 0x1c62d1, 0x1c5b86, 0x1c543c, 0x1c4cf3, 0x1c45ab, 0x1c3e65, 0x1c371f, 0x1c2fda,
- 0x1c2896, 0x1c2153, 0x1c1a11, 0x1c12d0, 0x1c0b90, 0x1c0452, 0x1bfd14, 0x1bf5d7,
- 0x1bee9b, 0x1be760, 0x1be027, 0x1bd8ee, 0x1bd1b6, 0x1bca7f, 0x1bc349, 0x1bbc15,
- 0x1bb4e1, 0x1badae, 0x1ba67c, 0x1b9f4c, 0x1b981c, 0x1b90ed, 0x1b89bf, 0x1b8292,
- 0x1b7b67, 0x1b743c, 0x1b6d12, 0x1b65e9, 0x1b5ec1, 0x1b579a, 0x1b5074, 0x1b4950,
- 0x1b422c, 0x1b3b09, 0x1b33e7, 0x1b2cc6, 0x1b25a6, 0x1b1e87, 0x1b1769, 0x1b104c,
- 0x1b0930, 0x1b0215, 0x1afafb, 0x1af3e2, 0x1aecc9, 0x1ae5b2, 0x1ade9c, 0x1ad787,
- 0x1ad073, 0x1ac95f, 0x1ac24d, 0x1abb3c, 0x1ab42b, 0x1aad1c, 0x1aa60d, 0x1a9f00,
- 0x1a97f3, 0x1a90e8, 0x1a89dd, 0x1a82d4, 0x1a7bcb, 0x1a74c3, 0x1a6dbd, 0x1a66b7,
- 0x1a5fb2, 0x1a58ae, 0x1a51ab, 0x1a4aa9, 0x1a43a8, 0x1a3ca8, 0x1a35a9, 0x1a2eab,
- 0x1a27ae, 0x1a20b1, 0x1a19b6, 0x1a12bc, 0x1a0bc2, 0x1a04ca, 0x19fdd2, 0x19f6dc,
- 0x19efe6, 0x19e8f2, 0x19e1fe, 0x19db0b, 0x19d419, 0x19cd28, 0x19c638, 0x19bf49,
- 0x19b85b, 0x19b16e, 0x19aa82, 0x19a396, 0x199cac, 0x1995c3, 0x198eda, 0x1987f3,
- 0x19810c, 0x197a26, 0x197342, 0x196c5e, 0x19657b, 0x195e99, 0x1957b8, 0x1950d8,
- 0x1949f8, 0x19431a, 0x193c3d, 0x193560, 0x192e85, 0x1927aa, 0x1920d1, 0x1919f8,
- 0x191320, 0x190c49, 0x190573, 0x18fe9e, 0x18f7ca, 0x18f0f7, 0x18ea24, 0x18e353,
- 0x18dc82, 0x18d5b3, 0x18cee4, 0x18c816, 0x18c149, 0x18ba7d, 0x18b3b2, 0x18ace8,
- 0x18a61f, 0x189f56, 0x18988f, 0x1891c8, 0x188b03, 0x18843e, 0x187d7a, 0x1876b7,
- 0x186ff5, 0x186934, 0x186274, 0x185bb4, 0x1854f6, 0x184e38, 0x18477c, 0x1840c0,
- 0x183a05, 0x18334b, 0x182c92, 0x1825da, 0x181f23, 0x18186c, 0x1811b7, 0x180b02,
- 0x18044e, 0x17fd9b, 0x17f6e9, 0x17f038, 0x17e988, 0x17e2d9, 0x17dc2a, 0x17d57d,
- 0x17ced0, 0x17c824, 0x17c179, 0x17bacf, 0x17b426, 0x17ad7e, 0x17a6d6, 0x17a030,
- 0x17998a, 0x1792e5, 0x178c41, 0x17859e, 0x177efc, 0x17785b, 0x1771ba, 0x176b1b,
- 0x17647c, 0x175dde, 0x175741, 0x1750a5, 0x174a0a, 0x17436f, 0x173cd6, 0x17363d,
- 0x172fa5, 0x17290f, 0x172278, 0x171be3, 0x17154f, 0x170ebb, 0x170829, 0x170197,
- 0x16fb06, 0x16f476, 0x16ede7, 0x16e759, 0x16e0cb, 0x16da3e, 0x16d3b3, 0x16cd28,
- 0x16c69e, 0x16c014, 0x16b98c, 0x16b305, 0x16ac7e, 0x16a5f8, 0x169f73, 0x1698ef,
- 0x16926c, 0x168be9, 0x168568, 0x167ee7, 0x167867, 0x1671e8, 0x166b6a, 0x1664ec,
- 0x165e70, 0x1657f4, 0x165179, 0x164aff, 0x164486, 0x163e0d, 0x163796, 0x16311f,
- 0x162aa9, 0x162434, 0x161dc0, 0x16174d, 0x1610da, 0x160a68, 0x1603f8, 0x15fd88,
- 0x15f718, 0x15f0aa, 0x15ea3c, 0x15e3d0, 0x15dd64, 0x15d6f9, 0x15d08e, 0x15ca25,
- 0x15c3bc, 0x15bd55, 0x15b6ee, 0x15b087, 0x15aa22, 0x15a3be, 0x159d5a, 0x1596f7,
- 0x159095, 0x158a34, 0x1583d3, 0x157d74, 0x157715, 0x1570b7, 0x156a5a, 0x1563fd,
- 0x155da2, 0x155747, 0x1550ed, 0x154a94, 0x15443c, 0x153de4, 0x15378e, 0x153138,
- 0x152ae3, 0x15248e, 0x151e3b, 0x1517e8, 0x151197, 0x150b45, 0x1504f5, 0x14fea6,
- 0x14f857, 0x14f209, 0x14ebbc, 0x14e570, 0x14df25, 0x14d8da, 0x14d290, 0x14cc47,
- 0x14c5ff, 0x14bfb7, 0x14b971, 0x14b32b, 0x14ace6, 0x14a6a1, 0x14a05e, 0x149a1b,
- 0x1493d9, 0x148d98, 0x148758, 0x148118, 0x147ada, 0x14749c, 0x146e5f, 0x146822,
- 0x1461e7, 0x145bac, 0x145572, 0x144f38, 0x144900, 0x1442c8, 0x143c91, 0x14365b,
- 0x143026, 0x1429f1, 0x1423be, 0x141d8b, 0x141758, 0x141127, 0x140af6, 0x1404c6,
- 0x13fe97, 0x13f869, 0x13f23b, 0x13ec0f, 0x13e5e3, 0x13dfb7, 0x13d98d, 0x13d363,
- 0x13cd3a, 0x13c712, 0x13c0eb, 0x13bac4, 0x13b49e, 0x13ae79, 0x13a855, 0x13a231,
- 0x139c0e, 0x1395ec, 0x138fcb, 0x1389ab, 0x13838b, 0x137d6c, 0x13774e, 0x137130,
- 0x136b13, 0x1364f8, 0x135edc, 0x1358c2, 0x1352a8, 0x134c8f, 0x134677, 0x134060,
- 0x133a49, 0x133433, 0x132e1e, 0x13280a, 0x1321f6, 0x131be3, 0x1315d1, 0x130fc0,
- 0x1309af, 0x13039f, 0x12fd90, 0x12f782, 0x12f174, 0x12eb67, 0x12e55b, 0x12df50,
- 0x12d945, 0x12d33b, 0x12cd32, 0x12c72a, 0x12c122, 0x12bb1b, 0x12b515, 0x12af10,
- 0x12a90b, 0x12a307, 0x129d04, 0x129702, 0x129100, 0x128aff, 0x1284ff, 0x127eff,
- 0x127900, 0x127302, 0x126d05, 0x126708, 0x12610d, 0x125b11, 0x125517, 0x124f1d,
- 0x124925, 0x12432c, 0x123d35, 0x12373e, 0x123148, 0x122b53, 0x12255e, 0x121f6b,
- 0x121978, 0x121385, 0x120d94, 0x1207a3, 0x1201b3, 0x11fbc3, 0x11f5d4, 0x11efe6,
- 0x11e9f9, 0x11e40d, 0x11de21, 0x11d836, 0x11d24b, 0x11cc62, 0x11c679, 0x11c090,
- 0x11baa9, 0x11b4c2, 0x11aedc, 0x11a8f7, 0x11a312, 0x119d2e, 0x11974b, 0x119168,
- 0x118b87, 0x1185a6, 0x117fc5, 0x1179e5, 0x117407, 0x116e28, 0x11684b, 0x11626e,
- 0x115c92, 0x1156b6, 0x1150dc, 0x114b02, 0x114529, 0x113f50, 0x113978, 0x1133a1,
- 0x112dca, 0x1127f5, 0x112220, 0x111c4b, 0x111678, 0x1110a5, 0x110ad3, 0x110501,
- 0x10ff30, 0x10f960, 0x10f391, 0x10edc2, 0x10e7f4, 0x10e226, 0x10dc5a, 0x10d68e,
- 0x10d0c3, 0x10caf8, 0x10c52e, 0x10bf65, 0x10b99c, 0x10b3d5, 0x10ae0e, 0x10a847,
- 0x10a281, 0x109cbc, 0x1096f8, 0x109134, 0x108b72, 0x1085af, 0x107fee, 0x107a2d,
- 0x10746d, 0x106ead, 0x1068ee, 0x106330, 0x105d73, 0x1057b6, 0x1051fa, 0x104c3e,
- 0x104684, 0x1040ca, 0x103b10, 0x103558, 0x102fa0, 0x1029e8, 0x102432, 0x101e7c,
- 0x1018c6, 0x101312, 0x100d5e, 0x1007ab, 0x1001f8, 0xffc46, 0xff695, 0xff0e4,
- 0xfeb35, 0xfe585, 0xfdfd7, 0xfda29, 0xfd47c, 0xfcecf, 0xfc923, 0xfc378,
- 0xfbdce, 0xfb824, 0xfb27b, 0xfacd2, 0xfa72a, 0xfa183, 0xf9bdd, 0xf9637,
- 0xf9092, 0xf8aed, 0xf854a, 0xf7fa6, 0xf7a04, 0xf7462, 0xf6ec1, 0xf6920,
- 0xf6381, 0xf5de1, 0xf5843, 0xf52a5, 0xf4d08, 0xf476b, 0xf41cf, 0xf3c34,
- 0xf369a, 0xf3100, 0xf2b66, 0xf25ce, 0xf2036, 0xf1a9f, 0xf1508, 0xf0f72,
- 0xf09dd, 0xf0448, 0xefeb4, 0xef921, 0xef38e, 0xeedfc, 0xee86b, 0xee2da,
- 0xedd4a, 0xed7ba, 0xed22b, 0xecc9d, 0xec710, 0xec183, 0xebbf7, 0xeb66b,
- 0xeb0e0, 0xeab56, 0xea5cc, 0xea043, 0xe9abb, 0xe9533, 0xe8fac, 0xe8a26,
- 0xe84a0, 0xe7f1b, 0xe7996, 0xe7413, 0xe6e8f, 0xe690d, 0xe638b, 0xe5e0a,
- 0xe5889, 0xe5309, 0xe4d8a, 0xe480b, 0xe428d, 0xe3d0f, 0xe3792, 0xe3216,
- 0xe2c9b, 0xe2720, 0xe21a5, 0xe1c2c, 0xe16b3, 0xe113a, 0xe0bc3, 0xe064c,
- 0xe00d5, 0xdfb5f, 0xdf5ea, 0xdf075, 0xdeb01, 0xde58e, 0xde01b, 0xddaa9,
- 0xdd538, 0xdcfc7, 0xdca57, 0xdc4e7, 0xdbf78, 0xdba0a, 0xdb49c, 0xdaf2f,
- 0xda9c2, 0xda457, 0xd9eeb, 0xd9981, 0xd9417, 0xd8ead, 0xd8945, 0xd83dc,
- 0xd7e75, 0xd790e, 0xd73a8, 0xd6e42, 0xd68dd, 0xd6379, 0xd5e15, 0xd58b2,
- 0xd534f, 0xd4ded, 0xd488c, 0xd432b, 0xd3dcb, 0xd386c, 0xd330d, 0xd2dae,
- 0xd2851, 0xd22f4, 0xd1d97, 0xd183b, 0xd12e0, 0xd0d86, 0xd082c, 0xd02d2,
- 0xcfd79, 0xcf821, 0xcf2ca, 0xced73, 0xce81c, 0xce2c7, 0xcdd72, 0xcd81d,
- 0xcd2c9, 0xccd76, 0xcc823, 0xcc2d1, 0xcbd7f, 0xcb82f, 0xcb2de, 0xcad8f,
- 0xca83f, 0xca2f1, 0xc9da3, 0xc9856, 0xc9309, 0xc8dbd, 0xc8871, 0xc8326,
- 0xc7ddc, 0xc7892, 0xc7349, 0xc6e01, 0xc68b9, 0xc6372, 0xc5e2b, 0xc58e5,
- 0xc539f, 0xc4e5a, 0xc4916, 0xc43d2, 0xc3e8f, 0xc394c, 0xc340a, 0xc2ec9,
- 0xc2988, 0xc2448, 0xc1f08, 0xc19c9, 0xc148b, 0xc0f4d, 0xc0a10, 0xc04d3,
- 0xbff97, 0xbfa5b, 0xbf521, 0xbefe6, 0xbeaad, 0xbe573, 0xbe03b, 0xbdb03,
- 0xbd5cb, 0xbd095, 0xbcb5e, 0xbc629, 0xbc0f4, 0xbbbbf, 0xbb68b, 0xbb158,
- 0xbac25, 0xba6f3, 0xba1c1, 0xb9c90, 0xb9760, 0xb9230, 0xb8d01, 0xb87d2,
- 0xb82a4, 0xb7d76, 0xb7849, 0xb731d, 0xb6df1, 0xb68c6, 0xb639b, 0xb5e71,
- 0xb5948, 0xb541f, 0xb4ef6, 0xb49cf, 0xb44a7, 0xb3f81, 0xb3a5b, 0xb3535,
- 0xb3010, 0xb2aec, 0xb25c8, 0xb20a5, 0xb1b82, 0xb1660, 0xb113e, 0xb0c1d,
- 0xb06fd, 0xb01dd, 0xafcbe, 0xaf79f, 0xaf281, 0xaed64, 0xae847, 0xae32a,
- 0xade0e, 0xad8f3, 0xad3d8, 0xacebe, 0xac9a4, 0xac48b, 0xabf73, 0xaba5b,
- 0xab544, 0xab02d, 0xaab17, 0xaa601, 0xaa0ec, 0xa9bd7, 0xa96c3, 0xa91b0,
- 0xa8c9d, 0xa878a, 0xa8279, 0xa7d67, 0xa7857, 0xa7347, 0xa6e37, 0xa6928,
- 0xa641a, 0xa5f0c, 0xa59fe, 0xa54f2, 0xa4fe5, 0xa4ada, 0xa45ce, 0xa40c4,
- 0xa3bba, 0xa36b0, 0xa31a7, 0xa2c9f, 0xa2797, 0xa2290, 0xa1d89, 0xa1883,
- 0xa137d, 0xa0e78, 0xa0974, 0xa0470, 0x9ff6c, 0x9fa69, 0x9f567, 0x9f065,
- 0x9eb64, 0x9e663, 0x9e163, 0x9dc63, 0x9d764, 0x9d266, 0x9cd68, 0x9c86a,
- 0x9c36d, 0x9be71, 0x9b975, 0x9b47a, 0x9af7f, 0x9aa85, 0x9a58b, 0x9a092,
- 0x99b9a, 0x996a1, 0x991aa, 0x98cb3, 0x987bd, 0x982c7, 0x97dd1, 0x978dc,
- 0x973e8, 0x96ef4, 0x96a01, 0x9650e, 0x9601c, 0x95b2b, 0x9563a, 0x95149,
- 0x94c59, 0x94769, 0x9427a, 0x93d8c, 0x9389e, 0x933b1, 0x92ec4, 0x929d8,
- 0x924ec, 0x92001, 0x91b16, 0x9162c, 0x91142, 0x90c59, 0x90770, 0x90288,
- 0x8fda1, 0x8f8ba, 0x8f3d3, 0x8eeed, 0x8ea08, 0x8e523, 0x8e03e, 0x8db5b,
- 0x8d677, 0x8d194, 0x8ccb2, 0x8c7d0, 0x8c2ef, 0x8be0e, 0x8b92e, 0x8b44e,
- 0x8af6f, 0x8aa91, 0x8a5b2, 0x8a0d5, 0x89bf8, 0x8971b, 0x8923f, 0x88d64,
- 0x88889, 0x883ae, 0x87ed4, 0x879fb, 0x87522, 0x87049, 0x86b71, 0x8669a,
- 0x861c3, 0x85ced, 0x85817, 0x85341, 0x84e6d, 0x84998, 0x844c5, 0x83ff1,
- 0x83b1e, 0x8364c, 0x8317a, 0x82ca9, 0x827d8, 0x82308, 0x81e39, 0x81969,
- 0x8149b, 0x80fcd, 0x80aff, 0x80632, 0x80165, 0x7fc99, 0x7f7cd, 0x7f302,
- 0x7ee37, 0x7e96d, 0x7e4a4, 0x7dfdb, 0x7db12, 0x7d64a, 0x7d182, 0x7ccbb,
- 0x7c7f5, 0x7c32f, 0x7be69, 0x7b9a4, 0x7b4df, 0x7b01b, 0x7ab58, 0x7a695,
- 0x7a1d2, 0x79d10, 0x7984f, 0x7938e, 0x78ecd, 0x78a0d, 0x7854d, 0x7808e,
- 0x77bd0, 0x77712, 0x77254, 0x76d97, 0x768da, 0x7641e, 0x75f63, 0x75aa8,
- 0x755ed, 0x75133, 0x74c79, 0x747c0, 0x74308, 0x73e50, 0x73998, 0x734e1,
- 0x7302a, 0x72b74, 0x726be, 0x72209, 0x71d55, 0x718a0, 0x713ed, 0x70f3a,
- 0x70a87, 0x705d5, 0x70123, 0x6fc72, 0x6f7c1, 0x6f311, 0x6ee61, 0x6e9b2,
- 0x6e503, 0x6e055, 0x6dba7, 0x6d6f9, 0x6d24d, 0x6cda0, 0x6c8f4, 0x6c449,
- 0x6bf9e, 0x6baf4, 0x6b64a, 0x6b1a0, 0x6acf7, 0x6a84f, 0x6a3a7, 0x69eff,
- 0x69a58, 0x695b2, 0x6910c, 0x68c66, 0x687c1, 0x6831d, 0x67e78, 0x679d5,
- 0x67532, 0x6708f, 0x66bed, 0x6674b, 0x662aa, 0x65e09, 0x65969, 0x654c9,
- 0x65029, 0x64b8a, 0x646ec, 0x6424e, 0x63db1, 0x63914, 0x63477, 0x62fdb,
- 0x62b40, 0x626a5, 0x6220a, 0x61d70, 0x618d6, 0x6143d, 0x60fa4, 0x60b0c,
- 0x60674, 0x601dd, 0x5fd46, 0x5f8b0, 0x5f41a, 0x5ef85, 0x5eaf0, 0x5e65b,
- 0x5e1c7, 0x5dd34, 0x5d8a1, 0x5d40e, 0x5cf7c, 0x5caea, 0x5c659, 0x5c1c9,
- 0x5bd38, 0x5b8a9, 0x5b419, 0x5af8a, 0x5aafc, 0x5a66e, 0x5a1e1, 0x59d54,
- 0x598c7, 0x5943b, 0x58fb0, 0x58b24, 0x5869a, 0x58210, 0x57d86, 0x578fd,
- 0x57474, 0x56feb, 0x56b64, 0x566dc, 0x56255, 0x55dcf, 0x55949, 0x554c3,
- 0x5503e, 0x54bb9, 0x54735, 0x542b1, 0x53e2e, 0x539ab, 0x53529, 0x530a7,
- 0x52c25, 0x527a4, 0x52324, 0x51ea4, 0x51a24, 0x515a5, 0x51126, 0x50ca8,
- 0x5082a, 0x503ad, 0x4ff30, 0x4fab4, 0x4f638, 0x4f1bc, 0x4ed41, 0x4e8c6,
- 0x4e44c, 0x4dfd3, 0x4db59, 0x4d6e0, 0x4d268, 0x4cdf0, 0x4c979, 0x4c502,
- 0x4c08b, 0x4bc15, 0x4b79f, 0x4b32a, 0x4aeb5, 0x4aa41, 0x4a5cd, 0x4a15a,
- 0x49ce7, 0x49874, 0x49402, 0x48f91, 0x48b1f, 0x486af, 0x4823e, 0x47dce,
- 0x4795f, 0x474f0, 0x47082, 0x46c14, 0x467a6, 0x46339, 0x45ecc, 0x45a60,
- 0x455f4, 0x45189, 0x44d1e, 0x448b3, 0x44449, 0x43fdf, 0x43b76, 0x4370d,
- 0x432a5, 0x42e3d, 0x429d6, 0x4256f, 0x42108, 0x41ca2, 0x4183c, 0x413d7,
- 0x40f72, 0x40b0e, 0x406aa, 0x40247, 0x3fde4, 0x3f981, 0x3f51f, 0x3f0bd,
- 0x3ec5c, 0x3e7fb, 0x3e39b, 0x3df3b, 0x3dadb, 0x3d67c, 0x3d21d, 0x3cdbf,
- 0x3c961, 0x3c504, 0x3c0a7, 0x3bc4a, 0x3b7ee, 0x3b393, 0x3af37, 0x3aadd,
- 0x3a682, 0x3a228, 0x39dcf, 0x39976, 0x3951d, 0x390c5, 0x38c6d, 0x38816,
- 0x383bf, 0x37f69, 0x37b13, 0x376bd, 0x37268, 0x36e13, 0x369bf, 0x3656b,
- 0x36117, 0x35cc4, 0x35872, 0x3541f, 0x34fce, 0x34b7c, 0x3472b, 0x342db,
- 0x33e8b, 0x33a3b, 0x335ec, 0x3319d, 0x32d4f, 0x32901, 0x324b3, 0x32066,
- 0x31c1a, 0x317cd, 0x31381, 0x30f36, 0x30aeb, 0x306a1, 0x30256, 0x2fe0d,
- 0x2f9c3, 0x2f57a, 0x2f132, 0x2ecea, 0x2e8a2, 0x2e45b, 0x2e014, 0x2dbce,
- 0x2d788, 0x2d343, 0x2cefd, 0x2cab9, 0x2c675, 0x2c231, 0x2bded, 0x2b9aa,
- 0x2b568, 0x2b125, 0x2ace4, 0x2a8a2, 0x2a461, 0x2a021, 0x29be1, 0x297a1,
- 0x29362, 0x28f23, 0x28ae4, 0x286a6, 0x28269, 0x27e2c, 0x279ef, 0x275b2,
- 0x27176, 0x26d3b, 0x26900, 0x264c5, 0x2608b, 0x25c51, 0x25817, 0x253de,
- 0x24fa6, 0x24b6d, 0x24735, 0x242fe, 0x23ec7, 0x23a90, 0x2365a, 0x23224,
- 0x22def, 0x229ba, 0x22585, 0x22151, 0x21d1d, 0x218ea, 0x214b7, 0x21084,
- 0x20c52, 0x20821, 0x203ef, 0x1ffbe, 0x1fb8e, 0x1f75e, 0x1f32e, 0x1eeff,
- 0x1ead0, 0x1e6a1, 0x1e273, 0x1de45, 0x1da18, 0x1d5eb, 0x1d1bf, 0x1cd93,
- 0x1c967, 0x1c53c, 0x1c111, 0x1bce6, 0x1b8bc, 0x1b493, 0x1b069, 0x1ac40,
- 0x1a818, 0x1a3f0, 0x19fc8, 0x19ba1, 0x1977a, 0x19354, 0x18f2d, 0x18b08,
- 0x186e2, 0x182be, 0x17e99, 0x17a75, 0x17651, 0x1722e, 0x16e0b, 0x169e9,
- 0x165c6, 0x161a5, 0x15d83, 0x15963, 0x15542, 0x15122, 0x14d02, 0x148e3,
- 0x144c4, 0x140a5, 0x13c87, 0x13869, 0x1344c, 0x1302f, 0x12c12, 0x127f6,
- 0x123da, 0x11fbf, 0x11ba4, 0x11789, 0x1136f, 0x10f55, 0x10b3c, 0x10723,
- 0x1030a, 0xfef2, 0xfada, 0xf6c2, 0xf2ab, 0xee95, 0xea7e, 0xe668,
- 0xe253, 0xde3e, 0xda29, 0xd614, 0xd200, 0xcded, 0xc9da, 0xc5c7,
- 0xc1b4, 0xbda2, 0xb990, 0xb57f, 0xb16e, 0xad5e, 0xa94e, 0xa53e,
- 0xa12e, 0x9d1f, 0x9911, 0x9503, 0x90f5, 0x8ce7, 0x88da, 0x84ce,
- 0x80c1, 0x7cb5, 0x78aa, 0x749f, 0x7094, 0x6c89, 0x687f, 0x6476,
- 0x606d, 0x5c64, 0x585b, 0x5453, 0x504b, 0x4c44, 0x483d, 0x4436,
- 0x4030, 0x3c2a, 0x3825, 0x3420, 0x301b, 0x2c17, 0x2813, 0x240f,
- 0x200c, 0x1c09, 0x1807, 0x1405, 0x1003, 0xc02, 0x801, 0x400,
- 0x7fffff, 0x7ff001, 0x7fe006, 0x7fd00d, 0x7fc018, 0x7fb025, 0x7fa036, 0x7f9049,
- 0x7f8060, 0x7f7079, 0x7f6095, 0x7f50b5, 0x7f40d7, 0x7f30fc, 0x7f2124, 0x7f114f,
- 0x7f017e, 0x7ef1af, 0x7ee1e2, 0x7ed219, 0x7ec253, 0x7eb290, 0x7ea2d0, 0x7e9312,
- 0x7e8358, 0x7e73a0, 0x7e63eb, 0x7e543a, 0x7e448b, 0x7e34df, 0x7e2536, 0x7e1590,
- 0x7e05ec, 0x7df64c, 0x7de6ae, 0x7dd714, 0x7dc77c, 0x7db7e7, 0x7da855, 0x7d98c6,
- 0x7d893a, 0x7d79b0, 0x7d6a2a, 0x7d5aa6, 0x7d4b25, 0x7d3ba7, 0x7d2c2c, 0x7d1cb3,
- 0x7d0d3e, 0x7cfdcb, 0x7cee5b, 0x7cdeee, 0x7ccf84, 0x7cc01d, 0x7cb0b8, 0x7ca156,
- 0x7c91f7, 0x7c829b, 0x7c7342, 0x7c63eb, 0x7c5497, 0x7c4546, 0x7c35f8, 0x7c26ad,
- 0x7c1764, 0x7c081e, 0x7bf8db, 0x7be99b, 0x7bda5d, 0x7bcb23, 0x7bbbeb, 0x7bacb5,
- 0x7b9d83, 0x7b8e53, 0x7b7f26, 0x7b6ffc, 0x7b60d4, 0x7b51b0, 0x7b428e, 0x7b336e,
- 0x7b2452, 0x7b1538, 0x7b0621, 0x7af70c, 0x7ae7fb, 0x7ad8ec, 0x7ac9e0, 0x7abad6,
- 0x7aabcf, 0x7a9ccb, 0x7a8dca, 0x7a7ecb, 0x7a6fcf, 0x7a60d5, 0x7a51df, 0x7a42eb,
- 0x7a33f9, 0x7a250b, 0x7a161f, 0x7a0735, 0x79f84f, 0x79e96b, 0x79da89, 0x79cbab,
- 0x79bccf, 0x79adf5, 0x799f1f, 0x79904a, 0x798179, 0x7972aa, 0x7963de, 0x795515,
- 0x79464e, 0x793789, 0x7928c8, 0x791a09, 0x790b4c, 0x78fc92, 0x78eddb, 0x78df27,
- 0x78d075, 0x78c1c5, 0x78b319, 0x78a46e, 0x7895c7, 0x788722, 0x78787f, 0x7869e0,
- 0x785b42, 0x784ca8, 0x783e10, 0x782f7a, 0x7820e7, 0x781257, 0x7803c9, 0x77f53e,
- 0x77e6b5, 0x77d82f, 0x77c9ab, 0x77bb2a, 0x77acac, 0x779e30, 0x778fb6, 0x77813f,
- 0x7772cb, 0x776459, 0x7755ea, 0x77477d, 0x773913, 0x772aab, 0x771c46, 0x770de3,
- 0x76ff83, 0x76f125, 0x76e2ca, 0x76d472, 0x76c61b, 0x76b7c8, 0x76a977, 0x769b28,
- 0x768cdc, 0x767e92, 0x76704b, 0x766206, 0x7653c4, 0x764584, 0x763747, 0x76290c,
- 0x761ad3, 0x760c9d, 0x75fe6a, 0x75f039, 0x75e20a, 0x75d3de, 0x75c5b5, 0x75b78e,
- 0x75a969, 0x759b46, 0x758d27, 0x757f09, 0x7570ee, 0x7562d6, 0x7554bf, 0x7546ac,
- 0x75389a, 0x752a8c, 0x751c7f, 0x750e75, 0x75006d, 0x74f268, 0x74e465, 0x74d665,
- 0x74c867, 0x74ba6b, 0x74ac72, 0x749e7b, 0x749087, 0x748295, 0x7474a5, 0x7466b8,
- 0x7458cd, 0x744ae4, 0x743cfe, 0x742f1a, 0x742139, 0x74135a, 0x74057d, 0x73f7a3,
- 0x73e9cb, 0x73dbf5, 0x73ce22, 0x73c051, 0x73b282, 0x73a4b6, 0x7396ec, 0x738925,
- 0x737b60, 0x736d9d, 0x735fdc, 0x73521e, 0x734462, 0x7336a9, 0x7328f1, 0x731b3c,
- 0x730d8a, 0x72ffd9, 0x72f22c, 0x72e480, 0x72d6d7, 0x72c92f, 0x72bb8b, 0x72ade8,
- 0x72a048, 0x7292aa, 0x72850f, 0x727775, 0x7269de, 0x725c4a, 0x724eb7, 0x724127,
- 0x723399, 0x72260e, 0x721884, 0x720afd, 0x71fd79, 0x71eff6, 0x71e276, 0x71d4f8,
- 0x71c77c, 0x71ba02, 0x71ac8b, 0x719f16, 0x7191a3, 0x718433, 0x7176c5, 0x716959,
- 0x715bef, 0x714e87, 0x714122, 0x7133bf, 0x71265e, 0x711900, 0x710ba3, 0x70fe49,
- 0x70f0f1, 0x70e39b, 0x70d648, 0x70c8f6, 0x70bba7, 0x70ae5a, 0x70a110, 0x7093c7,
- 0x708681, 0x70793d, 0x706bfb, 0x705ebb, 0x70517d, 0x704442, 0x703709, 0x7029d2,
- 0x701c9d, 0x700f6a, 0x70023a, 0x6ff50c, 0x6fe7e0, 0x6fdab6, 0x6fcd8e, 0x6fc068,
- 0x6fb345, 0x6fa624, 0x6f9904, 0x6f8be7, 0x6f7ecd, 0x6f71b4, 0x6f649d, 0x6f5789,
- 0x6f4a77, 0x6f3d67, 0x6f3059, 0x6f234d, 0x6f1643, 0x6f093c, 0x6efc36, 0x6eef33,
- 0x6ee232, 0x6ed533, 0x6ec836, 0x6ebb3b, 0x6eae42, 0x6ea14c, 0x6e9457, 0x6e8765,
- 0x6e7a74, 0x6e6d86, 0x6e609a, 0x6e53b0, 0x6e46c8, 0x6e39e3, 0x6e2cff, 0x6e201d,
- 0x6e133e, 0x6e0661, 0x6df985, 0x6decac, 0x6ddfd5, 0x6dd300, 0x6dc62d, 0x6db95c,
- 0x6dac8d, 0x6d9fc0, 0x6d92f5, 0x6d862d, 0x6d7966, 0x6d6ca2, 0x6d5fdf, 0x6d531f,
- 0x6d4660, 0x6d39a4, 0x6d2cea, 0x6d2032, 0x6d137c, 0x6d06c7, 0x6cfa15, 0x6ced65,
- 0x6ce0b7, 0x6cd40b, 0x6cc761, 0x6cbab9, 0x6cae14, 0x6ca170, 0x6c94ce, 0x6c882e,
- 0x6c7b90, 0x6c6ef5, 0x6c625b, 0x6c55c3, 0x6c492d, 0x6c3c9a, 0x6c3008, 0x6c2378,
- 0x6c16ea, 0x6c0a5f, 0x6bfdd5, 0x6bf14d, 0x6be4c8, 0x6bd844, 0x6bcbc2, 0x6bbf42,
- 0x6bb2c5, 0x6ba649, 0x6b99cf, 0x6b8d57, 0x6b80e2, 0x6b746e, 0x6b67fc, 0x6b5b8c,
- 0x6b4f1e, 0x6b42b2, 0x6b3648, 0x6b29e0, 0x6b1d7a, 0x6b1116, 0x6b04b4, 0x6af854,
- 0x6aebf5, 0x6adf99, 0x6ad33f, 0x6ac6e6, 0x6aba90, 0x6aae3b, 0x6aa1e9, 0x6a9598,
- 0x6a8949, 0x6a7cfd, 0x6a70b2, 0x6a6469, 0x6a5822, 0x6a4bdd, 0x6a3f9a, 0x6a3359,
- 0x6a271a, 0x6a1adc, 0x6a0ea1, 0x6a0267, 0x69f630, 0x69e9fa, 0x69ddc6, 0x69d195,
- 0x69c565, 0x69b937, 0x69ad0b, 0x69a0e0, 0x6994b8, 0x698892, 0x697c6d, 0x69704a,
- 0x69642a, 0x69580b, 0x694bee, 0x693fd3, 0x6933ba, 0x6927a2, 0x691b8d, 0x690f79,
- 0x690368, 0x68f758, 0x68eb4a, 0x68df3e, 0x68d334, 0x68c72b, 0x68bb25, 0x68af20,
- 0x68a31d, 0x68971d, 0x688b1d, 0x687f20, 0x687325, 0x68672c, 0x685b34, 0x684f3e,
- 0x68434a, 0x683758, 0x682b68, 0x681f7a, 0x68138d, 0x6807a2, 0x67fbb9, 0x67efd2,
- 0x67e3ed, 0x67d80a, 0x67cc28, 0x67c048, 0x67b46a, 0x67a88e, 0x679cb4, 0x6790dc,
- 0x678505, 0x677930, 0x676d5d, 0x67618c, 0x6755bd, 0x6749ef, 0x673e23, 0x673259,
- 0x672691, 0x671acb, 0x670f06, 0x670343, 0x66f782, 0x66ebc3, 0x66e006, 0x66d44a,
- 0x66c891, 0x66bcd8, 0x66b122, 0x66a56e, 0x6699bb, 0x668e0a, 0x66825b, 0x6676ae,
- 0x666b02, 0x665f58, 0x6653b0, 0x66480a, 0x663c66, 0x6630c3, 0x662522, 0x661983,
- 0x660de5, 0x66024a, 0x65f6b0, 0x65eb17, 0x65df81, 0x65d3ec, 0x65c859, 0x65bcc8,
- 0x65b139, 0x65a5ab, 0x659a1f, 0x658e95, 0x65830d, 0x657786, 0x656c01, 0x65607e,
- 0x6554fc, 0x65497c, 0x653dfe, 0x653282, 0x652707, 0x651b8e, 0x651017, 0x6504a2,
- 0x64f92e, 0x64edbc, 0x64e24c, 0x64d6dd, 0x64cb70, 0x64c005, 0x64b49c, 0x64a934,
- 0x649dce, 0x64926a, 0x648707, 0x647ba6, 0x647047, 0x6464ea, 0x64598e, 0x644e34,
- 0x6442db, 0x643784, 0x642c2f, 0x6420dc, 0x64158a, 0x640a3a, 0x63feec, 0x63f39f,
- 0x63e854, 0x63dd0b, 0x63d1c3, 0x63c67d, 0x63bb39, 0x63aff7, 0x63a4b6, 0x639976,
- 0x638e39, 0x6382fd, 0x6377c3, 0x636c8a, 0x636153, 0x63561e, 0x634aea, 0x633fb8,
- 0x633488, 0x632959, 0x631e2c, 0x631301, 0x6307d7, 0x62fcaf, 0x62f189, 0x62e664,
- 0x62db41, 0x62d01f, 0x62c500, 0x62b9e1, 0x62aec5, 0x62a3aa, 0x629890, 0x628d79,
- 0x628263, 0x62774e, 0x626c3b, 0x62612a, 0x62561b, 0x624b0d, 0x624000, 0x6234f6,
- 0x6229ed, 0x621ee5, 0x6213df, 0x6208db, 0x61fdd8, 0x61f2d7, 0x61e7d8, 0x61dcda,
- 0x61d1de, 0x61c6e3, 0x61bbea, 0x61b0f3, 0x61a5fd, 0x619b09, 0x619016, 0x618525,
- 0x617a36, 0x616f48, 0x61645b, 0x615971, 0x614e88, 0x6143a0, 0x6138ba, 0x612dd6,
- 0x6122f3, 0x611812, 0x610d32, 0x610254, 0x60f778, 0x60ec9d, 0x60e1c4, 0x60d6ec,
- 0x60cc16, 0x60c141, 0x60b66e, 0x60ab9c, 0x60a0cc, 0x6095fe, 0x608b31, 0x608066,
- 0x60759c, 0x606ad4, 0x60600e, 0x605549, 0x604a85, 0x603fc3, 0x603503, 0x602a44,
- 0x601f87, 0x6014cb, 0x600a11, 0x5fff58, 0x5ff4a1, 0x5fe9eb, 0x5fdf37, 0x5fd485,
- 0x5fc9d4, 0x5fbf24, 0x5fb476, 0x5fa9ca, 0x5f9f1f, 0x5f9476, 0x5f89ce, 0x5f7f28,
- 0x5f7483, 0x5f69df, 0x5f5f3e, 0x5f549d, 0x5f49ff, 0x5f3f62, 0x5f34c6, 0x5f2a2c,
- 0x5f1f93, 0x5f14fc, 0x5f0a66, 0x5effd2, 0x5ef53f, 0x5eeaae, 0x5ee01f, 0x5ed591,
- 0x5ecb04, 0x5ec079, 0x5eb5ef, 0x5eab67, 0x5ea0e0, 0x5e965b, 0x5e8bd8, 0x5e8155,
- 0x5e76d5, 0x5e6c55, 0x5e61d8, 0x5e575c, 0x5e4ce1, 0x5e4268, 0x5e37f0, 0x5e2d79,
- 0x5e2305, 0x5e1891, 0x5e0e1f, 0x5e03af, 0x5df940, 0x5deed3, 0x5de467, 0x5dd9fc,
- 0x5dcf93, 0x5dc52b, 0x5dbac5, 0x5db061, 0x5da5fd, 0x5d9b9c, 0x5d913b, 0x5d86dc,
- 0x5d7c7f, 0x5d7223, 0x5d67c9, 0x5d5d70, 0x5d5318, 0x5d48c2, 0x5d3e6d, 0x5d341a,
- 0x5d29c8, 0x5d1f78, 0x5d1529, 0x5d0adc, 0x5d0090, 0x5cf645, 0x5cebfc, 0x5ce1b4,
- 0x5cd76e, 0x5ccd29, 0x5cc2e6, 0x5cb8a4, 0x5cae63, 0x5ca424, 0x5c99e6, 0x5c8faa,
- 0x5c856f, 0x5c7b36, 0x5c70fe, 0x5c66c7, 0x5c5c92, 0x5c525e, 0x5c482c, 0x5c3dfb,
- 0x5c33cc, 0x5c299d, 0x5c1f71, 0x5c1546, 0x5c0b1c, 0x5c00f3, 0x5bf6cc, 0x5beca7,
- 0x5be282, 0x5bd85f, 0x5bce3e, 0x5bc41e, 0x5bb9ff, 0x5bafe2, 0x5ba5c6, 0x5b9bac,
- 0x5b9193, 0x5b877b, 0x5b7d65, 0x5b7350, 0x5b693d, 0x5b5f2a, 0x5b551a, 0x5b4b0a,
- 0x5b40fd, 0x5b36f0, 0x5b2ce5, 0x5b22db, 0x5b18d3, 0x5b0ecc, 0x5b04c6, 0x5afac2,
- 0x5af0bf, 0x5ae6bd, 0x5adcbd, 0x5ad2be, 0x5ac8c1, 0x5abec5, 0x5ab4ca, 0x5aaad1,
- 0x5aa0d9, 0x5a96e2, 0x5a8ced, 0x5a82f9, 0x5a7906, 0x5a6f15, 0x5a6525, 0x5a5b37,
- 0x5a514a, 0x5a475e, 0x5a3d74, 0x5a338b, 0x5a29a3, 0x5a1fbd, 0x5a15d8, 0x5a0bf4,
- 0x5a0212, 0x59f831, 0x59ee51, 0x59e473, 0x59da96, 0x59d0ba, 0x59c6e0, 0x59bd07,
- 0x59b330, 0x59a959, 0x599f84, 0x5995b1, 0x598bde, 0x59820e, 0x59783e, 0x596e70,
- 0x5964a3, 0x595ad7, 0x59510d, 0x594744, 0x593d7c, 0x5933b6, 0x5929f1, 0x59202d,
- 0x59166b, 0x590caa, 0x5902ea, 0x58f92b, 0x58ef6e, 0x58e5b3, 0x58dbf8, 0x58d23f,
- 0x58c887, 0x58bed0, 0x58b51b, 0x58ab67, 0x58a1b4, 0x589803, 0x588e53, 0x5884a4,
- 0x587af7, 0x58714b, 0x5867a0, 0x585df6, 0x58544e, 0x584aa7, 0x584101, 0x58375d,
- 0x582dba, 0x582418, 0x581a77, 0x5810d8, 0x58073a, 0x57fd9d, 0x57f402, 0x57ea68,
- 0x57e0cf, 0x57d737, 0x57cda1, 0x57c40c, 0x57ba78, 0x57b0e6, 0x57a754, 0x579dc5,
- 0x579436, 0x578aa9, 0x57811c, 0x577792, 0x576e08, 0x576480, 0x575af9, 0x575173,
- 0x5747ee, 0x573e6b, 0x5734e9, 0x572b68, 0x5721e9, 0x57186b, 0x570eee, 0x570572,
- 0x56fbf8, 0x56f27e, 0x56e906, 0x56df90, 0x56d61a, 0x56cca6, 0x56c333, 0x56b9c1,
- 0x56b051, 0x56a6e2, 0x569d74, 0x569407, 0x568a9b, 0x568131, 0x5677c8, 0x566e60,
- 0x5664fa, 0x565b95, 0x565231, 0x5648ce, 0x563f6c, 0x56360c, 0x562cad, 0x56234f,
- 0x5619f2, 0x561097, 0x56073c, 0x55fde3, 0x55f48c, 0x55eb35, 0x55e1e0, 0x55d88c,
- 0x55cf39, 0x55c5e7, 0x55bc97, 0x55b347, 0x55a9f9, 0x55a0ad, 0x559761, 0x558e17,
- 0x5584cd, 0x557b86, 0x55723f, 0x5568f9, 0x555fb5, 0x555672, 0x554d30, 0x5543ef,
- 0x553ab0, 0x553171, 0x552834, 0x551ef8, 0x5515be, 0x550c84, 0x55034c, 0x54fa15,
- 0x54f0df, 0x54e7aa, 0x54de77, 0x54d544, 0x54cc13, 0x54c2e3, 0x54b9b4, 0x54b087,
- 0x54a75a, 0x549e2f, 0x549505, 0x548bdc, 0x5482b5, 0x54798e, 0x547069, 0x546745,
- 0x545e22, 0x545500, 0x544be0, 0x5442c0, 0x5439a2, 0x543085, 0x542769, 0x541e4f,
- 0x541535, 0x540c1d, 0x540306, 0x53f9f0, 0x53f0db, 0x53e7c7, 0x53deb5, 0x53d5a3,
- 0x53cc93, 0x53c384, 0x53ba76, 0x53b169, 0x53a85e, 0x539f54, 0x53964a, 0x538d42,
- 0x53843b, 0x537b36, 0x537231, 0x53692e, 0x53602b, 0x53572a, 0x534e2a, 0x53452b,
- 0x533c2e, 0x533331, 0x532a36, 0x53213b, 0x531842, 0x530f4a, 0x530654, 0x52fd5e,
- 0x52f469, 0x52eb76, 0x52e284, 0x52d993, 0x52d0a3, 0x52c7b4, 0x52bec6, 0x52b5d9,
- 0x52acee, 0x52a404, 0x529b1b, 0x529233, 0x52894c, 0x528066, 0x527781, 0x526e9e,
- 0x5265bb, 0x525cda, 0x5253fa, 0x524b1b, 0x52423d, 0x523960, 0x523084, 0x5227aa,
- 0x521ed0, 0x5215f8, 0x520d21, 0x52044b, 0x51fb76, 0x51f2a2, 0x51e9cf, 0x51e0fe,
- 0x51d82d, 0x51cf5e, 0x51c68f, 0x51bdc2, 0x51b4f6, 0x51ac2b, 0x51a361, 0x519a98,
- 0x5191d1, 0x51890a, 0x518045, 0x517780, 0x516ebd, 0x5165fb, 0x515d3a, 0x51547a,
- 0x514bbb, 0x5142fd, 0x513a41, 0x513185, 0x5128cb, 0x512011, 0x511759, 0x510ea2,
- 0x5105ec, 0x50fd36, 0x50f483, 0x50ebd0, 0x50e31e, 0x50da6d, 0x50d1be, 0x50c90f,
- 0x50c062, 0x50b7b5, 0x50af0a, 0x50a660, 0x509db7, 0x50950f, 0x508c68, 0x5083c2,
- 0x507b1d, 0x507279, 0x5069d7, 0x506135, 0x505894, 0x504ff5, 0x504757, 0x503eb9,
- 0x50361d, 0x502d82, 0x5024e8, 0x501c4f, 0x5013b7, 0x500b20, 0x50028a, 0x4ff9f5,
- 0x4ff162, 0x4fe8cf, 0x4fe03d, 0x4fd7ad, 0x4fcf1d, 0x4fc68f, 0x4fbe01, 0x4fb575,
- 0x4facea, 0x4fa460, 0x4f9bd7, 0x4f934e, 0x4f8ac7, 0x4f8241, 0x4f79bc, 0x4f7139,
- 0x4f68b6, 0x4f6034, 0x4f57b3, 0x4f4f33, 0x4f46b5, 0x4f3e37, 0x4f35bb, 0x4f2d3f,
- 0x4f24c5, 0x4f1c4b, 0x4f13d3, 0x4f0b5b, 0x4f02e5, 0x4efa70, 0x4ef1fb, 0x4ee988,
- 0x4ee116, 0x4ed8a5, 0x4ed035, 0x4ec7c6, 0x4ebf58, 0x4eb6ea, 0x4eae7e, 0x4ea613,
- 0x4e9daa, 0x4e9541, 0x4e8cd9, 0x4e8472, 0x4e7c0c, 0x4e73a7, 0x4e6b43, 0x4e62e1,
- 0x4e5a7f, 0x4e521e, 0x4e49be, 0x4e4160, 0x4e3902, 0x4e30a5, 0x4e284a, 0x4e1fef,
- 0x4e1796, 0x4e0f3d, 0x4e06e5, 0x4dfe8f, 0x4df639, 0x4dede5, 0x4de591, 0x4ddd3f,
- 0x4dd4ed, 0x4dcc9d, 0x4dc44d, 0x4dbbff, 0x4db3b1, 0x4dab65, 0x4da319, 0x4d9acf,
- 0x4d9285, 0x4d8a3d, 0x4d81f5, 0x4d79af, 0x4d7169, 0x4d6925, 0x4d60e2, 0x4d589f,
- 0x4d505e, 0x4d481d, 0x4d3fde, 0x4d379f, 0x4d2f62, 0x4d2725, 0x4d1eea, 0x4d16af,
- 0x4d0e76, 0x4d063d, 0x4cfe05, 0x4cf5cf, 0x4ced99, 0x4ce565, 0x4cdd31, 0x4cd4fe,
- 0x4ccccd, 0x4cc49c, 0x4cbc6c, 0x4cb43e, 0x4cac10, 0x4ca3e3, 0x4c9bb8, 0x4c938d,
- 0x4c8b63, 0x4c833a, 0x4c7b12, 0x4c72eb, 0x4c6ac6, 0x4c62a1, 0x4c5a7d, 0x4c525a,
- 0x4c4a38, 0x4c4217, 0x4c39f7, 0x4c31d7, 0x4c29b9, 0x4c219c, 0x4c1980, 0x4c1165,
- 0x4c094b, 0x4c0131, 0x4bf919, 0x4bf102, 0x4be8eb, 0x4be0d6, 0x4bd8c1, 0x4bd0ae,
- 0x4bc89b, 0x4bc089, 0x4bb879, 0x4bb069, 0x4ba85a, 0x4ba04d, 0x4b9840, 0x4b9034,
- 0x4b8829, 0x4b801f, 0x4b7816, 0x4b700e, 0x4b6807, 0x4b6001, 0x4b57fc, 0x4b4ff7,
- 0x4b47f4, 0x4b3ff2, 0x4b37f0, 0x4b2ff0, 0x4b27f0, 0x4b1ff2, 0x4b17f4, 0x4b0ff7,
- 0x4b07fc, 0x4b0001, 0x4af807, 0x4af00e, 0x4ae816, 0x4ae01f, 0x4ad829, 0x4ad034,
- 0x4ac83f, 0x4ac04c, 0x4ab85a, 0x4ab068, 0x4aa878, 0x4aa088, 0x4a989a, 0x4a90ac,
- 0x4a88bf, 0x4a80d3, 0x4a78e8, 0x4a70fe, 0x4a6915, 0x4a612d, 0x4a5946, 0x4a5160,
- 0x4a497a, 0x4a4196, 0x4a39b2, 0x4a31d0, 0x4a29ee, 0x4a220d, 0x4a1a2d, 0x4a124f,
- 0x4a0a71, 0x4a0294, 0x49fab7, 0x49f2dc, 0x49eb02, 0x49e328, 0x49db50, 0x49d378,
- 0x49cba2, 0x49c3cc, 0x49bbf7, 0x49b423, 0x49ac50, 0x49a47e, 0x499cad, 0x4994dd,
- 0x498d0d, 0x49853f, 0x497d71, 0x4975a5, 0x496dd9, 0x49660e, 0x495e44, 0x49567b,
- 0x494eb3, 0x4946ec, 0x493f25, 0x493760, 0x492f9b, 0x4927d8, 0x492015, 0x491853,
- 0x491092, 0x4908d2, 0x490113, 0x48f955, 0x48f198, 0x48e9db, 0x48e21f, 0x48da65,
- 0x48d2ab, 0x48caf2, 0x48c33a, 0x48bb83, 0x48b3cd, 0x48ac18, 0x48a463, 0x489cb0,
- 0x4894fd, 0x488d4b, 0x48859a, 0x487dea, 0x48763b, 0x486e8d, 0x4866df, 0x485f33,
- 0x485787, 0x484fdd, 0x484833, 0x48408a, 0x4838e2, 0x48313b, 0x482994, 0x4821ef,
- 0x481a4a, 0x4812a6, 0x480b04, 0x480362, 0x47fbc1, 0x47f420, 0x47ec81, 0x47e4e3,
- 0x47dd45, 0x47d5a8, 0x47ce0c, 0x47c672, 0x47bed7, 0x47b73e, 0x47afa6, 0x47a80e,
- 0x47a078, 0x4798e2, 0x47914d, 0x4789b9, 0x478226, 0x477a93, 0x477302, 0x476b71,
- 0x4763e2, 0x475c53, 0x4754c5, 0x474d37, 0x4745ab, 0x473e20, 0x473695, 0x472f0b,
- 0x472783, 0x471ffa, 0x471873, 0x4710ed, 0x470968, 0x4701e3, 0x46fa5f, 0x46f2dc,
- 0x46eb5a, 0x46e3d9, 0x46dc59, 0x46d4d9, 0x46cd5a, 0x46c5dd, 0x46be60, 0x46b6e4,
- 0x46af68, 0x46a7ee, 0x46a074, 0x4698fb, 0x469184, 0x468a0c, 0x468296, 0x467b21,
- 0x4673ac, 0x466c39, 0x4664c6, 0x465d54, 0x4655e3, 0x464e72, 0x464703, 0x463f94,
- 0x463826, 0x4630b9, 0x46294d, 0x4621e2, 0x461a77, 0x46130e, 0x460ba5, 0x46043d,
- 0x45fcd6, 0x45f56f, 0x45ee0a, 0x45e6a5, 0x45df41, 0x45d7de, 0x45d07c, 0x45c91a,
- 0x45c1ba, 0x45ba5a, 0x45b2fb, 0x45ab9d, 0x45a440, 0x459ce4, 0x459588, 0x458e2d,
- 0x4586d3, 0x457f7a, 0x457822, 0x4570ca, 0x456974, 0x45621e, 0x455ac9, 0x455374,
- 0x454c21, 0x4544ce, 0x453d7d, 0x45362c, 0x452edb, 0x45278c, 0x45203e, 0x4518f0,
- 0x4511a3, 0x450a57, 0x45030c, 0x44fbc1, 0x44f477, 0x44ed2e, 0x44e5e6, 0x44de9f,
- 0x44d759, 0x44d013, 0x44c8ce, 0x44c18a, 0x44ba47, 0x44b305, 0x44abc3, 0x44a482,
- 0x449d42, 0x449603, 0x448ec5, 0x448787, 0x44804a, 0x44790e, 0x4471d3, 0x446a99,
- 0x44635f, 0x445c26, 0x4454ee, 0x444db7, 0x444681, 0x443f4b, 0x443816, 0x4430e2,
- 0x4429af, 0x44227c, 0x441b4b, 0x44141a, 0x440cea, 0x4405ba, 0x43fe8c, 0x43f75e,
- 0x43f031, 0x43e905, 0x43e1da, 0x43daaf, 0x43d385, 0x43cc5c, 0x43c534, 0x43be0d,
- 0x43b6e6, 0x43afc0, 0x43a89b, 0x43a177, 0x439a54, 0x439331, 0x438c0f, 0x4384ee,
- 0x437dcd, 0x4376ae, 0x436f8f, 0x436871, 0x436154, 0x435a37, 0x43531b, 0x434c00,
- 0x4344e6, 0x433dcd, 0x4336b4, 0x432f9c, 0x432885, 0x43216f, 0x431a5a, 0x431345,
- 0x430c31, 0x43051e, 0x42fe0b, 0x42f6f9, 0x42efe9, 0x42e8d8, 0x42e1c9, 0x42daba,
- 0x42d3ad, 0x42cca0, 0x42c593, 0x42be88, 0x42b77d, 0x42b073, 0x42a96a, 0x42a261,
- 0x429b59, 0x429452, 0x428d4c, 0x428647, 0x427f42, 0x42783e, 0x42713b, 0x426a39,
- 0x426337, 0x425c36, 0x425536, 0x424e37, 0x424738, 0x42403a, 0x42393d, 0x423241,
- 0x422b45, 0x42244a, 0x421d50, 0x421657, 0x420f5e, 0x420866, 0x42016f, 0x41fa79,
- 0x41f383, 0x41ec8e, 0x41e59a, 0x41dea7, 0x41d7b4, 0x41d0c2, 0x41c9d1, 0x41c2e1,
- 0x41bbf1, 0x41b503, 0x41ae14, 0x41a727, 0x41a03a, 0x41994e, 0x419263, 0x418b79,
- 0x41848f, 0x417da6, 0x4176be, 0x416fd7, 0x4168f0, 0x41620a, 0x415b25, 0x415440,
- 0x414d5c, 0x414679, 0x413f97, 0x4138b6, 0x4131d5, 0x412af5, 0x412415, 0x411d37,
- 0x411659, 0x410f7c, 0x41089f, 0x4101c3, 0x40fae9, 0x40f40e, 0x40ed35, 0x40e65c,
- 0x40df84, 0x40d8ad, 0x40d1d6, 0x40cb00, 0x40c42b, 0x40bd57, 0x40b683, 0x40afb0,
- 0x40a8de, 0x40a20c, 0x409b3b, 0x40946b, 0x408d9c, 0x4086cd, 0x408000, 0x407932,
- 0x407266, 0x406b9a, 0x4064cf, 0x405e05, 0x40573b, 0x405072, 0x4049aa, 0x4042e3,
- 0x403c1c, 0x403556, 0x402e91, 0x4027cc, 0x402109, 0x401a45, 0x401383, 0x400cc1,
- 0x400600, 0x3fff40, 0x3ff880, 0x3ff1c2, 0x3feb03, 0x3fe446, 0x3fdd89, 0x3fd6cd,
- 0x3fd012, 0x3fc957, 0x3fc29d, 0x3fbbe4, 0x3fb52c, 0x3fae74, 0x3fa7bd, 0x3fa107,
- 0x3f9a51, 0x3f939c, 0x3f8ce8, 0x3f8634, 0x3f7f81, 0x3f78cf, 0x3f721e, 0x3f6b6d,
- 0x3f64bd, 0x3f5e0e, 0x3f575f, 0x3f50b1, 0x3f4a04, 0x3f4357, 0x3f3cac, 0x3f3601,
- 0x3f2f56, 0x3f28ac, 0x3f2203, 0x3f1b5b, 0x3f14b3, 0x3f0e0c, 0x3f0766, 0x3f00c1,
- 0x3efa1c, 0x3ef377, 0x3eecd4, 0x3ee631, 0x3edf8f, 0x3ed8ee, 0x3ed24d, 0x3ecbad,
- 0x3ec50e, 0x3ebe6f, 0x3eb7d1, 0x3eb134, 0x3eaa97, 0x3ea3fb, 0x3e9d60, 0x3e96c6,
- 0x3e902c, 0x3e8993, 0x3e82fa, 0x3e7c62, 0x3e75cb, 0x3e6f35, 0x3e689f, 0x3e620a,
- 0x3e5b76, 0x3e54e2, 0x3e4e4f, 0x3e47bd, 0x3e412b, 0x3e3a9a, 0x3e340a, 0x3e2d7a,
- 0x3e26eb, 0x3e205d, 0x3e19cf, 0x3e1342, 0x3e0cb6, 0x3e062b, 0x3dffa0, 0x3df916,
- 0x3df28c, 0x3dec03, 0x3de57b, 0x3ddef4, 0x3dd86d, 0x3dd1e7, 0x3dcb61, 0x3dc4dc,
- 0x3dbe58, 0x3db7d5, 0x3db152, 0x3daad0, 0x3da44f, 0x3d9dce, 0x3d974e, 0x3d90ce,
- 0x3d8a4f, 0x3d83d1, 0x3d7d54, 0x3d76d7, 0x3d705b, 0x3d69e0, 0x3d6365, 0x3d5ceb,
- 0x3d5671, 0x3d4ff9, 0x3d4980, 0x3d4309, 0x3d3c92, 0x3d361c, 0x3d2fa7, 0x3d2932,
- 0x3d22be, 0x3d1c4a, 0x3d15d7, 0x3d0f65, 0x3d08f4, 0x3d0283, 0x3cfc13, 0x3cf5a3,
- 0x3cef34, 0x3ce8c6, 0x3ce259, 0x3cdbec, 0x3cd57f, 0x3ccf14, 0x3cc8a9, 0x3cc23f,
- 0x3cbbd5, 0x3cb56c, 0x3caf04, 0x3ca89c, 0x3ca235, 0x3c9bcf, 0x3c9569, 0x3c8f04,
- 0x3c889f, 0x3c823c, 0x3c7bd8, 0x3c7576, 0x3c6f14, 0x3c68b3, 0x3c6253, 0x3c5bf3,
- 0x3c5593, 0x3c4f35, 0x3c48d7, 0x3c427a, 0x3c3c1d, 0x3c35c1, 0x3c2f66, 0x3c290b,
- 0x3c22b1, 0x3c1c57, 0x3c15ff, 0x3c0fa7, 0x3c094f, 0x3c02f8, 0x3bfca2, 0x3bf64c,
- 0x3beff7, 0x3be9a3, 0x3be34f, 0x3bdcfc, 0x3bd6aa, 0x3bd058, 0x3bca07, 0x3bc3b7,
- 0x3bbd67, 0x3bb718, 0x3bb0c9, 0x3baa7b, 0x3ba42e, 0x3b9de1, 0x3b9795, 0x3b914a,
- 0x3b8aff, 0x3b84b5, 0x3b7e6c, 0x3b7823, 0x3b71db, 0x3b6b93, 0x3b654c, 0x3b5f06,
- 0x3b58c0, 0x3b527b, 0x3b4c36, 0x3b45f3, 0x3b3faf, 0x3b396d, 0x3b332b, 0x3b2cea,
- 0x3b26a9, 0x3b2069, 0x3b1a2a, 0x3b13eb, 0x3b0dad, 0x3b076f, 0x3b0132, 0x3afaf6,
- 0x3af4ba, 0x3aee7f, 0x3ae845, 0x3ae20b, 0x3adbd2, 0x3ad599, 0x3acf61, 0x3ac92a,
- 0x3ac2f3, 0x3abcbd, 0x3ab688, 0x3ab053, 0x3aaa1f, 0x3aa3eb, 0x3a9db8, 0x3a9786,
- 0x3a9154, 0x3a8b23, 0x3a84f2, 0x3a7ec2, 0x3a7893, 0x3a7264, 0x3a6c36, 0x3a6609,
- 0x3a5fdc, 0x3a59b0, 0x3a5384, 0x3a4d59, 0x3a472f, 0x3a4105, 0x3a3adc, 0x3a34b4,
- 0x3a2e8c, 0x3a2864, 0x3a223e, 0x3a1c18, 0x3a15f2, 0x3a0fcd, 0x3a09a9, 0x3a0385,
- 0x39fd62, 0x39f740, 0x39f11e, 0x39eafd, 0x39e4dc, 0x39debc, 0x39d89d, 0x39d27e,
- 0x39cc60, 0x39c642, 0x39c025, 0x39ba09, 0x39b3ed, 0x39add2, 0x39a7b7, 0x39a19d,
- 0x399b84, 0x39956b, 0x398f53, 0x39893b, 0x398324, 0x397d0e, 0x3976f8, 0x3970e3,
- 0x396ace, 0x3964ba, 0x395ea7, 0x395894, 0x395282, 0x394c70, 0x39465f, 0x39404f,
- 0x393a3f, 0x393430, 0x392e21, 0x392813, 0x392206, 0x391bf9, 0x3915ed, 0x390fe1,
- 0x3909d6, 0x3903cb, 0x38fdc1, 0x38f7b8, 0x38f1af, 0x38eba7, 0x38e5a0, 0x38df99,
- 0x38d993, 0x38d38d, 0x38cd88, 0x38c783, 0x38c17f, 0x38bb7c, 0x38b579, 0x38af77,
- 0x38a975, 0x38a374, 0x389d73, 0x389774, 0x389174, 0x388b76, 0x388577, 0x387f7a,
- 0x38797d, 0x387381, 0x386d85, 0x38678a, 0x38618f, 0x385b95, 0x38559b, 0x384fa2,
- 0x3849aa, 0x3843b2, 0x383dbb, 0x3837c5, 0x3831cf, 0x382bd9, 0x3825e4, 0x381ff0,
- 0x3819fd, 0x381409, 0x380e17, 0x380825, 0x380234, 0x37fc43, 0x37f653, 0x37f063,
- 0x37ea74, 0x37e485, 0x37de97, 0x37d8aa, 0x37d2bd, 0x37ccd1, 0x37c6e5, 0x37c0fa,
- 0x37bb10, 0x37b526, 0x37af3d, 0x37a954, 0x37a36c, 0x379d84, 0x37979d, 0x3791b6,
- 0x378bd0, 0x3785eb, 0x378006, 0x377a22, 0x37743e, 0x376e5b, 0x376879, 0x376297,
- 0x375cb5, 0x3756d5, 0x3750f4, 0x374b15, 0x374535, 0x373f57, 0x373979, 0x37339b,
- 0x372dbf, 0x3727e2, 0x372206, 0x371c2b, 0x371651, 0x371077, 0x370a9d, 0x3704c4,
- 0x36feec, 0x36f914, 0x36f33d, 0x36ed66, 0x36e790, 0x36e1ba, 0x36dbe5, 0x36d611,
- 0x36d03d, 0x36ca69, 0x36c497, 0x36bec4, 0x36b8f3, 0x36b321, 0x36ad51, 0x36a781,
- 0x36a1b1, 0x369be2, 0x369614, 0x369046, 0x368a79, 0x3684ac, 0x367ee0, 0x367915,
- 0x36734a, 0x366d7f, 0x3667b5, 0x3661ec, 0x365c23, 0x36565b, 0x365093, 0x364acc,
- 0x364505, 0x363f3f, 0x363979, 0x3633b4, 0x362df0, 0x36282c, 0x362269, 0x361ca6,
- 0x3616e4, 0x361122, 0x360b61, 0x3605a0, 0x35ffe0, 0x35fa20, 0x35f461, 0x35eea3,
- 0x35e8e5, 0x35e328, 0x35dd6b, 0x35d7af, 0x35d1f3, 0x35cc38, 0x35c67d, 0x35c0c3,
- 0x35bb09, 0x35b550, 0x35af98, 0x35a9e0, 0x35a429, 0x359e72, 0x3598bb, 0x359306,
- 0x358d50, 0x35879c, 0x3581e8, 0x357c34, 0x357681, 0x3570ce, 0x356b1c, 0x35656b,
- 0x355fba, 0x355a09, 0x355459, 0x354eaa, 0x3548fb, 0x35434d, 0x353d9f, 0x3537f2,
- 0x353245, 0x352c99, 0x3526ee, 0x352143, 0x351b98, 0x3515ee, 0x351045, 0x350a9c
- }
-};
-
-
-
-/* Shortcuts so we dont have to bother with the structure in C */
-
-/* Pointer to exponential table */
-const unsigned int *
-gmx_invsqrt_exptab = F77_FUNC(gmxinvsqrtdata, GMXINVSQRTDATA).exptab;
-
-/* Pointer to fraction table */
-const unsigned int *
-gmx_invsqrt_fracttab = F77_FUNC(gmxinvsqrtdata, GMXINVSQRTDATA).fracttab;
/* This file is completely threadsafe - keep it that way! */
#include "conformation-utilities.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "macros.h"
-#include "vec.h"
-#include "pbc.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/pbcutil/pbc.h"
static real dist2(t_pbc *pbc, rvec x, rvec y)
{
#ifndef GMX_CONFORMATION_UTILITIES_H
#define GMX_CONFORMATION_UTILITIES_H
-#include "typedefs.h"
+#include "../math/vectypes.h"
+#include "../utility/basedefinitions.h"
+#include "../utility/real.h"
#ifdef __cplusplus
extern "C" {
*/
#include "copyrite.h"
-#ifdef HAVE_CONFIG_H
#include "config.h"
-#endif
#include <stdio.h>
#include <stdlib.h>
/* This file is completely threadsafe - keep it that way! */
#include "gromacs/legacyheaders/macros.h"
-#include "gromacs/legacyheaders/vec.h"
#include "gromacs/fft/fft.h"
-#include "gromacs/fileio/futil.h"
#include "gromacs/fileio/strdb.h"
+#include "gromacs/math/vec.h"
#include "gromacs/random/random.h"
#include "gromacs/utility/baseversion.h"
#include "gromacs/utility/cstringutil.h"
#include "gromacs/utility/exceptions.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/utility/gmxassert.h"
#include "gromacs/utility/programcontext.h"
#include "gromacs/utility/smalloc.h"
#
# This file is part of the GROMACS molecular simulation package.
#
-# Copyright (c) 2012, by the GROMACS development team, led by
+# Copyright (c) 2012,2014, 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.
if(GMX_GPU)
file(GLOB CUDA_TOOLS_SOURCES *.cu)
- CUDA_ADD_LIBRARY(cuda_tools STATIC ${CUDA_TOOLS_SOURCES}
- OPTIONS
- RELWITHDEBINFO -g
- DEBUG -g -D_DEBUG_=1)
+ set(GMXLIB_SOURCES ${GMXLIB_SOURCES} ${CUDA_TOOLS_SOURCES} PARENT_SCOPE)
endif()
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdio.h>
#include <cuda.h>
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012, by the GROMACS development team, led by
+ * Copyright (c) 2012,2014, 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 <stdio.h>
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
/* CUDA library and hardware related defines */
/* TODO list some constants instead that can be used for consistency checks to
#include "cudautils.cuh"
#include "pmalloc_cuda.h"
+#include "gromacs/utility/cstringutil.h"
+
/*! Allocates nbytes of page-locked memory.
* This memory should always be freed using pfree (or with the page-locked
* free functions provied by the CUDA library).
* the research papers on the package. Check out http://www.gromacs.org.
*/
/* This file is completely threadsafe - keep it that way! */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
+#include <stdlib.h>
+
#include "typedefs.h"
#include "types/commrec.h"
-#include "sysstuff.h"
-#include "gromacs/utility/smalloc.h"
#include "macros.h"
-#include "vec.h"
-#include "gromacs/fileio/futil.h"
-#include "xvgr.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/futil.h"
#include "bondf.h"
#include "copyrite.h"
#include "disre.h"
#include "main.h"
-#include "mtop_util.h"
+#include "gromacs/topology/mtop_util.h"
+
+#include "gromacs/math/vec.h"
+#include "gromacs/pbcutil/ishift.h"
+#include "gromacs/pbcutil/mshift.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
void init_disres(FILE *fplog, const gmx_mtop_t *mtop,
t_inputrec *ir, const t_commrec *cr,
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdio.h>
#include <math.h>
#include "gromacs/math/utilities.h"
#include "typedefs.h"
#include "types/commrec.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "coulomb.h"
#include "gromacs/utility/smalloc.h"
-#include "physics.h"
+#include "gromacs/math/units.h"
#include "txtdump.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
#include "names.h"
#include "macros.h"
}
}
}
+ free(unique);
return nunique;
}
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
+
+#include <string>
+#include <vector>
-#include <stdlib.h>
#include <assert.h>
+#include <errno.h>
+#include <stdlib.h>
#include <string.h>
#ifdef HAVE_UNISTD_H
#include "types/enums.h"
#include "types/hw_info.h"
#include "types/commrec.h"
-#include "gmx_fatal.h"
-#include "gmx_fatal_collective.h"
+#include "network.h"
#include "md_logging.h"
#include "gmx_cpuid.h"
-#include "gromacs/utility/smalloc.h"
#include "gpu_utils.h"
#include "copyrite.h"
#include "gmx_detect_hardware.h"
-#include "main.h"
#include "md_logging.h"
-#include "gromacs/utility/gmxomp.h"
+
+#include "gromacs/utility/basenetwork.h"
#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/exceptions.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/gmxomp.h"
+#include "gromacs/utility/smalloc.h"
+#include "gromacs/utility/stringutil.h"
#include "thread_mpi/threads.h"
}
}
-static void print_gpu_use_stats(FILE *fplog,
- const gmx_gpu_info_t *gpu_info,
- const gmx_gpu_opt_t *gpu_opt,
- const t_commrec *cr)
+/*! \brief Helper function for writing comma-separated GPU IDs.
+ *
+ * \param[in] ids A container of integer GPU IDs
+ * \return A comma-separated string of GPU IDs */
+template <typename Container>
+static std::string makeGpuIdsString(const Container &ids)
{
- char sbuf[STRLEN], stmp[STRLEN];
- int i, ngpu_comp, ngpu_use;
+ std::string output;
- ngpu_comp = gpu_info->ncuda_dev_compatible;
- ngpu_use = gpu_opt->ncuda_dev_use;
+ if (0 != ids.size())
+ {
+ typename Container::const_iterator it = ids.begin();
+ output += gmx::formatString("%d", *it);
+ for (++it; it != ids.end(); ++it)
+ {
+ output += gmx::formatString(",%d", *it);
+ }
+ }
+ return output;
+}
+
+/*! \brief Helper function for reporting GPU usage information
+ * in the mdrun log file
+ *
+ * \param[in] gpu_info Pointer to per-node GPU info struct
+ * \param[in] gpu_opt Pointer to per-node GPU options struct
+ * \param[in] numPpRanks Number of PP ranks per node
+ * \return String to write to the log file
+ * \throws std::bad_alloc if out of memory */
+static std::string
+makeGpuUsageReport(const gmx_gpu_info_t *gpu_info,
+ const gmx_gpu_opt_t *gpu_opt,
+ size_t numPpRanks)
+{
+ int ngpu_use = gpu_opt->ncuda_dev_use;
+ int ngpu_comp = gpu_info->ncuda_dev_compatible;
/* Issue a note if GPUs are available but not used */
if (ngpu_comp > 0 && ngpu_use < 1)
{
- sprintf(sbuf,
- "%d compatible GPU%s detected in the system, but none will be used.\n"
- "Consider trying GPU acceleration with the Verlet scheme!",
- ngpu_comp, (ngpu_comp > 1) ? "s" : "");
+ return gmx::formatString("%d compatible GPU%s detected in the system, but none will be used.\n"
+ "Consider trying GPU acceleration with the Verlet scheme!\n",
+ ngpu_comp, (ngpu_comp > 1) ? "s" : "");
}
- else
- {
- int ngpu_use_uniq;
-
- ngpu_use_uniq = gmx_count_gpu_dev_unique(gpu_info, gpu_opt);
- sprintf(sbuf, "%d GPU%s %sselected for this run.\n"
- "Mapping of GPU%s to the %d PP rank%s in this node: ",
- ngpu_use_uniq, (ngpu_use_uniq > 1) ? "s" : "",
- gpu_opt->bUserSet ? "user-" : "auto-",
- (ngpu_use > 1) ? "s" : "",
- cr->nrank_pp_intranode,
- (cr->nrank_pp_intranode > 1) ? "s" : "");
+ std::string output;
- for (i = 0; i < ngpu_use; i++)
+ {
+ std::vector<int> gpuIdsInUse;
+ for (int i = 0; i < ngpu_use; i++)
{
- sprintf(stmp, "#%d", get_gpu_device_id(gpu_info, gpu_opt, i));
- if (i < ngpu_use - 1)
- {
- strcat(stmp, ", ");
- }
- strcat(sbuf, stmp);
+ gpuIdsInUse.push_back(get_gpu_device_id(gpu_info, gpu_opt, i));
}
+ std::string gpuIdsString = makeGpuIdsString(gpuIdsInUse);
+ int numGpusInUse = gmx_count_gpu_dev_unique(gpu_info, gpu_opt);
+ bool bPluralGpus = numGpusInUse > 1;
+
+ output += gmx::formatString("%d GPU%s %sselected for this run.\n"
+ "Mapping of GPU ID%s to the %d PP rank%s in this node: %s\n",
+ numGpusInUse, bPluralGpus ? "s" : "",
+ gpu_opt->bUserSet ? "user-" : "auto-",
+ bPluralGpus ? "s" : "",
+ numPpRanks,
+ (numPpRanks > 1) ? "s" : "",
+ gpuIdsString.c_str());
}
- md_print_info(cr, fplog, "%s\n\n", sbuf);
+
+ return output;
}
/* Give a suitable fatal error or warning if the build configuration
const gmx_hw_opt_t *hw_opt,
gmx_bool bUseGPU)
{
- int npppn, ntmpi_pp;
- char sbuf[STRLEN], th_or_proc[STRLEN], th_or_proc_plural[STRLEN], pernode[STRLEN];
+ int npppn;
+ char th_or_proc[STRLEN], th_or_proc_plural[STRLEN], pernode[STRLEN];
gmx_bool btMPI, bMPI, bMaxMpiThreadsSet, bNthreadsAuto, bEmulateGPU;
assert(hwinfo);
return;
}
- btMPI = bMPI = FALSE;
- bNthreadsAuto = FALSE;
#if defined(GMX_THREAD_MPI)
+ bMPI = FALSE;
btMPI = TRUE;
bNthreadsAuto = (hw_opt->nthreads_tmpi < 1);
#elif defined(GMX_LIB_MPI)
- bMPI = TRUE;
+ bMPI = TRUE;
+ btMPI = FALSE;
+ bNthreadsAuto = FALSE;
+#else
+ bMPI = FALSE;
+ btMPI = FALSE;
+ bNthreadsAuto = FALSE;
#endif
/* GPU emulation detection is done later, but we need here as well
if (hwinfo->gpu_info.ncuda_dev_compatible > 0)
{
+ std::string gpuUseageReport;
+ try
+ {
+ gpuUseageReport = makeGpuUsageReport(&hwinfo->gpu_info,
+ &hw_opt->gpu_opt,
+ cr->nrank_pp_intranode);
+ }
+ GMX_CATCH_ALL_AND_EXIT_WITH_FATAL_ERROR;
+
/* NOTE: this print is only for and on one physical node */
- print_gpu_use_stats(fplog, &hwinfo->gpu_info, &hw_opt->gpu_opt, cr);
+ md_print_info(cr, fplog, gpuUseageReport.c_str());
}
/* Need to ensure that we have enough GPUs:
gmx_hw_info_t *gmx_detect_hardware(FILE *fplog, const t_commrec *cr,
gmx_bool bDetectGPUs)
{
- gmx_hw_info_t *hw;
int ret;
/* make sure no one else is doing the same thing */
gmx_gpu_opt_t *gpu_opt)
{
int i;
- const char *env;
char sbuf[STRLEN], stmp[STRLEN];
/* Bail if binary is not compiled with GPU acceleration, but this is either
#include <string.h>
#include <assert.h>
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
-#include "gmx_fatal.h"
#include "typedefs.h"
+#include "types/commrec.h"
#include "macros.h"
#include "network.h"
#include "copyrite.h"
#include "gmx_omp_nthreads.h"
#include "md_logging.h"
+#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/gmxomp.h"
/** Structure with the number of threads for each OpenMP multi-threaded
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#if defined(HAVE_SCHED_H)
# ifndef _GNU_SOURCE
# define _GNU_SOURCE 1
#include "md_logging.h"
#include "gmx_thread_affinity.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/basenetwork.h"
+#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/gmxomp.h"
+#include "gromacs/utility/smalloc.h"
static int
get_thread_affinity_layout(FILE *fplog,
* Note that this will only work on Linux as we use a GNU feature.
*/
void
-gmx_check_thread_affinity_set(FILE gmx_unused *fplog,
- const t_commrec gmx_unused *cr,
- gmx_hw_opt_t gmx_unused *hw_opt,
- int gmx_unused nthreads_hw_avail,
- gmx_bool gmx_unused bAfterOpenmpInit)
+gmx_check_thread_affinity_set(FILE *fplog,
+ const t_commrec *cr,
+ gmx_hw_opt_t *hw_opt,
+ int gmx_unused nthreads_hw_avail,
+ gmx_bool bAfterOpenmpInit)
{
#ifdef HAVE_SCHED_AFFINITY
cpu_set_t mask_current;
int i, ret, cpu_count, cpu_set;
gmx_bool bAllSet;
+#endif
assert(hw_opt);
+ if (!bAfterOpenmpInit)
+ {
+ /* Check for externally set OpenMP affinity and turn off internal
+ * pinning if any is found. We need to do this check early to tell
+ * thread-MPI whether it should do pinning when spawning threads.
+ * TODO: the above no longer holds, we should move these checks later
+ */
+ if (hw_opt->thread_affinity != threadaffOFF)
+ {
+ char *message;
+ if (!gmx_omp_check_thread_affinity(&message))
+ {
+ /* TODO: with -pin auto we should only warn when using all cores */
+ md_print_warn(cr, fplog, "%s", message);
+ sfree(message);
+ hw_opt->thread_affinity = threadaffOFF;
+ }
+ }
+
+ /* With thread-MPI this is needed as pinning might get turned off,
+ * which needs to be known before starting thread-MPI.
+ * With thread-MPI hw_opt is processed here on the master rank
+ * and passed to the other ranks later, so we only do this on master.
+ */
+ if (!SIMMASTER(cr))
+ {
+ return;
+ }
+#ifndef GMX_THREAD_MPI
+ return;
+#endif
+ }
+
+#ifdef HAVE_SCHED_GETAFFINITY
if (hw_opt->thread_affinity == threadaffOFF)
{
/* internal affinity setting is off, don't bother checking process affinity */
#
# This file is part of the GROMACS molecular simulation package.
#
-# Copyright (c) 2012,2013, by the GROMACS development team, led by
+# Copyright (c) 2012,2013,2014, 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.
-# (slightly sloppy) OS definitions required by memtestG80
-set(_os_def)
-if(UNIX)
- if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
- set(_os_def "-DOSX")
- else() # everything that's UNIX & UNIX-like except OS X
- set(_os_def "-DLINUX")
- endif()
-else()
- if(WIN32)
- set(_os_def "-DWINDOWS")
- else()
- message(FATAL_ERROR " Could not detect OS required for memtestG80.")
- endif()
-endif()
-
-CUDA_INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
-set(CUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE OFF)
file(GLOB GPU_UTILS_SOURCES *.cu)
-CUDA_ADD_LIBRARY(gpu_utils STATIC ${GPU_UTILS_SOURCES}
- OPTIONS ${_os_def}
- RELWITHDEBINFO -g
- DEBUG -g -D_DEBUG_=1 )
+set(GMXLIB_SOURCES ${GMXLIB_SOURCES} ${GPU_UTILS_SOURCES} PARENT_SCOPE)
-CUDA_BUILD_CLEAN_TARGET()
#include <stdlib.h>
#include <assert.h>
-#include "gromacs/utility/smalloc.h"
#include "types/hw_info.h"
#include "gpu_utils.h"
#include "../cuda_tools/cudautils.cuh"
-#include "memtestG80_core.h"
-
-/** Amount of memory to be used in quick memtest. */
-#define QUICK_MEM 250
-/** Bit flag with type of tests to run in quick memtest. */
-#define QUICK_TESTS MOD_20_32BIT | LOGIC_4_ITER_SHMEM | RANDOM_BLOCKS
-/** Number of iterations in quick memtest. */
-#define QUICK_ITER 3
-
-/** Bitflag with all test set on for full memetest. */
-#define FULL_TESTS 0x3FFF
-/** Number of iterations in full memtest. */
-#define FULL_ITER 25
-/** Bit flag with type of tests to run in time constrained memtest. */
-#define TIMED_TESTS MOD_20_32BIT | LOGIC_4_ITER_SHMEM | RANDOM_BLOCKS
+#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/smalloc.h"
/*! \brief
* Max number of devices supported by CUDA (for consistency checking).
}
-/** Bit-flags which refer to memtestG80 test types and are used in do_memtest
- * to specify which tests to run. */
-enum memtest_G80_test_types {
- MOVING_INVERSIONS_10 = 0x1,
- MOVING_INVERSIONS_RAND = 0x2,
- WALKING_8BIT_M86 = 0x4,
- WALKING_0_8BIT = 0x8,
- WALKING_1_8BIT = 0x10,
- WALKING_0_32BIT = 0x20,
- WALKING_1_32BIT = 0x40,
- RANDOM_BLOCKS = 0x80,
- MOD_20_32BIT = 0x100,
- LOGIC_1_ITER = 0x200,
- LOGIC_4_ITER = 0x400,
- LOGIC_1_ITER_SHMEM = 0x800,
- LOGIC_4_ITER_SHMEM = 0x1000
-};
-
-
/*!
* \brief Runs GPU sanity checks.
*
return 0;
}
-
-/*!
- * \brief Runs a set of memory tests specified by the given bit-flags.
- * Tries to allocate and do the test on \p megs Mb memory or
- * the greatest amount that can be allocated (>10Mb).
- * In case if an error is detected it stops without finishing the remaining
- * steps/iterations and returns greater then zero value.
- * In case of other errors (e.g. kernel launch errors, device querying errors)
- * -1 is returned.
- *
- * \param[in] which_tests variable with bit-flags of the requested tests
- * \param[in] megs amount of memory that will be tested in MB
- * \param[in] iter number of iterations
- * \returns 0 if no error was detected, otherwise >0
- */
-static int do_memtest(unsigned int which_tests, int megs, int iter)
-{
- memtestState tester;
- int i;
- uint err_count; //, err_iter;
-
- // no parameter check as this fn won't be called externally
-
- // let's try to allocate the mem
- while (!tester.allocate(megs) && (megs - 10 > 0))
- {
- megs -= 10; tester.deallocate();
- }
-
- if (megs <= 10)
- {
- fprintf(stderr, "Unable to allocate GPU memory!\n");
- return -1;
- }
-
- // clear the first 18 bits
- which_tests &= 0x3FFF;
- for (i = 0; i < iter; i++)
- {
- // Moving Inversions (ones and zeros)
- if ((MOVING_INVERSIONS_10 & which_tests) == MOVING_INVERSIONS_10)
- {
- tester.gpuMovingInversionsOnesZeros(err_count);
- if (err_count > 0)
- {
- return MOVING_INVERSIONS_10;
- }
- }
- // Moving Inversions (random)
- if ((MOVING_INVERSIONS_RAND & which_tests) == MOVING_INVERSIONS_RAND)
- {
- tester.gpuMovingInversionsRandom(err_count);
- if (err_count > 0)
- {
- return MOVING_INVERSIONS_RAND;
- }
- }
- // Memtest86 Walking 8-bit
- if ((WALKING_8BIT_M86 & which_tests) == WALKING_8BIT_M86)
- {
- for (uint shift = 0; shift < 8; shift++)
- {
- tester.gpuWalking8BitM86(err_count, shift);
- if (err_count > 0)
- {
- return WALKING_8BIT_M86;
- }
- }
- }
- // True Walking zeros (8-bit)
- if ((WALKING_0_8BIT & which_tests) == WALKING_0_8BIT)
- {
- for (uint shift = 0; shift < 8; shift++)
- {
- tester.gpuWalking8Bit(err_count, false, shift);
- if (err_count > 0)
- {
- return WALKING_0_8BIT;
- }
- }
- }
- // True Walking ones (8-bit)
- if ((WALKING_1_8BIT & which_tests) == WALKING_1_8BIT)
- {
- for (uint shift = 0; shift < 8; shift++)
- {
- tester.gpuWalking8Bit(err_count, true, shift);
- if (err_count > 0)
- {
- return WALKING_1_8BIT;
- }
- }
- }
- // Memtest86 Walking zeros (32-bit)
- if ((WALKING_0_32BIT & which_tests) == WALKING_0_32BIT)
- {
- for (uint shift = 0; shift < 32; shift++)
- {
- tester.gpuWalking32Bit(err_count, false, shift);
- if (err_count > 0)
- {
- return WALKING_0_32BIT;
- }
- }
- }
- // Memtest86 Walking ones (32-bit)
- if ((WALKING_1_32BIT & which_tests) == WALKING_1_32BIT)
- {
- for (uint shift = 0; shift < 32; shift++)
- {
- tester.gpuWalking32Bit(err_count, true, shift);
- if (err_count > 0)
- {
- return WALKING_1_32BIT;
- }
- }
- }
- // Random blocks
- if ((RANDOM_BLOCKS & which_tests) == RANDOM_BLOCKS)
- {
- tester.gpuRandomBlocks(err_count, rand());
- if (err_count > 0)
- {
- return RANDOM_BLOCKS;
- }
-
- }
-
- // Memtest86 Modulo-20
- if ((MOD_20_32BIT & which_tests) == MOD_20_32BIT)
- {
- for (uint shift = 0; shift < 20; shift++)
- {
- tester.gpuModuloX(err_count, shift, rand(), 20, 2);
- if (err_count > 0)
- {
- return MOD_20_32BIT;
- }
- }
- }
- // Logic (one iteration)
- if ((LOGIC_1_ITER & which_tests) == LOGIC_1_ITER)
- {
- tester.gpuShortLCG0(err_count, 1);
- if (err_count > 0)
- {
- return LOGIC_1_ITER;
- }
- }
- // Logic (4 iterations)
- if ((LOGIC_4_ITER & which_tests) == LOGIC_4_ITER)
- {
- tester.gpuShortLCG0(err_count, 4);
- if (err_count > 0)
- {
- return LOGIC_4_ITER;
- }
-
- }
- // Logic (shared memory, one iteration)
- if ((LOGIC_1_ITER_SHMEM & which_tests) == LOGIC_1_ITER_SHMEM)
- {
- tester.gpuShortLCG0Shmem(err_count, 1);
- if (err_count > 0)
- {
- return LOGIC_1_ITER_SHMEM;
- }
- }
- // Logic (shared-memory, 4 iterations)
- if ((LOGIC_4_ITER_SHMEM & which_tests) == LOGIC_4_ITER_SHMEM)
- {
- tester.gpuShortLCG0Shmem(err_count, 4);
- if (err_count > 0)
- {
- return LOGIC_4_ITER_SHMEM;
- }
- }
- }
-
- tester.deallocate();
- return err_count;
-}
-
-/*! \brief Runs a quick memory test and returns 0 in case if no error is detected.
- * If an error is detected it stops before completing the test and returns a
- * value greater then 0. In case of other errors (e.g. kernel launch errors,
- * device querying errors) -1 is returned.
- *
- * \param[in] dev_id the device id of the GPU or -1 if the device has already been selected
- * \returns 0 if no error was detected, otherwise >0
- */
-int do_quick_memtest(int dev_id)
-{
- cudaDeviceProp dev_prop;
- int devmem, res, time = 0;
-
- if (debug)
- {
- time = getTimeMilliseconds();
- }
-
- if (do_sanity_checks(dev_id, &dev_prop) != 0)
- {
- // something went wrong
- return -1;
- }
-
- if (debug)
- {
- devmem = dev_prop.totalGlobalMem/(1024*1024); // in MiB
- fprintf(debug, ">> Running QUICK memtests on %d MiB (out of total %d MiB), %d iterations\n",
- QUICK_MEM, devmem, QUICK_ITER);
- }
-
- res = do_memtest(QUICK_TESTS, QUICK_MEM, QUICK_ITER);
-
- if (debug)
- {
- fprintf(debug, "Q-RES = %d\n", res);
- fprintf(debug, "Q-runtime: %d ms\n", getTimeMilliseconds() - time);
- }
-
- /* destroy context only if we created it */
- if (dev_id != -1)
- {
- cudaThreadExit();
- }
- return res;
-}
-
-/*! \brief Runs a full memory test and returns 0 in case if no error is detected.
- * If an error is detected it stops before completing the test and returns a
- * value greater then 0. In case of other errors (e.g. kernel launch errors,
- * device querying errors) -1 is returned.
- *
- * \param[in] dev_id the device id of the GPU or -1 if the device has already been selected
- * \returns 0 if no error was detected, otherwise >0
- */
-
-int do_full_memtest(int dev_id)
-{
- cudaDeviceProp dev_prop;
- int devmem, res, time = 0;
-
- if (debug)
- {
- time = getTimeMilliseconds();
- }
-
- if (do_sanity_checks(dev_id, &dev_prop) != 0)
- {
- // something went wrong
- return -1;
- }
-
- devmem = dev_prop.totalGlobalMem/(1024*1024); // in MiB
-
- if (debug)
- {
- fprintf(debug, ">> Running FULL memtests on %d MiB (out of total %d MiB), %d iterations\n",
- devmem, devmem, FULL_ITER);
- }
-
- /* do all test on the entire memory */
- res = do_memtest(FULL_TESTS, devmem, FULL_ITER);
-
- if (debug)
- {
- fprintf(debug, "F-RES = %d\n", res);
- fprintf(debug, "F-runtime: %d ms\n", getTimeMilliseconds() - time);
- }
-
- /* destroy context only if we created it */
- if (dev_id != -1)
- {
- cudaThreadExit();
- }
- return res;
-}
-
-/*! \brief Runs a time constrained memory test and returns 0 in case if no error is detected.
- * If an error is detected it stops before completing the test and returns a value greater
- * than zero. In case of other errors (e.g. kernel launch errors, device querying errors) -1
- * is returned. Note, that test iterations are not interrupted therefor the total runtime of
- * the test will always be multipple of one iteration's runtime.
- *
- * \param[in] dev_id the device id of the GPU or -1 if the device has laredy been selected
- * \param[in] time_constr the time limit of the testing
- * \returns 0 if no error was detected, otherwise >0
- */
-int do_timed_memtest(int dev_id, int time_constr)
-{
- cudaDeviceProp dev_prop;
- int devmem, res = 0, time = 0, startt;
-
- if (debug)
- {
- time = getTimeMilliseconds();
- }
-
- time_constr *= 1000; /* convert to ms for convenience */
- startt = getTimeMilliseconds();
-
- if (do_sanity_checks(dev_id, &dev_prop) != 0)
- {
- // something went wrong
- return -1;
- }
-
- devmem = dev_prop.totalGlobalMem/(1024*1024); // in MiB
-
- if (debug)
- {
- fprintf(debug, ">> Running time constrained memtests on %d MiB (out of total %d MiB), time limit of %d s \n",
- devmem, devmem, time_constr);
- }
-
- /* do the TIMED_TESTS set, one step at a time on the entire memory
- that can be allocated, and stop when the given time is exceeded */
- while ( ((int)getTimeMilliseconds() - startt) < time_constr)
- {
- res = do_memtest(TIMED_TESTS, devmem, 1);
- if (res != 0)
- {
- break;
- }
- }
-
- if (debug)
- {
- fprintf(debug, "T-RES = %d\n", res);
- fprintf(debug, "T-runtime: %d ms\n", getTimeMilliseconds() - time);
- }
-
- /* destroy context only if we created it */
- if (dev_id != -1)
- {
- cudaThreadExit();
- }
- return res;
-}
-
/*! \brief Initializes the GPU with the given index.
*
* The varible \mygpu is the index of the GPU to initialize in the
+++ /dev/null
-/*
- * memtestG80_core.cu
- * MemtestG80 core memory test functions and OOP interface to tester.
- *
- * Author: Imran Haque, 2009
- * Copyright 2009, Stanford University
- *
- * This file is licensed under the terms of the LGPL. Please see
- * the COPYING file in the accompanying source distribution for
- * full license terms.
- *
- */
-
- /*
- * CUDA grid layout: Linear in blocks and threads.
- * Intended usage = 1k blocks, 512 t/blk, with N words (iterations) per thread
- * -> 2*N MiB tested per grid
- * thread address at iteration i = base + blockIdx.x * N * blockDim.x + i*blockDim.x + threadIdx.x
- *
- */
-
-// Naming convention: gpuXXX and cpuXXX functions are user-accessible; deviceXXX functions are internal
-// gpuXXX functions execute a particular test on a block of GPU memory
-// cpuXXX " " " " " " " " " CPU "
-
-#define THREAD_ADDRESS(base,N,i) (base + blockIdx.x * N * blockDim.x + i * blockDim.x + threadIdx.x)
-#define THREAD_OFFSET(N,i) (blockIdx.x * N * blockDim.x + i * blockDim.x + threadIdx.x)
-#define BITSDIFF(x,y) __popc((x) ^ (y))
-
-
-#include "memtestG80_core.h"
-
-#include <stdio.h>
-
-
-
-
-void memtestState::deallocate() {
- if (allocated) {
- cudaFree(devTestMem);
- cudaFree(devTempMem);
- free(hostTempMem);
- devTestMem = NULL;
- devTempMem = NULL;
- hostTempMem = NULL;
- allocated = false;
- }
- initTime = 0;
- }
-
-uint memtestState::allocate(uint mbToTest) {
- deallocate();
-
- initTime = getTimeMilliseconds();
-
- // Round up to nearest 2MiB
- if (mbToTest % 2) mbToTest++;
-
- megsToTest = mbToTest;
- loopIters = megsToTest/2;
-
- if (megsToTest == 0) return 0;
-
- try {
- if (cudaMalloc((void**)&devTestMem,megsToTest*1048576UL) != cudaSuccess) throw 1;
- if (cudaMalloc((void**)&devTempMem,sizeof(uint)*nBlocks) != cudaSuccess) throw 2;
- if ( (hostTempMem = (uint*)malloc(sizeof(uint)*nBlocks)) == NULL) throw 3;
- } catch (...) {
- // Clear CUDA error flag for outside world
- cudaGetLastError();
- if (devTempMem) {
- cudaFree(devTempMem);
- devTempMem = NULL;
- }
- if (devTestMem) {
- cudaFree(devTestMem);
- devTestMem = NULL;
- }
- if (hostTempMem) {
- free(hostTempMem);
- hostTempMem = NULL;
- }
- return 0;
- }
- allocated = true;
- return megsToTest;
- }
-bool memtestState::gpuMemoryBandwidth(double& bandwidth,uint mbToTest,uint iters) {
- if (!allocated || megsToTest < 2*mbToTest) return false;
- bandwidth = ::gpuMemoryBandwidth(devTestMem,devTestMem+mbToTest*1048576/4,mbToTest,iters);
- return cudaGetLastError() == cudaSuccess;
-}
-bool memtestState::gpuWriteConstant(const uint constant) const {
- if (!allocated) return false;
- ::gpuWriteConstant(nBlocks,nThreads,devTestMem,loopIters,constant);
- return cudaGetLastError() == cudaSuccess;
-}
-
-bool memtestState::gpuVerifyConstant(uint& errorCount,const uint constant) const {
- if (!allocated) return false;
- errorCount = ::gpuVerifyConstant(nBlocks,nThreads,devTestMem,loopIters,constant,devTempMem,hostTempMem);
- return ((cudaGetLastError() == cudaSuccess) && (errorCount != 0xFFFFFFFF) && (errorCount != 0xFFFFFFFE));
-}
-
-bool memtestState::gpuShortLCG0(uint& errorCount,const uint repeats) const {
- if (!allocated) return false;
- errorCount = ::gpuShortLCG0(nBlocks,nThreads,devTestMem,loopIters,repeats,lcgPeriod,devTempMem,hostTempMem);
- return ((cudaGetLastError() == cudaSuccess) && (errorCount != 0xFFFFFFFF) && (errorCount != 0xFFFFFFFE));
-}
-bool memtestState::gpuShortLCG0Shmem(uint& errorCount,const uint repeats) const {
- if (!allocated) return false;
- errorCount = ::gpuShortLCG0Shmem(nBlocks,nThreads,devTestMem,loopIters,repeats,lcgPeriod,devTempMem,hostTempMem);
- return ((cudaGetLastError() == cudaSuccess) && (errorCount != 0xFFFFFFFF) && (errorCount != 0xFFFFFFFE));
-}
-bool memtestState::gpuMovingInversionsOnesZeros(uint& errorCount) const {
- if (!allocated) return false;
- errorCount = ::gpuMovingInversionsOnesZeros(nBlocks,nThreads,devTestMem,loopIters,devTempMem,hostTempMem);
- return ((cudaGetLastError() == cudaSuccess) && (errorCount != 0xFFFFFFFF) && (errorCount != 0xFFFFFFFE));
-}
-bool memtestState::gpuWalking8BitM86(uint& errorCount,const uint shift) const {
- if (!allocated) return false;
- errorCount = ::gpuWalking8BitM86(nBlocks,nThreads,devTestMem,loopIters,shift,devTempMem,hostTempMem);
- return ((cudaGetLastError() == cudaSuccess) && (errorCount != 0xFFFFFFFF) && (errorCount != 0xFFFFFFFE));
-}
-bool memtestState::gpuWalking8Bit(uint& errorCount,const bool ones,const uint shift) const {
- if (!allocated) return false;
- errorCount = ::gpuWalking8Bit(nBlocks,nThreads,devTestMem,loopIters,ones,shift,devTempMem,hostTempMem);
- return ((cudaGetLastError() == cudaSuccess) && (errorCount != 0xFFFFFFFF) && (errorCount != 0xFFFFFFFE));
-}
-bool memtestState::gpuMovingInversionsRandom(uint& errorCount) const {
- if (!allocated) return false;
- errorCount = ::gpuMovingInversionsRandom(nBlocks,nThreads,devTestMem,loopIters,devTempMem,hostTempMem);
- return ((cudaGetLastError() == cudaSuccess) && (errorCount != 0xFFFFFFFF) && (errorCount != 0xFFFFFFFE));
-}
-bool memtestState::gpuWalking32Bit(uint& errorCount,const bool ones,const uint shift) const {
- if (!allocated) return false;
- errorCount = ::gpuWalking32Bit(nBlocks,nThreads,devTestMem,loopIters,ones,shift,devTempMem,hostTempMem);
- return ((cudaGetLastError() == cudaSuccess) && (errorCount != 0xFFFFFFFF) && (errorCount != 0xFFFFFFFE));
-}
-bool memtestState::gpuRandomBlocks(uint& errorCount,const uint seed) const {
- if (!allocated) return false;
- errorCount = ::gpuRandomBlocks(nBlocks,nThreads,devTestMem,loopIters,seed,devTempMem,hostTempMem);
- return ((cudaGetLastError() == cudaSuccess) && (errorCount != 0xFFFFFFFF) && (errorCount != 0xFFFFFFFE));
-}
-bool memtestState::gpuModuloX(uint& errorCount,const uint shift,const uint pattern,const uint modulus,const uint overwriteIters) const {
- if (!allocated) return false;
- errorCount = ::gpuModuloX(nBlocks,nThreads,devTestMem,loopIters,shift,pattern,modulus,overwriteIters,devTempMem,hostTempMem);
- return ((cudaGetLastError() == cudaSuccess) && (errorCount != 0xFFFFFFFF) && (errorCount != 0xFFFFFFFE));
-}
-
-
-
-__global__ void deviceWriteConstant(uint* base, uint N, const uint constant);
-__global__ void deviceVerifyConstant(uint* base,uint N,const uint constant,uint* blockErrorCount);
-__global__ void deviceShortLCG0(uint* base,uint N,uint repeats,const int period);
-__global__ void deviceShortLCG0Shmem(uint* base,uint N,uint repeats,const int period);
-__global__ void deviceWriteRandomBlocks(uint* base,uint N,int seed);
-__global__ void deviceVerifyRandomBlocks(uint* base,uint N,int seed,uint* blockErrorCount);
-__global__ void deviceWriteWalking32Bit(uint* base,uint N,bool ones,uint shift);
-__global__ void deviceVerifyWalking32Bit(uint* base,uint N,bool ones,uint shift,uint* blockErrorCount);
-__global__ void deviceWritePairedConstants(uint* base,uint N,uint pattern0,uint pattern1);
-__global__ void deviceVerifyPairedConstants(uint* base,uint N,uint pattern0,uint pattern1,uint* blockErrorCount);
-__global__ void deviceWritePairedModulo(uint* base,const uint N,const uint shift,const uint pattern1,const uint pattern2,const uint modulus,const uint iters);
-__global__ void deviceVerifyPairedModulo(uint* base,uint N,const uint shift,const uint pattern1,const uint modulus,uint* blockErrorCount);
-
-
-// Utility function to measure memory bandwidth
-__host__ double gpuMemoryBandwidth(uint* src,uint* dst,uint mbToTest,uint iters) {
- uint start = getTimeMilliseconds();
- for (uint i = 0; i < iters; i++) {
- cudaMemcpy(dst,src,mbToTest*1048576,cudaMemcpyDeviceToDevice);
- }
- //D-to-D memory copies are non-blocking, so sync to get correct timing
- cudaThreadSynchronize();
- //SOFTWAIT();
- uint end = getTimeMilliseconds();
-
- // Calculate bandwidth in MiB/s
- // Multiply by 2 since we are reading and writing to the same memory
- double bw = 2.0*((double)mbToTest*iters)/((end-start)/1000.0);
- return bw;
-}
-
-// Utility functions to write/verify pure constants in memory, CPU/GPU {{{
-__host__ void gpuWriteConstant(const uint nBlocks,const uint nThreads,uint* base,uint N,const uint constant) { //{{{
- deviceWriteConstant<<<nBlocks,nThreads>>>(base,N,constant);
-}
-
-__global__ void deviceWriteConstant(uint* base, uint N, const uint constant) {
- for (uint i = 0 ; i < N; i++) {
- *(THREAD_ADDRESS(base,N,i)) = constant;
- }
-}
-//}}}
-__host__ uint gpuVerifyConstant(const uint nBlocks,const uint nThreads,uint* base,uint N,const uint constant,uint* blockErrorCount,uint* errorCounts) { //{{{
- // Given device arrays base (tested memory) and blockErrorCount (nBlocks uints in length of temp space)
-
- deviceVerifyConstant<<<nBlocks,nThreads,sizeof(uint)*nThreads>>>(base,N,constant,blockErrorCount);
- CHECK_LAUNCH_ERROR();
- SOFTWAIT();
- CHECK_LAUNCH_ERROR();
-
- cudaMemcpy(errorCounts,blockErrorCount,sizeof(uint)*nBlocks,cudaMemcpyDeviceToHost);
-
- // Sum-reduce block error counts on the host - it's only order of 1k numbers.
- uint totalErrors = 0;
- for (uint i = 0; i < nBlocks; i++) {
- totalErrors += errorCounts[i];
- }
- return totalErrors;
-}
-
-__global__ void deviceVerifyConstant(uint* base,uint N,const uint constant,uint* blockErrorCount) {
- // Verifies memory at base to make sure it has a constant pattern
- // Sums number of errors found in block and stores error count into blockErrorCount[blockIdx.x]
- // Sum-reduce this array afterwards to get total error count over tested region
- // Uses 4*blockDim.x bytes of shared memory
-
- extern __shared__ uint threadErrorCount[];
- threadErrorCount[threadIdx.x] = 0;
-
- for (uint i = 0; i < N; i++) {
- //if ( *(THREAD_ADDRESS(base,N,i)) != constant ) threadErrorCount[threadIdx.x]++;
- threadErrorCount[threadIdx.x] += BITSDIFF(*(THREAD_ADDRESS(base,N,i)),constant);
- }
- // Parallel-reduce error counts over threads in block
- for (uint stride = blockDim.x>>1; stride > 0; stride >>= 1) {
- __syncthreads();
- if (threadIdx.x < stride)
- threadErrorCount[threadIdx.x] += threadErrorCount[threadIdx.x + stride];
- }
- __syncthreads();
-
- if (threadIdx.x == 0)
- blockErrorCount[blockIdx.x] = threadErrorCount[0];
-
- return;
-}
-//}}}
-
- __host__ void cpuWriteConstant(const uint nBlocks,const uint nThreads,uint* base,uint N,const uint constant) { //{{{
- dim3 blockDim(nThreads,0,0);
- dim3 threadIdx(0,0,0);
- dim3 blockIdx(0,0,0);
- for (blockIdx.x = 0; blockIdx.x < nBlocks; blockIdx.x++) {
- for (uint i = 0; i < N; i++) {
- for (threadIdx.x = 0; threadIdx.x < blockDim.x; threadIdx.x++) {
- *(THREAD_ADDRESS(base,N,i)) = constant;
- }
- }
- }
-}
-//}}}
-__host__ uint cpuVerifyConstant(const uint nBlocks,const uint nThreads,uint* base,uint N,const uint constant) { //{{{
- dim3 blockDim(nThreads,0,0);
- dim3 threadIdx(0,0,0);
- dim3 blockIdx(0,0,0);
- uint errorCount = 0;
- for (blockIdx.x = 0; blockIdx.x < nBlocks; blockIdx.x++) {
- for (uint i = 0; i < N; i++) {
- for (threadIdx.x = 0; threadIdx.x < blockDim.x; threadIdx.x++) {
- if (*(THREAD_ADDRESS(base,N,i)) != constant) errorCount++;
- }
- }
- }
- return errorCount;
-}
-//}}}
-//}}}
-
-// Logic test
-// Idea: Run a varying number of iterations (k*N) of a short-period (per=N) LCG that returns to zero (or F's) quickly {{{
-// Store only the result of the last iteration
-// Compare output to the desired constant
-// Compare results between varying k - memory error rate for a given pattern should be constant,
-// so variation should be due to logic errors in loop count
-__host__ uint gpuShortLCG0(const uint nBlocks,const uint nThreads,uint* base,uint N,const uint repeats,const int period,uint* blockErrorCounts,uint* errorCounts) { //{{{
- deviceShortLCG0<<<nBlocks,nThreads>>>(base,N,repeats,period);
- CHECK_LAUNCH_ERROR();
- SOFTWAIT();
- CHECK_LAUNCH_ERROR();
- return gpuVerifyConstant(nBlocks,nThreads,base,N,0,blockErrorCounts,errorCounts);
-} //}}}
-
-__host__ uint gpuShortLCG0Shmem(const uint nBlocks,const uint nThreads,uint* base,uint N,const uint repeats,const int period,uint* blockErrorCounts,uint* errorCounts) { //{{{
- deviceShortLCG0Shmem<<<nBlocks,nThreads,sizeof(uint)*nThreads>>>(base,N,repeats,period);
- CHECK_LAUNCH_ERROR();
- SOFTWAIT();
- CHECK_LAUNCH_ERROR();
- return gpuVerifyConstant(nBlocks,nThreads,base,N,0,blockErrorCounts,errorCounts);
-} //}}}
-
-// Put the LCG loop into a macro so we don't repeat code between versions of logic tester.
-// The paired XOR adds diversity to the instruction stream, and is not reduced to a NOT
-// as a single XOR is (verified with decuda).
-// {{{
-#if defined (LINUX) || defined(OSX)
-#define LCGLOOP(var,repeats,period,a,c) for (uint rep = 0; rep < repeats; rep++) {\
- (var) = ~(var);\
- _Pragma("unroll 1")\
- for (uint iter = 0; iter < period; iter++) {\
- (var) = ~(var);\
- (var) = (a)*(var)+(c);\
- (var) ^= 0xFFFFFFF0;\
- (var) ^= 0xF;\
- }\
- (var) = ~(var);\
-}
-#elif defined (WINDOWS) || defined (WINNV)
-#define LCGLOOP(var,repeats,period,a,c) for (uint rep = 0; rep < repeats; rep++) {\
- (var) = ~(var);\
- __pragma("unroll 1")\
- for (uint iter = 0; iter < period; iter++) {\
- (var) = ~(var);\
- (var) = (a)*(var)+(c);\
- (var) ^= 0xFFFFFFF0;\
- (var) ^= 0xF;\
- }\
- (var) = ~(var);\
-}
-#endif
-//}}}
-
-__global__ void deviceShortLCG0(uint* base,uint N,uint repeats,const int period) { //{{{
- // Pick a different block for different LCG lengths
- // Short periods are useful if LCG goes inside for i in 0..N loop
- int a,c;
- switch (period) {
- case 1024: a = 0x0fbfffff; c = 0x3bf75696; break;
- case 512: a = 0x61c8647f; c = 0x2b3e0000; break;
- case 256: a = 0x7161ac7f; c = 0x43840000; break;
- case 128: a = 0x0432b47f; c = 0x1ce80000; break;
- case 2048: a = 0x763fffff; c = 0x4769466f; break;
- default: a = 0; c = 0; break;
- }
-
- uint value = 0;
- LCGLOOP(value,repeats,period,a,c)
-
- for (uint i = 0 ; i < N; i++) {
- *(THREAD_ADDRESS(base,N,i)) = value;
- }
-} //}}}
-// _shmem version uses shared memory to store inter-iteration values
-// is more sensitive to shared memory errors from (eg) shader overclocking
-__global__ void deviceShortLCG0Shmem(uint* base,uint N,uint repeats,const int period) { //{{{
- // Pick a different block for different LCG lengths
- // Short periods are useful if LCG goes inside for i in 0..N loop
- int a,c;
- extern __shared__ uint shmem[];
- switch (period) {
- case 1024: a = 0x0fbfffff; c = 0x3bf75696; break;
- case 512: a = 0x61c8647f; c = 0x2b3e0000; break;
- case 256: a = 0x7161ac7f; c = 0x43840000; break;
- case 128: a = 0x0432b47f; c = 0x1ce80000; break;
- case 2048: a = 0x763fffff; c = 0x4769466f; break;
- default: a = 0; c = 0; break;
- }
- shmem[threadIdx.x] = 0;
- LCGLOOP(shmem[threadIdx.x],repeats,period,a,c)
-
- for (uint i = 0 ; i < N; i++) {
- *(THREAD_ADDRESS(base,N,i)) = shmem[threadIdx.x];
-
- }
-} //}}} //}}}
-
-
-// Memtest86 Test 2: tseq=0,4
-__host__ uint gpuMovingInversionsOnesZeros(const uint nBlocks,const uint nThreads,uint* base,uint N,uint* blockErrorCounts,uint* errorCounts) { //{{{
-
- uint errorCount;
- gpuWriteConstant(nBlocks,nThreads,base,N,0xFFFFFFFF);
- CHECK_LAUNCH_ERROR();
- SOFTWAIT();
- CHECK_LAUNCH_ERROR();
-
- errorCount = gpuVerifyConstant(nBlocks,nThreads,base,N,0xFFFFFFFF,blockErrorCounts,errorCounts);
- CHECK_LAUNCH_ERROR();
-
- gpuWriteConstant(nBlocks,nThreads,base,N,0x0);
- CHECK_LAUNCH_ERROR();
- SOFTWAIT();
- CHECK_LAUNCH_ERROR();
-
- errorCount += gpuVerifyConstant(nBlocks,nThreads,base,N,0x0,blockErrorCounts,errorCounts);
- CHECK_LAUNCH_ERROR();
- return errorCount;
-} //}}}
-
-// Memtest86 Test 3: tseq=1
-__host__ uint gpuWalking8BitM86(const uint nBlocks,const uint nThreads,uint* base,uint N,uint shift,uint* blockErrorCounts,uint* errorCounts) { //{{{
- // Performs the Memtest86 variation on the walking 8-bit pattern, where the same shifted pattern is
- // written into each 32-bit word in memory, verified, and its complement written and verified
- shift &= 0x7;
- uint pattern = 1 << shift;
- pattern = pattern | (pattern << 8) | (pattern << 16) | (pattern << 24);
-
- uint errorCount;
- gpuWriteConstant(nBlocks,nThreads,base,N,pattern);
- CHECK_LAUNCH_ERROR();
- SOFTWAIT();
- CHECK_LAUNCH_ERROR();
-
- errorCount = gpuVerifyConstant(nBlocks,nThreads,base,N,pattern,blockErrorCounts,errorCounts);
- CHECK_LAUNCH_ERROR();
-
- pattern = ~pattern;
- gpuWriteConstant(nBlocks,nThreads,base,N,pattern);
- CHECK_LAUNCH_ERROR();
- SOFTWAIT();
- CHECK_LAUNCH_ERROR();
-
- errorCount += gpuVerifyConstant(nBlocks,nThreads,base,N,pattern,blockErrorCounts,errorCounts);
- CHECK_LAUNCH_ERROR();
- return errorCount;
-} //}}}
-__host__ uint cpuWalking8BitM86(const uint nBlocks,const uint nThreads,uint* base,uint N,uint shift) { //{{{
- // Performs the Memtest86 variation on the walking 8-bit pattern, where the same shifted pattern is
- // written into each 32-bit word in memory, verified, and its complement written and verified
- shift &= 0x7;
- uint pattern = 1 << shift;
- pattern = pattern | (pattern << 8) | (pattern << 16) | (pattern << 24);
-
- uint errorCount;
- cpuWriteConstant(nBlocks,nThreads,base,N,pattern);
- errorCount = cpuVerifyConstant(nBlocks,nThreads,base,N,pattern);
-
- pattern = ~pattern;
- cpuWriteConstant(nBlocks,nThreads,base,N,pattern);
- errorCount += cpuVerifyConstant(nBlocks,nThreads,base,N,pattern);
-
- return errorCount;
-} //}}}
-__host__ uint gpuWalking8Bit(const uint nBlocks,const uint nThreads,uint* base,uint N,bool ones,uint shift,uint* blockErrorCount,uint* errorCounts) { //{{{
- // Implements one iteration of true walking 8-bit ones/zeros test
- uint patterns[2]={0x0,0x0};
-
- // Build the walking-ones paired pattern of 8-bits with the given shift
- shift &= 0x7;
- uint bits = 0x1 << shift;
- for (uint i = 0; i < 4; i++) {
- patterns[0] = (patterns[0] << 8) | bits;
- bits = (bits == 0x80) ? 0x01 : bits<<1;
- }
- for (uint i = 0; i < 4; i++) {
- patterns[1] = (patterns[1] << 8) | bits;
- bits = (bits == 0x80) ? 0x01 : bits<<1;
- }
-
- if (!ones) {
- patterns[0] = ~patterns[0];
- patterns[1] = ~patterns[1];
- }
-
- //printf("Host Patterns: %08x %08x\n",patterns[0],patterns[1]);
- deviceWritePairedConstants<<<nBlocks,nThreads>>>(base,N,patterns[0],patterns[1]);
- CHECK_LAUNCH_ERROR();
- SOFTWAIT();
- CHECK_LAUNCH_ERROR();
- //cudaMemcpy(errorCounts,base,sizeof(uint)*nBlocks,cudaMemcpyDeviceToHost);
- //printf("First few words in tested RAM: %08x %08x %08x %08x %08x %08x\n",errorCounts[0],errorCounts[1],errorCounts[2],errorCounts[3],errorCounts[4],errorCounts[5]);
- // Given device arrays base (tested memory) and blockErrorCount (nBlocks uints in length of temp space)
- deviceVerifyPairedConstants<<<nBlocks,nThreads,sizeof(uint)*nThreads>>>(base,N,patterns[0],patterns[1],blockErrorCount);
- CHECK_LAUNCH_ERROR();
- SOFTWAIT();
- CHECK_LAUNCH_ERROR();
- //if (cudaGetLastError() != cudaSuccess) {
- // return 0xFFFFFFFF; // -1
- //}
- //uint errorCounts[nBlocks];
- cudaMemcpy(errorCounts,blockErrorCount,sizeof(uint)*nBlocks,cudaMemcpyDeviceToHost);
-
- // Sum-reduce block error counts on the host - it's only order of 1k numbers.
- uint totalErrors = 0;
- for (uint i = 0; i < nBlocks; i++) {
- totalErrors += errorCounts[i];
- }
- return totalErrors;
-}
-
-__global__ void deviceWritePairedConstants(uint* base,uint N,uint pattern0,uint pattern1) {
- // Writes paired constants to memory, such that each offset that is X mod 2 receives patterns[X]
- // Used for true walking-ones/zeros 8-bit test
- //if (threadIdx.x == 0)
- // printf("Device Patterns Block %u: %08x %08x\n",blockIdx.x,patterns[0],patterns[1]);
- const uint pattern = (threadIdx.x & 0x1) ? pattern1 : pattern0;
- //const uint pattern = patterns[threadIdx.x & 0x1];
- for (uint i = 0 ; i < N; i++) {
- *(THREAD_ADDRESS(base,N,i)) = pattern;
- //*(base+blockIdx.x*N*blockDim.x + i*blockDim.x + threadIdx.x) = 0;
- }
-
-}
-
-__global__ void deviceVerifyPairedConstants(uint* base,uint N,uint pattern0,uint pattern1,uint* blockErrorCount) {
- // Verifies memory at base to make sure it has a correct paired-constant pattern
- // Sums number of errors found in block and stores error count into blockErrorCount[blockIdx.x]
- // Sum-reduce this array afterwards to get total error count over tested region
- // Uses 4*blockDim.x bytes of shared memory
-
- extern __shared__ uint threadErrorCount[];
- threadErrorCount[threadIdx.x] = 0;
- //const uint pattern = patterns[threadIdx.x & 0x1];
- const uint pattern = (threadIdx.x & 0x1) ? pattern1 : pattern0;
-
- for (uint i = 0; i < N; i++) {
- //if ( *(THREAD_ADDRESS(base,N,i)) != pattern ) threadErrorCount[threadIdx.x]++;
- threadErrorCount[threadIdx.x] += BITSDIFF(*(THREAD_ADDRESS(base,N,i)),pattern);
- }
- // Parallel-reduce error counts over threads in block
- for (uint stride = blockDim.x>>1; stride > 0; stride >>= 1) {
- __syncthreads();
- if (threadIdx.x < stride)
- threadErrorCount[threadIdx.x] += threadErrorCount[threadIdx.x + stride];
- }
- __syncthreads();
-
- if (threadIdx.x == 0)
- blockErrorCount[blockIdx.x] = threadErrorCount[0];
-
- return;
-}
-//}}}
-
-// Memtest86 Test 4: tseq=10
-__host__ uint gpuMovingInversionsRandom(const uint nBlocks,const uint nThreads,uint* base,uint N,uint* blockErrorCounts,uint* errorCounts) { //{{{
-
- uint errorCount;
-
- uint pattern = (uint)rand();
- gpuWriteConstant(nBlocks,nThreads,base,N,pattern);
- CHECK_LAUNCH_ERROR();
- SOFTWAIT();
- CHECK_LAUNCH_ERROR();
-
- errorCount = gpuVerifyConstant(nBlocks,nThreads,base,N,pattern,blockErrorCounts,errorCounts);
- CHECK_LAUNCH_ERROR();
-
- pattern = ~pattern;
- gpuWriteConstant(nBlocks,nThreads,base,N,pattern);
- CHECK_LAUNCH_ERROR();
- SOFTWAIT();
- CHECK_LAUNCH_ERROR();
-
- errorCount += gpuVerifyConstant(nBlocks,nThreads,base,N,pattern,blockErrorCounts,errorCounts);
- CHECK_LAUNCH_ERROR();
- return errorCount;
-} //}}}
-
-// Memtest86 Test 6: tseq=2
-__host__ uint gpuWalking32Bit(const uint nBlocks,const uint nThreads,uint* base,uint N,bool ones,uint shift,uint* blockErrorCount,uint* errorCounts) { //{{{
- // Given device arrays base (tested memory) and blockErrorCount (nBlocks uints in length of temp space)
- // Does one iteration of the walking-{ones/zeros} 32-bit test paralleling Memtest
- // With the starting pattern 1<<shift
- // NUMBER OF THREADS SHOULD BE A MULTIPLE OF 32
-
- deviceWriteWalking32Bit<<<nBlocks,nThreads>>>(base,N,ones,shift);
- CHECK_LAUNCH_ERROR();
- SOFTWAIT();
- CHECK_LAUNCH_ERROR();
-
- deviceVerifyWalking32Bit<<<nBlocks,nThreads,sizeof(uint)*nThreads>>>(base,N,ones,shift,blockErrorCount);
- CHECK_LAUNCH_ERROR();
- SOFTWAIT();
- CHECK_LAUNCH_ERROR();
-
- cudaMemcpy(errorCounts,blockErrorCount,sizeof(uint)*nBlocks,cudaMemcpyDeviceToHost);
-
- // Sum-reduce block error counts on the host - it's only order of 1k numbers.
- uint totalErrors = 0;
- for (uint i = 0; i < nBlocks; i++) {
- totalErrors += errorCounts[i];
- }
- return totalErrors;
-
-}
-
-__global__ void deviceWriteWalking32Bit(uint* base,uint N,bool ones,uint shift) {
- // Writes one iteration of the walking-{ones/zeros} 32-bit pattern to gpu memory
-
- // Want to write in a 1 << (offset from base + shift % 32)
- // Since thread indices are aligned with base, this reduces to
- // 1 << ((threadIdx.x+shift) & 0x1f)
- // With conditional inversion for walking zeros
- uint pattern = 1 << ((threadIdx.x + shift) & 0x1f);
- pattern = ones ? pattern : ~pattern;
-
- for (uint i = 0; i < N; i++) {
- *(THREAD_ADDRESS(base,N,i)) = pattern;
- }
-}
-
-__global__ void deviceVerifyWalking32Bit(uint* base,uint N,bool ones,uint shift,uint* blockErrorCount) {
- // Verifies memory at base to make sure it has a constant pattern
- // Sums number of errors found in block and stores error count into blockErrorCount[blockIdx.x]
- // Sum-reduce this array afterwards to get total error count over tested region
- // Uses 4*blockDim.x bytes of shared memory
-
- extern __shared__ uint threadErrorCount[];
- threadErrorCount[threadIdx.x] = 0;
-
- uint pattern = 1 << ((threadIdx.x + shift) & 0x1f);
- pattern = ones ? pattern : ~pattern;
-
- for (uint i = 0; i < N; i++) {
- //if ( *(THREAD_ADDRESS(base,N,i)) != pattern ) threadErrorCount[threadIdx.x]++;
- threadErrorCount[threadIdx.x] += BITSDIFF(*(THREAD_ADDRESS(base,N,i)),pattern);
- }
- // Parallel-reduce error counts over threads in block
- for (uint stride = blockDim.x>>1; stride > 0; stride >>= 1) {
- __syncthreads();
- if (threadIdx.x < stride)
- threadErrorCount[threadIdx.x] += threadErrorCount[threadIdx.x + stride];
- }
- __syncthreads();
-
- if (threadIdx.x == 0)
- blockErrorCount[blockIdx.x] = threadErrorCount[0];
-
- return;
-}
-//}}}
-
-// Memtest86 Test 7: tseq=9
-__host__ uint gpuRandomBlocks(const uint nBlocks,const uint nThreads,uint* base,uint N,uint seed,uint* blockErrorCount,uint* errorCounts) { //{{{ {{{
- // Writes random numbers into memory and verifies pattern
- //uint errorCounts[nBlocks];
-
- deviceWriteRandomBlocks<<<nBlocks,nThreads,4*nThreads>>>(base,N,seed);
- CHECK_LAUNCH_ERROR();
- SOFTWAIT();
- CHECK_LAUNCH_ERROR();
-
- //cudaMemcpy(errorCounts,base,sizeof(uint)*nBlocks,cudaMemcpyDeviceToHost);
- //printf("First few words in tested RAM: %08x %08x %08x %08x %08x %08x\n",errorCounts[0],errorCounts[1],errorCounts[2],errorCounts[3],errorCounts[4],errorCounts[5]);
-
- deviceVerifyRandomBlocks<<<nBlocks,nThreads,12*nThreads>>>(base,N,seed,blockErrorCount);
- CHECK_LAUNCH_ERROR();
- SOFTWAIT();
- CHECK_LAUNCH_ERROR();
-
-
- cudaMemcpy(errorCounts,blockErrorCount,sizeof(uint)*nBlocks,cudaMemcpyDeviceToHost);
-
- // Sum-reduce block error counts on the host - it's only order of 1k numbers.
- uint totalErrors = 0;
- for (uint i = 0; i < nBlocks; i++) {
- totalErrors += errorCounts[i];
- }
- return totalErrors;
-}
-//}}}
-//
-// Math functions modulo the Mersenne prime 2^31 -1 {{{
-__device__ void deviceMul3131 (uint v1, uint v2,uint& LO, uint& HI)
-{
- // Given v1, v2 < 2^31
- // Emulate a 31-bit integer multiply by doing instead a 32-bit multiply into LO and HI
- // And shifting bits around to make it look right.
- LO = v1*v2;
- HI = __umulhi(v1,v2);
- HI <<= 1;
- HI |= (LO & 0x80000000) >> 31;
- LO &= 0x7FFFFFFF;
-
-}
-
-__device__ uint deviceModMP31(uint LO,uint HI) {
- // Modulo a 62-bit number HI<<31 + LO, mod 2^31-1
- // Encyclopedia of Cryptography and Security By Henk C. A. van Tilborg
- // page 381, Mersenne Primes
- uint sum = LO+HI;
- if (sum >= 0x80000000) {
- // If a+b > 2^31, then high bit will be set
- return sum - 0x80000000 + 1;
- } else {
- return sum;
- }
-}
-__device__ uint deviceMulMP31(uint a,uint b) {
- // Multiplies a pair of 31-bit integers a and b mod the Mersenne prime 2^31-1
- // Takes result through a 62-bit intermediate
- uint LO,HI;
- deviceMul3131(a,b,LO,HI);
- return deviceModMP31(LO,HI);
-}
-
-__device__ uint deviceExpoModMP31(uint base,uint exponent) {
- uint result = 1;
- while (exponent > 0) {
- if (exponent & 1) {
- result = deviceMulMP31(result,base);
- }
- exponent >>= 1;
- base = deviceMulMP31(base,base);
- }
- return result;
-}
-//}}}
-// deviceRan0p: Parallelized closed-form version of NR's ran0 {{{
-__device__ uint deviceRan0p(int seed,int n) { //
- uint an = deviceExpoModMP31(16807,n+1);
- return deviceMulMP31(an,seed);
-}
-//}}}
-// deviceIrbit2: random bit generation, from NR {{{
-__device__ int deviceIrbit2(uint& seed) {
- const uint IB1 = 1;
- const uint IB2 = 2;
- const uint IB5 = 16;
- const uint IB18 = 131072;
- const uint MASK = IB1+IB2+IB5;
- if (seed & IB18) {
- seed = ((seed ^ MASK) << 1) | IB1;
- return 1;
- } else {
- seed <<= 1;
- return 0;
- }
-}
-//}}}
-__global__ void deviceWriteRandomBlocks(uint* base,uint N,int seed) { //{{{
- // Requires 4*nThreads bytes of shared memory
- extern __shared__ uint randomBlock[];
-
- // Make sure seed is not zero.
- if (seed == 0) seed = 123459876+blockIdx.x;
- uint bitSeed = deviceRan0p(seed + threadIdx.x,threadIdx.x);
-
- for (uint i=0; i < N; i++) {
- // Generate a block of random numbers in parallel using closed-form expression for ran0
- // OR in a random bit because Ran0 will never have the high bit set
- randomBlock[threadIdx.x] = deviceRan0p(seed,threadIdx.x) | (deviceIrbit2(bitSeed) << 31);
- __syncthreads();
-
- // Set the seed for the next round to the last number calculated in this round
- seed = randomBlock[blockDim.x-1];
-
- // Blit shmem block out to global memory
- *(THREAD_ADDRESS(base,N,i)) = randomBlock[threadIdx.x];
- }
-}
-//}}}
-__global__ void deviceVerifyRandomBlocks(uint* base,uint N,int seed,uint* blockErrorCount) { //{{{
- // Verifies memory at base to make sure it has a correct random pattern given the seed
- // Sums number of errors found in block and stores error count into blockErrorCount[blockIdx.x]
- // Sum-reduce this array afterwards to get total error count over tested region
- // Uses 12*blockDim.x bytes of shared memory
-
- extern __shared__ uint shmem[];
- uint* threadErrorCount = shmem;
- uint* randomBlock = shmem + blockDim.x;
- // Put these into shmem to cut register count
- uint* bitSeeds = randomBlock + blockDim.x;
-
- threadErrorCount[threadIdx.x] = 0;
-
- // Make sure seed is not zero.
- if (seed == 0) seed = 123459876+blockIdx.x;
- //uint bitSeed = deviceRan0p(seed + threadIdx.x,threadIdx.x);
- bitSeeds[threadIdx.x] = deviceRan0p(seed + threadIdx.x,threadIdx.x);
-
- for (uint i = 0; i < N; i++) {
- // Generate a block of random numbers in parallel using closed-form expression for ran0
- // OR in a random bit because Ran0 will never have the high bit set
- //randomBlock[threadIdx.x] = deviceRan0p(seed,threadIdx.x) | (deviceIrbit2(bitSeed) << 31);
- randomBlock[threadIdx.x] = deviceRan0p(seed,threadIdx.x) | (deviceIrbit2(bitSeeds[threadIdx.x]) << 31);
- __syncthreads();
-
- // Set the seed for the next round to the last number calculated in this round
- seed = randomBlock[blockDim.x-1];
-
- //if ( randomBlock[threadIdx.x] != *(THREAD_ADDRESS(base,N,i))) threadErrorCount[threadIdx.x]++;
- threadErrorCount[threadIdx.x] += BITSDIFF(*(THREAD_ADDRESS(base,N,i)),randomBlock[threadIdx.x]);
-
- }
-
- // Parallel-reduce error counts over threads in block
- for (uint stride = blockDim.x>>1; stride > 0; stride >>= 1) {
- __syncthreads();
- if (threadIdx.x < stride)
- threadErrorCount[threadIdx.x] += threadErrorCount[threadIdx.x + stride];
- }
- __syncthreads();
-
- if (threadIdx.x == 0)
- blockErrorCount[blockIdx.x] = threadErrorCount[0];
-
- return;
-}
-//}}}
-//}}}
-
-// Memtest86 Test 8: tseq=3 (M86 uses modulus = 20)
-__host__ uint gpuModuloX(const uint nBlocks,const uint nThreads,uint* base,const uint N,uint shift,uint pattern1,const uint modulus,const uint iters,
- uint* blockErrorCount,uint* errorCounts) { //{{{
- // Given device arrays base (tested memory) and blockErrorCount (nBlocks uints in length of temp space)
- // Given a shift, modulus, pattern to test and number of overwrite iterations
- // Performs Modulo-X test on memory
-
- //uint errorCounts[nBlocks];
- uint totalErrors = 0;
- shift %= modulus;
-
- // Test both the given pattern and its inverse
- for (uint i = 0; i < 2; i++, pattern1 = ~pattern1) {
- deviceWritePairedModulo<<<nBlocks,nThreads>>>(base,N,shift,pattern1,~pattern1,modulus,iters);
- CHECK_LAUNCH_ERROR();
- SOFTWAIT();
- CHECK_LAUNCH_ERROR();
-
- deviceVerifyPairedModulo<<<nBlocks,nThreads,sizeof(uint)*nThreads>>>(base,N,shift,pattern1,modulus,blockErrorCount);
- CHECK_LAUNCH_ERROR();
- SOFTWAIT();
- CHECK_LAUNCH_ERROR();
-
- cudaMemcpy(errorCounts,blockErrorCount,sizeof(uint)*nBlocks,cudaMemcpyDeviceToHost);
-
- // Sum-reduce block error counts on the host - it's only order of 1k numbers.
- for (uint i = 0; i < nBlocks; i++) {
- totalErrors += errorCounts[i];
- }
- }
- return totalErrors;
-}
-
-__global__ void deviceWritePairedModulo(uint* base,const uint N,const uint shift,const uint pattern1,const uint pattern2,const uint modulus,const uint iters) {
- // First writes pattern1 into every offset that is 0 mod modulus
- // Next (iters times) writes ~pattern1 into every other address
- uint offset;
- for (uint i = 0 ; i < N; i++) {
- offset = THREAD_OFFSET(N,i);
- if ((offset % modulus) == shift) *(base+offset) = pattern1;
- }
- __syncthreads();
- for (uint j = 0; j < iters; j++) {
- for (uint i = 0 ; i < N; i++) {
- offset = THREAD_OFFSET(N,i);
- if ((offset % modulus) != shift) *(base+offset) = pattern2;
- }
- }
-}
-__global__ void deviceVerifyPairedModulo(uint* base,uint N,const uint shift,const uint pattern1,const uint modulus,uint* blockErrorCount) {
- // Verifies that memory at each (offset mod modulus == shift) stores pattern1
- // Sums number of errors found in block and stores error count into blockErrorCount[blockIdx.x]
- // Sum-reduce this array afterwards to get total error count over tested region
- // Uses 4*blockDim.x bytes of shared memory
-
- extern __shared__ uint threadErrorCount[];
- threadErrorCount[threadIdx.x] = 0;
- uint offset;
-
- for (uint i = 0; i < N; i++) {
- offset = THREAD_OFFSET(N,i);
- //if (((offset % modulus) == shift) && (*(base+offset) != pattern1)) threadErrorCount[threadIdx.x]++;
- if ((offset % modulus) == shift) threadErrorCount[threadIdx.x] += BITSDIFF(*(base+offset),pattern1);
- }
- // Parallel-reduce error counts over threads in block
- for (uint stride = blockDim.x>>1; stride > 0; stride >>= 1) {
- __syncthreads();
- if (threadIdx.x < stride)
- threadErrorCount[threadIdx.x] += threadErrorCount[threadIdx.x + stride];
- }
- __syncthreads();
-
- if (threadIdx.x == 0)
- blockErrorCount[blockIdx.x] = threadErrorCount[0];
-
- return;
-}
-//}}}
+++ /dev/null
-/*
- * memtestG80_core.h
- * Public API for core memory test functions for MemtestG80
- * Includes functional and OO interfaces to GPU test functions.
- *
- * Author: Imran Haque, 2009
- * Copyright 2009, Stanford University
- *
- * This file is licensed under the terms of the LGPL. Please see
- * the COPYING file in the accompanying source distribution for
- * full license terms.
- *
- */
-#ifndef _MEMTESTG80_CORE_H_
-#define _MEMTESTG80_CORE_H_
-
-#if defined (WINDOWS) || defined (WINNV)
- #include <windows.h>
-inline unsigned int getTimeMilliseconds(void)
-{
- return GetTickCount();
-}
- #include <windows.h>
- #define SLEEPMS(x) Sleep(x)
-#elif defined (LINUX) || defined (OSX)
- #include <sys/time.h>
-inline unsigned int getTimeMilliseconds(void)
-{
- struct timeval tv;
- gettimeofday(&tv, NULL);
- return tv.tv_sec*1000 + tv.tv_usec/1000;
-}
- #include <unistd.h>
- #define SLEEPMS(x) usleep(x*1000)
-#else
- #error Must #define LINUX, WINDOWS, WINNV, or OSX
-#endif
-
-// By default the driver will spinwait when blocked on a kernel call
-// Use the SOFTWAIT macro to replace this with a thread sleep and occasional poll
-// limit expresses the max time we're willing to stay in the sleep loop - default = 15sec
-inline int _pollStatus(unsigned length = 1, unsigned limit = 15000)
-{
- //while (cudaStreamQuery(0) != cudaSuccess) {SLEEPMS(length);}
- unsigned startTime = getTimeMilliseconds();
- while (cudaStreamQuery(0) == cudaErrorNotReady)
- {
- if ((getTimeMilliseconds() - startTime) > limit)
- {
- return -1;
- }
- SLEEPMS(length);
- }
- return 0;
-}
-#define SOFTWAIT() if (_pollStatus() != 0) {return 0xFFFFFFFE; } // -2
-#define SOFTWAIT_LIM(lim) if (_pollStatus(1, lim) != 0) {return 0xFFFFFFFE; } // -2
-//#define SOFTWAIT()
-//#define SOFTWAIT(delay) if (_pollStatus(delay) != 0) return -2;
-//#define SOFTWAIT(delay,limit) if (_pollStatus(delay,limit) != 0) return -2;
-//#define SOFTWAIT() while (cudaStreamQuery(0) != cudaSuccess) {SLEEPMS(1);}
-//#define SOFTWAIT(x) while (cudaStreamQuery(0) != cudaSuccess) {SLEEPMS(x);}
-//#define SOFTWAIT()
-
-// Use this macro to check for kernel errors
-#define CHECK_LAUNCH_ERROR() if (cudaGetLastError() != cudaSuccess) {return 0xFFFFFFFF; /* -1 */}
-
-
-typedef unsigned int uint;
-
-// OO interface to MemtestG80 functions
-class memtestState
-{
- protected:
- const uint nBlocks;
- const uint nThreads;
- uint loopIters;
- uint megsToTest;
- int lcgPeriod;
- uint * devTestMem;
- uint * devTempMem;
- uint * hostTempMem;
- bool allocated;
- public:
- uint initTime;
- memtestState() : nBlocks(1024), nThreads(512), loopIters(0), megsToTest(0), allocated(false), devTestMem(NULL), devTempMem(NULL), hostTempMem(NULL), initTime(0), lcgPeriod(1024) {};
- ~memtestState() {deallocate(); }
-
- uint allocate(uint mbToTest);
- void deallocate();
- bool isAllocated() const {return allocated; }
- uint size() const {return megsToTest; }
- void setLCGPeriod(int period) {lcgPeriod = period; }
- int getLCGPeriod() const {return lcgPeriod; }
-
- bool gpuMemoryBandwidth(double &bandwidth, uint mbToTest, uint iters = 5);
- bool gpuWriteConstant(const uint constant) const;
- bool gpuVerifyConstant(uint &errorCount, const uint constant) const;
- bool gpuShortLCG0(uint &errorCount, const uint repeats) const;
- bool gpuShortLCG0Shmem(uint &errorCount, const uint repeats) const;
- bool gpuMovingInversionsOnesZeros(uint &errorCount) const;
- bool gpuWalking8BitM86(uint &errorCount, const uint shift) const;
- bool gpuWalking8Bit(uint &errorCount, const bool ones, const uint shift) const;
- bool gpuMovingInversionsRandom(uint &errorCount) const;
- bool gpuWalking32Bit(uint &errorCount, const bool ones, const uint shift) const;
- bool gpuRandomBlocks(uint &errorCount, const uint seed) const;
- bool gpuModuloX(uint &errorCount, const uint shift, const uint pattern, const uint modulus, const uint overwriteIters) const;
-};
-
-// Utility functions
-__host__ double gpuMemoryBandwidth(uint* src, uint* dst, uint mbToTest, uint iters);
-__host__ void gpuWriteConstant(const uint nBlocks, const uint nThreads, uint* base, uint N, const uint constant);
-__host__ uint gpuVerifyConstant(const uint nBlocks, const uint nThreads, uint* base, uint N, const uint constant, uint* blockErrorCount, uint* errorCounts);
-
-__host__ void cpuWriteConstant(const uint nBlocks, const uint nThreads, uint* base, uint N, const uint constant);
-__host__ uint cpuVerifyConstant(const uint nBlocks, const uint nThreads, uint* base, uint N, const uint constant);
-
-// Logic tests
-__host__ uint gpuShortLCG0(const uint nBlocks, const uint nThreads, uint* base, uint N, const uint repeats, const int period, uint* blockErrorCounts, uint* errorCounts);
-__host__ uint gpuShortLCG0Shmem(const uint nBlocks, const uint nThreads, uint* base, uint N, const uint repeats, const int period, uint* blockErrorCounts, uint* errorCounts);
-
-// Memtest86 Test 2: tseq=0,4
-__host__ uint gpuMovingInversionsOnesZeros(const uint nBlocks, const uint nThreads, uint* base, uint N, uint* blockErrorCounts, uint* errorCounts);
-
-// Memtest86 Test 3: tseq=1
-__host__ uint gpuWalking8BitM86(const uint nBlocks, const uint nThreads, uint* base, uint N, uint shift, uint* blockErrorCounts, uint* errorCounts);
-__host__ uint cpuWalking8BitM86(const uint nBlocks, const uint nThreads, uint* base, uint N, uint shift);
-__host__ uint gpuWalking8Bit(const uint nBlocks, const uint nThreads, uint* base, uint N, bool ones, uint shift, uint* blockErrorCount, uint* errorCounts);
-
-// Memtest86 Test 4: tseq=10
-__host__ uint gpuMovingInversionsRandom(const uint nBlocks, const uint nThreads, uint* base, uint N, uint* blockErrorCounts, uint* errorCounts);
-
-// Memtest86 Test 6: tseq=2
-__host__ uint gpuWalking32Bit(const uint nBlocks, const uint nThreads, uint* base, uint N, bool ones, uint shift, uint* blockErrorCount, uint* errorCounts);
-//
-// Memtest86 Test 7: tseq=9
-__host__ uint gpuRandomBlocks(const uint nBlocks, const uint nThreads, uint* base, uint N, uint seed, uint* blockErrorCount, uint* errorCounts);
-
-// Memtest86 Test 8: tseq=3 (M86 uses modulus = 20)
-__host__ uint gpuModuloX(const uint nBlocks, const uint nThreads, uint* base, const uint N, uint shift, uint pattern1, const uint modulus, const uint iters, uint* blockErrorCount, uint* errorCounts);
-
-#endif
* the research papers on the package. Check out http://www.gromacs.org.
*/
/* This file is completely threadsafe - keep it that way! */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include "typedefs.h"
#define def_nofc(str, lstr) \
{str, lstr, 0, 0, 0, IF_NULL, -1, unimplemented}
-/* this MUST correspond to the enum in include/types/idef.h */
+/* this MUST correspond to the enum in src/gromacs/topology/idef.h */
const t_interaction_function interaction_function[F_NRE] =
{
def_bond ("BONDS", "Bond", 2, 2, 2, eNR_BONDS, bonds ),
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include "typedefs.h"
#include "macros.h"
#include "inputrec.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
/* The minimum number of integration steps required for reasonably accurate
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdio.h>
#include <stdlib.h>
#ifdef HAVE_SYS_TIME_H
#include <sys/time.h>
#endif
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#ifdef GMX_NATIVE_WINDOWS
+#include <process.h>
+#endif
-#include "gromacs/utility/smalloc.h"
#include "types/commrec.h"
-#include "gmx_fatal.h"
#include "network.h"
#include "main.h"
#include "macros.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/fileio/filenm.h"
#include "gromacs/fileio/gmxfio.h"
-#include "gromacs/utility/cstringutil.h"
#include "copyrite.h"
+#include "gromacs/utility/basenetwork.h"
+#include "gromacs/utility/cstringutil.h"
#include "gromacs/utility/exceptions.h"
+#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/gmxmpi.h"
#include "gromacs/utility/programcontext.h"
+#include "gromacs/utility/smalloc.h"
/* The source code in this file should be thread-safe.
Please keep it that way. */
-
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#ifdef GMX_NATIVE_WINDOWS
-#include <process.h>
-#endif
-
#define BUFSIZE 1024
-
static void par_fn(char *base, int ftp, const t_commrec *cr,
gmx_bool bAppendSimId, gmx_bool bAppendNodeId,
char buf[], int bufsize)
}
-int gmx_gethostname(char *name, size_t len)
-{
- if (len < 8)
- {
- gmx_incons("gmx_gethostname called with len<8");
- }
-#if defined(HAVE_UNISTD_H) && !defined(__native_client__)
- if (gethostname(name, len-1) != 0)
- {
- strncpy(name, "unknown", 8);
- return -1;
- }
- return 0;
-#else
- strncpy(name, "unknown", 8);
- return -1;
-#endif
-}
-
-
void gmx_log_open(const char *lognm, const t_commrec *cr, gmx_bool bMasterOnly,
gmx_bool bAppendFiles, FILE** fplog)
{
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2012, by the GROMACS development team, led by
+ * Copyright (c) 2012,2014, 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.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdio.h>
#include <stdarg.h>
+++ /dev/null
-/*
- * This file is part of the GROMACS molecular simulation package.
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2010, 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.
- *
- * GROMACS is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1
- * of the License, or (at your option) any later version.
- *
- * GROMACS is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with GROMACS; if not, see
- * http://www.gnu.org/licenses, or write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * If you want to redistribute modifications to GROMACS, 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 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.
- */
-
-#ifndef _minvert_h
-#define _minvert_h
-
-#include "typedefs.h"
-
-/* A bunch of routines that works on matrices that run from 1 thru n
- * although they are allocated from 0 thru n
- */
-
-extern void mat_mult(int n, real **A, real **B, real **C);
-
-extern real **mk_mat(int n);
-
-extern real **mk_mat2(int nrow, int ncol);
-
-extern void cp_mat(int n, real **src, real **dest);
-
-extern void print_mat(FILE *fp, char *title, int n, real **a, int *indx);
-/* index may be NULL */
-
-extern void invert_mat(int n, real **A, real **Ainv);
-
-#endif
* the research papers on the package. Check out http://www.gromacs.org.
*/
/* This file is completely threadsafe - keep it that way! */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <string.h>
#include "mvdata.h"
#include "types/commrec.h"
#include "network.h"
-#include "gromacs/utility/smalloc.h"
-#include "gmx_fatal.h"
-#include "symtab.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "tgroup.h"
+#include "gromacs/topology/symtab.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
+
#define block_bc(cr, d) gmx_bcast( sizeof(d), &(d), (cr))
/* Probably the test for (nr) > 0 in the next macro is only needed
* on BlueGene(/L), where IBM's MPI_Bcast will segfault after
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include "typedefs.h"
#include "names.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "network.h"
+#include "config.h"
+
+#include <ctype.h>
+#include <stdarg.h>
+#include <stdlib.h>
#include <string.h>
-#include "gmx_fatal.h"
-#include "main.h"
-#include "gromacs/utility/smalloc.h"
+
#include "types/commrec.h"
-#include "network.h"
#include "copyrite.h"
-#include <ctype.h>
#include "macros.h"
-#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/basenetwork.h"
+#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/utility/gmxmpi.h"
-
+#include "gromacs/utility/smalloc.h"
/* The source code in this file should be thread-safe.
Please keep it that way. */
-gmx_bool gmx_mpi_initialized(void)
-{
- int n;
-#ifndef GMX_MPI
- return 0;
-#else
- MPI_Initialized(&n);
-
- return n;
-#endif
-}
-
void gmx_fill_commrec_from_mpi(t_commrec gmx_unused *cr)
{
#ifndef GMX_MPI
#endif
}
-int gmx_node_num(void)
-{
-#ifndef GMX_MPI
- return 1;
-#else
- int i;
- (void) MPI_Comm_size(MPI_COMM_WORLD, &i);
- return i;
-#endif
-}
-
-int gmx_node_rank(void)
-{
-#ifndef GMX_MPI
- return 0;
-#else
- int i;
- (void) MPI_Comm_rank(MPI_COMM_WORLD, &i);
- return i;
-#endif
-}
-
-static int mpi_hostname_hash(void)
-{
- int hash_int;
-
-#ifndef GMX_LIB_MPI
- /* We have a single physical node */
- hash_int = 0;
-#else
- int resultlen;
- char mpi_hostname[MPI_MAX_PROCESSOR_NAME];
-
- /* This procedure can only differentiate nodes with different names.
- * Architectures where different physical nodes have identical names,
- * such as IBM Blue Gene, should use an architecture specific solution.
- */
- MPI_Get_processor_name(mpi_hostname, &resultlen);
-
- /* The string hash function returns an unsigned int. We cast to an int.
- * Negative numbers are converted to positive by setting the sign bit to 0.
- * This makes the hash one bit smaller.
- * A 63-bit hash (with 64-bit int) should be enough for unique node hashes,
- * even on a million node machine. 31 bits might not be enough though!
- */
- hash_int =
- (int)gmx_string_fullhash_func(mpi_hostname, gmx_string_hash_init);
- if (hash_int < 0)
- {
- hash_int -= INT_MIN;
- }
-#endif
-
- return hash_int;
-}
-
-#if defined GMX_LIB_MPI && defined GMX_TARGET_BGQ
-#include <spi/include/kernel/location.h>
-
-static int bgq_nodenum(void)
-{
- int hostnum;
- Personality_t personality;
- Kernel_GetPersonality(&personality, sizeof(personality));
- /* Each MPI rank has a unique coordinate in a 6-dimensional space
- (A,B,C,D,E,T), with dimensions A-E corresponding to different
- physical nodes, and T within each node. Each node has sixteen
- physical cores, each of which can have up to four hardware
- threads, so 0 <= T <= 63 (but the maximum value of T depends on
- the confituration of ranks and OpenMP threads per
- node). However, T is irrelevant for computing a suitable return
- value for gmx_hostname_num().
- */
- hostnum = personality.Network_Config.Acoord;
- hostnum *= personality.Network_Config.Bnodes;
- hostnum += personality.Network_Config.Bcoord;
- hostnum *= personality.Network_Config.Cnodes;
- hostnum += personality.Network_Config.Ccoord;
- hostnum *= personality.Network_Config.Dnodes;
- hostnum += personality.Network_Config.Dcoord;
- hostnum *= personality.Network_Config.Enodes;
- hostnum += personality.Network_Config.Ecoord;
-
- if (debug)
- {
- fprintf(debug,
- "Torus ID A: %d / %d B: %d / %d C: %d / %d D: %d / %d E: %d / %d\nNode ID T: %d / %d core: %d / %d hardware thread: %d / %d\n",
- personality.Network_Config.Acoord,
- personality.Network_Config.Anodes,
- personality.Network_Config.Bcoord,
- personality.Network_Config.Bnodes,
- personality.Network_Config.Ccoord,
- personality.Network_Config.Cnodes,
- personality.Network_Config.Dcoord,
- personality.Network_Config.Dnodes,
- personality.Network_Config.Ecoord,
- personality.Network_Config.Enodes,
- Kernel_ProcessorCoreID(),
- 16,
- Kernel_ProcessorID(),
- 64,
- Kernel_ProcessorThreadID(),
- 4);
- }
- return hostnum;
-}
-#endif
-
-int gmx_physicalnode_id_hash(void)
-{
- int hash;
-
-#ifndef GMX_MPI
- hash = 0;
-#else
-#ifdef GMX_THREAD_MPI
- /* thread-MPI currently puts the thread number in the process name,
- * we might want to change this, as this is inconsistent with what
- * most MPI implementations would do when running on a single node.
- */
- hash = 0;
-#else
-#ifdef GMX_TARGET_BGQ
- hash = bgq_nodenum();
-#else
- hash = mpi_hostname_hash();
-#endif
-#endif
-#endif
-
- if (debug)
- {
- fprintf(debug, "In gmx_physicalnode_id_hash: hash %d\n", hash);
- }
-
- return hash;
-}
-
void gmx_setup_nodecomm(FILE gmx_unused *fplog, t_commrec *cr)
{
gmx_nodecomm_t *nc;
#endif
}
-void gmx_abort(int gmx_unused noderank, int gmx_unused nnodes, int gmx_unused errorno)
-{
-#ifndef GMX_MPI
- gmx_call("gmx_abort");
-#else
-#ifdef GMX_THREAD_MPI
- fprintf(stderr, "Halting program %s\n", ShortProgram());
- gmx_thanx(stderr);
- exit(1);
-#else
- if (nnodes > 1)
- {
- fprintf(stderr, "Halting parallel program %s on CPU %d out of %d\n",
- ShortProgram(), noderank, nnodes);
- }
- else
- {
- fprintf(stderr, "Halting program %s\n", ShortProgram());
- }
-
- gmx_thanx(stderr);
- MPI_Abort(MPI_COMM_WORLD, errorno);
- exit(1);
-#endif
-#endif
-}
-
void gmx_bcast(int gmx_unused nbytes, void gmx_unused *b, const t_commrec gmx_unused *cr)
{
#ifndef GMX_MPI
#endif
#endif
}
+
+gmx_bool gmx_fexist_master(const char *fname, t_commrec *cr)
+{
+ gmx_bool bExist;
+
+ if (SIMMASTER(cr))
+ {
+ bExist = gmx_fexist(fname);
+ }
+ if (PAR(cr))
+ {
+ gmx_bcast(sizeof(bExist), &bExist, cr);
+ }
+ return bExist;
+}
+
+void gmx_fatal_collective(int f_errno, const char *file, int line,
+ const t_commrec *cr, gmx_domdec_t *dd,
+ const char *fmt, ...)
+{
+ va_list ap;
+ gmx_bool bMaster, bFinalize;
+#ifdef GMX_MPI
+ int result;
+ /* Check if we are calling on all processes in MPI_COMM_WORLD */
+ if (cr != NULL)
+ {
+ MPI_Comm_compare(cr->mpi_comm_mysim, MPI_COMM_WORLD, &result);
+ }
+ else
+ {
+ MPI_Comm_compare(dd->mpi_comm_all, MPI_COMM_WORLD, &result);
+ }
+ /* Any result except MPI_UNEQUAL allows us to call MPI_Finalize */
+ bFinalize = (result != MPI_UNEQUAL);
+#else
+ bFinalize = TRUE;
+#endif
+ bMaster = (cr != NULL && MASTER(cr)) || (dd != NULL && DDMASTER(dd));
+
+ va_start(ap, fmt);
+ gmx_fatal_mpi_va(f_errno, file, line, bMaster, bFinalize, fmt, ap);
+ va_end(ap);
+}
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "typedefs.h"
#include "nonbonded.h"
#include "nb_kernel.h"
#include "macros.h"
#include "nb_free_energy.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
void
gmx_nb_free_energy_kernel(const t_nblist * gmx_restrict nlist,
bDoPotential = kernel_data->flags & GMX_NONBONDED_DO_POTENTIAL;
rcoulomb = fr->rcoulomb;
- sh_ewald = fr->ic->sh_ewald;
rvdw = fr->rvdw;
sh_invrc6 = fr->ic->sh_invrc6;
sh_lj_ewald = fr->ic->sh_lj_ewald;
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "typedefs.h"
#include "nb_generic.h"
#include "nrnb.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "nonbonded.h"
#include "nb_kernel.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "typedefs.h"
#include "nb_generic_adress.h"
#include "nrnb.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "nonbonded.h"
#include "nb_kernel.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "typedefs.h"
#include "nb_generic_cg.h"
#include "nonbonded.h"
#include "nb_kernel.h"
#include "nrnb.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
void
gmx_nb_generic_cg_kernel(t_nblist * nlist,
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdio.h>
#include "nb_kernel.h"
#include "gromacs/utility/smalloc.h"
#include "gromacs/utility/cstringutil.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
/* Static data structures to find kernels */
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012, by the GROMACS development team, led by
+ * Copyright (c) 2012,2014, 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.
#ifndef _nb_kernel_h_
#define _nb_kernel_h_
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#ifdef __cplusplus
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012, by the GROMACS development team, led by
+ * Copyright (c) 2012,2014, 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.
#error This file must be processed with the Gromacs pre-preprocessor
/* #endif */
/* #if INCLUDE_HEADER */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/* #endif */
# 'cutoff' means the interaction is set to 0.0 outside the cutoff
#
-FileHeader = create_copyright_header('2012,2013')
+FileHeader = create_copyright_header('2012,2013,2014')
FileHeader += """/*
* Note: this file was generated by the GROMACS """+Arch+""" kernel generator.
*/
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
#error This file must be processed with the Gromacs pre-preprocessor
/* #endif */
/* #if INCLUDE_HEADER */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_double.h"
# 'cutoff' means the interaction is set to 0.0 outside the cutoff
#
-FileHeader = create_copyright_header('2012,2013')
+FileHeader = create_copyright_header('2012,2013,2014')
FileHeader += """/*
* Note: this file was generated by the GROMACS """+Arch+""" kernel generator.
*/
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_128_fma_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
#error This file must be processed with the Gromacs pre-preprocessor
/* #endif */
/* #if INCLUDE_HEADER */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_128_fma_single.h"
# 'cutoff' means the interaction is set to 0.0 outside the cutoff
#
-FileHeader = create_copyright_header('2012,2013')
+FileHeader = create_copyright_header('2012,2013,2014')
FileHeader += """/*
* Note: this file was generated by the GROMACS """+Arch+""" kernel generator.
*/
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
#error This file must be processed with the Gromacs pre-preprocessor
/* #endif */
/* #if INCLUDE_HEADER */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_double.h"
# 'cutoff' means the interaction is set to 0.0 outside the cutoff
#
-FileHeader = create_copyright_header('2012,2013')
+FileHeader = create_copyright_header('2012,2013,2014')
FileHeader += """/*
* Note: this file was generated by the GROMACS """+Arch+""" kernel generator.
*/
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS avx_256_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
#error This file must be processed with the Gromacs pre-preprocessor
/* #endif */
/* #if INCLUDE_HEADER */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_avx_256_single.h"
# 'cutoff' means the interaction is set to 0.0 outside the cutoff
#
-FileHeader = create_copyright_header('2012,2013')
+FileHeader = create_copyright_header('2012,2013,2014')
FileHeader += """/*
* Note: this file was generated by the GROMACS """+Arch+""" kernel generator.
*/
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS c kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/*
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "gromacs/utility/smalloc.h"
#include "nb_kernel_allvsall.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012, by the GROMACS development team, led by
+ * Copyright (c) 2012,2014, 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.
#ifndef _NB_KERNEL_ALLVSALL_H
#define _NB_KERNEL_ALLVSALL_H
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include "types/simple.h"
#include "typedefs.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "gromacs/utility/smalloc.h"
#include "nb_kernel_allvsallgb.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012, by the GROMACS development team, led by
+ * Copyright (c) 2012,2014, 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.
#ifndef _NB_KERNEL_ALLVSALLGB_H
#define _NB_KERNEL_ALLVSALLGB_H
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include "types/simple.h"
#include "typedefs.h"
#error This file must be processed with the Gromacs pre-preprocessor
/* #endif */
/* #if INCLUDE_HEADER */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
/* #endif */
# 'cutoff' means the interaction is set to 0.0 outside the cutoff
#
-FileHeader = create_copyright_header('2012,2013')
+FileHeader = create_copyright_header('2012,2013,2014')
FileHeader += """/*
* Note: this file was generated by the GROMACS """+Arch+""" kernel generator.
*/
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sparc64_hpc_ace_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
#error This file must be processed with the Gromacs pre-preprocessor
/* #endif */
/* #if INCLUDE_HEADER */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "kernelutil_sparc64_hpc_ace_double.h"
# 'cutoff' means the interaction is set to 0.0 outside the cutoff
#
-FileHeader = create_copyright_header('2012,2013')
+FileHeader = create_copyright_header('2012,2013,2014')
FileHeader += """/*
* Note: this file was generated by the GROMACS """+Arch+""" kernel generator.
*/
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
#error This file must be processed with the Gromacs pre-preprocessor
/* #endif */
/* #if INCLUDE_HEADER */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_double.h"
# 'cutoff' means the interaction is set to 0.0 outside the cutoff
#
-FileHeader = create_copyright_header('2012,2013')
+FileHeader = create_copyright_header('2012,2013,2014')
FileHeader += """/*
* Note: this file was generated by the GROMACS """+Arch+""" kernel generator.
*/
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse2_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
#error This file must be processed with the Gromacs pre-preprocessor
/* #endif */
/* #if INCLUDE_HEADER */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse2_single.h"
# 'cutoff' means the interaction is set to 0.0 outside the cutoff
#
-FileHeader = create_copyright_header('2012,2013')
+FileHeader = create_copyright_header('2012,2013,2014')
FileHeader += """/*
* Note: this file was generated by the GROMACS """+Arch+""" kernel generator.
*/
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_double kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
#error This file must be processed with the Gromacs pre-preprocessor
/* #endif */
/* #if INCLUDE_HEADER */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_double.h"
# 'cutoff' means the interaction is set to 0.0 outside the cutoff
#
-FileHeader = create_copyright_header('2012,2013')
+FileHeader = create_copyright_header('2012,2013,2014')
FileHeader += """/*
* Note: this file was generated by the GROMACS """+Arch+""" kernel generator.
*/
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*
* Note: this file was generated by the GROMACS sse4_1_single kernel generator.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
#error This file must be processed with the Gromacs pre-preprocessor
/* #endif */
/* #if INCLUDE_HEADER */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "../nb_kernel.h"
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "gromacs/simd/math_x86_sse4_1_single.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdio.h>
#include <stdlib.h>
#include "typedefs.h"
#include "txtdump.h"
-#include "gromacs/utility/smalloc.h"
#include "ns.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "gromacs/math/utilities.h"
#include "macros.h"
-#include "gromacs/utility/cstringutil.h"
#include "force.h"
#include "names.h"
-#include "main.h"
-#include "xvgr.h"
-#include "gmx_fatal.h"
-#include "physics.h"
#include "force.h"
#include "bondf.h"
#include "nrnb.h"
#include "nonbonded.h"
#include "gromacs/simd/simd.h"
+#include "gromacs/pbcutil/ishift.h"
+#include "gromacs/pbcutil/mshift.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
+
#include "nb_kernel.h"
#include "nb_free_energy.h"
#include "nb_generic.h"
nlist = nblists->nlist_sr;
f = f_shortrange;
}
- else if (range == 1)
+ else
{
/* Long-range */
if (!(flags & GMX_NONBONDED_DO_LR))
if (r2 >= fr->tab14.r*fr->tab14.r)
{
+ /* This check isn't race free. But it doesn't matter because if a race occurs the only
+ * disadvantage is that the warning is printed twice */
if (warned_rlimit == FALSE)
{
nb_listed_warning_rlimit(x, ai, aj, global_atom_index, sqrt(r2), fr->tab14.r);
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
+#include <stdlib.h>
#include <string.h>
+
#include "types/commrec.h"
-#include "sysstuff.h"
#include "names.h"
#include "macros.h"
#include "nrnb.h"
-#include "main.h"
#include "gromacs/utility/smalloc.h"
typedef struct {
view = FALSE;
xvg_format = exvgNONE;
verbosity = 0;
- debug_level = 0;
}
const gmx::ProgramContextInterface &programContext;
xvg_format_t xvg_format;
/* The level of verbosity for this program */
int verbosity;
- /* the debug level */
- int debug_level;
};
/* The source code in this file should be thread-safe.
void output_env_init(output_env_t *oenvp,
const gmx::ProgramContextInterface &context,
time_unit_t tmu, gmx_bool view, xvg_format_t xvg_format,
- int verbosity, int debug_level)
+ int verbosity)
{
try
{
oenv->view = view;
oenv->xvg_format = xvg_format;
oenv->verbosity = verbosity;
- oenv->debug_level = debug_level;
}
GMX_CATCH_ALL_AND_EXIT_WITH_FATAL_ERROR;
}
return oenv->verbosity;
}
-int output_env_get_debug_level(const output_env_t oenv)
-{
- return oenv->debug_level;
-}
-
const char *output_env_get_time_unit(const output_env_t oenv)
{
return time_units_str[oenv->time_unit];
return oenv->xvg_format;
}
-const char *output_env_get_program_name(const output_env_t oenv)
-{
- try
- {
- return oenv->programContext.fullBinaryPath();
- }
- GMX_CATCH_ALL_AND_EXIT_WITH_FATAL_ERROR;
-}
-
-const char *output_env_get_short_program_name(const output_env_t oenv)
+const char *output_env_get_program_display_name(const output_env_t oenv)
{
try
{
- // TODO: Use the display name once it doesn't break anything.
- return oenv->programContext.programName();
+ return oenv->programContext.displayName();
}
GMX_CATCH_ALL_AND_EXIT_WITH_FATAL_ERROR;
}
-const char *output_env_get_cmd_line(const output_env_t oenv)
+const gmx::ProgramContextInterface &
+output_env_get_program_context(const output_env_t oenv)
{
- try
- {
- return oenv->programContext.commandLine();
- }
- GMX_CATCH_ALL_AND_EXIT_WITH_FATAL_ERROR;
+ return oenv->programContext;
}
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include "typedefs.h"
-#include "gromacs/utility/smalloc.h"
-#include "vec.h"
#include "types/commrec.h"
#include "network.h"
#include "orires.h"
#include "main.h"
#include "copyrite.h"
-#include "pbc.h"
-#include "mtop_util.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/topology/mtop_util.h"
#include "gromacs/linearalgebra/nrjac.h"
#include "gromacs/math/do_fit.h"
-#include "gmx_fatal.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/pbcutil/ishift.h"
+#include "gromacs/pbcutil/mshift.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
void init_orires(FILE *fplog, const gmx_mtop_t *mtop,
rvec xref[],
+++ /dev/null
-/*
- * This file is part of the GROMACS molecular simulation package.
- *
- * Copyright (c) 2010, 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.
- *
- * GROMACS is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1
- * of the License, or (at your option) any later version.
- *
- * GROMACS is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with GROMACS; if not, see
- * http://www.gnu.org/licenses, or write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * If you want to redistribute modifications to GROMACS, 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 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.
- */
-#include <stdio.h>
-#include "physics.h"
-
-int main(int argc, char *argv[])
-{
- int i;
- double x, y, z;
-
- x = 3.25;
- for (i = 0; (i < eg2cNR); i++)
- {
- y = gmx2convert(x, i);
- z = convert2gmx(y, i);
- printf("Converted %g [type %d] to %g and back to %g. Diff %g\n",
- x, i, y, z, x-z);
- }
-}
* the research papers on the package. Check out http://www.gromacs.org.
*/
/* This file is completely threadsafe - keep it that way! */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include "typedefs.h"
-#include "main.h"
#include "network.h"
#include "rbin.h"
#include "gromacs/utility/smalloc.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdio.h>
#include <stdlib.h>
#include "typedefs.h"
#include "gromacs/utility/cstringutil.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/utility/smalloc.h"
#include "readinp.h"
#include "macros.h"
#include "gromacs/fileio/gmxfio.h"
#include "names.h"
#include "warninp.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
t_inpfile *read_inpfile(const char *fn, int *ninp,
warninp_t wi)
inp[nin-1].count = 0;
inp[nin-1].bObsolete = FALSE;
inp[nin-1].bSet = FALSE;
- inp[nin-1].name = strdup(lbuf);
- inp[nin-1].value = strdup(rbuf);
+ inp[nin-1].name = gmx_strdup(lbuf);
+ inp[nin-1].value = gmx_strdup(rbuf);
}
else
{
{
/* override */
sfree(inp[found_index].value);
- inp[found_index].value = strdup(rbuf);
+ inp[found_index].value = gmx_strdup(rbuf);
sprintf(warn_buf,
"Overriding existing parameter \"%s\" with value \"%s\"\n",
lbuf, rbuf);
fprintf(stderr, "Replacing old mdp entry '%s' by '%s'\n",
inp[i].name, new_entry);
sfree(inp[i].name);
- inp[i].name = strdup(new_entry);
+ inp[i].name = gmx_strdup(new_entry);
}
else
{
notfound = TRUE;
i = (*ninp)++;
srenew(*inp, (*ninp));
- (*inp)[i].name = strdup(name);
+ (*inp)[i].name = gmx_strdup(name);
(*inp)[i].bSet = TRUE;
}
(*inp)[i].count = (*inp)[0].inp_count++;
if (ii == -1)
{
sprintf(buf, "%d", def);
- (*inp)[(*ninp)-1].value = strdup(buf);
+ (*inp)[(*ninp)-1].value = gmx_strdup(buf);
return def;
}
if (ii == -1)
{
sprintf(buf, "%"GMX_PRId64, def);
- (*inp)[(*ninp)-1].value = strdup(buf);
+ (*inp)[(*ninp)-1].value = gmx_strdup(buf);
return def;
}
if (ii == -1)
{
sprintf(buf, "%g", def);
- (*inp)[(*ninp)-1].value = strdup(buf);
+ (*inp)[(*ninp)-1].value = gmx_strdup(buf);
return def;
}
if (def)
{
sprintf(buf, "%s", def);
- (*inp)[(*ninp)-1].value = strdup(buf);
+ (*inp)[(*ninp)-1].value = gmx_strdup(buf);
}
else
{
if (ii == -1)
{
- (*inp)[(*ninp)-1].value = strdup(defs[0]);
+ (*inp)[(*ninp)-1].value = gmx_strdup(defs[0]);
return 0;
}
fprintf(stderr, "%s\n", buf);
}
- (*inp)[ii].value = strdup(defs[0]);
+ (*inp)[ii].value = gmx_strdup(defs[0]);
return 0;
}
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-
#include <math.h>
-#include <assert.h>
-#include "physics.h"
-#include "vec.h"
+
+#include "gromacs/math/units.h"
#include "gromacs/math/utilities.h"
-#include "txtdump.h"
-#include "bondf.h"
-#include "gromacs/utility/smalloc.h"
-#include "pbc.h"
-#include "ns.h"
-#include "macros.h"
-#include "names.h"
-#include "mshift.h"
-#include "main.h"
-#include "disre.h"
-#include "orires.h"
-#include "force.h"
-#include "nonbonded.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/topology/idef.h"
/* This function computes factors needed for restricted angle potential.
* For explanations on formula used see file "restcbt.h" */
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2012, by the GROMACS development team, led by
+ * Copyright (c) 2012,2014, 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.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
+
+#include <stdlib.h>
#include "typedefs.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "sighandler.h"
-
const char *gmx_stop_cond_name[] =
{
"None",
*/
#include "splitter.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <assert.h>
+#include <stdlib.h>
#include <string.h>
+
#include "macros.h"
+
+#include "gromacs/pbcutil/mshift.h"
+#include "gromacs/topology/block.h"
+#include "gromacs/topology/idef.h"
+#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/smalloc.h"
-#include "mshift.h"
-#include "gmx_fatal.h"
typedef struct {
int atom, sid;
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
/* This file is completely threadsafe - please keep it that way! */
#include <stdio.h>
+#include <stdlib.h>
+
#include "typedefs.h"
#include "types/commrec.h"
#include "names.h"
#include "txtdump.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "macros.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/smalloc.h"
int pr_indent(FILE *fp, int n)
for (i = 0; i <= block->nr; i++)
{
(void) pr_indent(fp, indent+INDENT);
- (void) fprintf(fp, "%s->index[%d]=%u\n",
+ (void) fprintf(fp, "%s->index[%d]=%d\n",
title, bShowNumbers ? i : -1, block->index[i]);
}
for (i = 0; i < block->nra; i++)
{
(void) pr_indent(fp, indent+INDENT);
- (void) fprintf(fp, "%s->a[%d]=%u\n",
+ (void) fprintf(fp, "%s->a[%d]=%d\n",
title, bShowNumbers ? i : -1, block->a[i]);
}
}
(void) fprintf(fp, "\n");
size = pr_indent(fp, indent+INDENT);
}
- size += fprintf(fp, "%u", block->a[j]);
+ size += fprintf(fp, "%d", block->a[j]);
}
(void) fprintf(fp, "}\n");
start = end;
* the research papers on the package. Check out http://www.gromacs.org.
*/
/* This file is completely threadsafe - keep it that way! */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "typedefs.h"
-#include "thread_mpi/threads.h"
+#include "config.h"
-#include "gromacs/utility/smalloc.h"
-#include "symtab.h"
-#include "vec.h"
-#include "pbc.h"
-#include "macros.h"
#include <string.h>
+
+#include "macros.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/pbcutil/pbc.h"
#include "gromacs/random/random.h"
+#include "gromacs/utility/smalloc.h"
/* The source code in this file should be thread-safe.
Please keep it that way. */
-
-
-static gmx_bool bOverAllocDD = FALSE;
-static tMPI_Thread_mutex_t over_alloc_mutex = TMPI_THREAD_MUTEX_INITIALIZER;
-
-
-void set_over_alloc_dd(gmx_bool set)
-{
- tMPI_Thread_mutex_lock(&over_alloc_mutex);
- /* we just make sure that we don't set this at the same time.
- We don't worry too much about reading this rarely-set variable */
- bOverAllocDD = set;
- tMPI_Thread_mutex_unlock(&over_alloc_mutex);
-}
-
-int over_alloc_dd(int n)
-{
- if (bOverAllocDD)
- {
- return OVER_ALLOC_FAC*n + 100;
- }
- else
- {
- return n;
- }
-}
-
int gmx_int64_to_int(gmx_int64_t step, const char *warn)
{
int i;
return i;
}
-char *gmx_step_str(gmx_int64_t i, char *buf)
-{
- sprintf(buf, "%"GMX_PRId64, i);
-
- return buf;
-}
-
-void init_block(t_block *block)
-{
- int i;
-
- block->nr = 0;
- block->nalloc_index = 1;
- snew(block->index, block->nalloc_index);
- block->index[0] = 0;
-}
-
-void init_blocka(t_blocka *block)
-{
- int i;
-
- block->nr = 0;
- block->nra = 0;
- block->nalloc_index = 1;
- snew(block->index, block->nalloc_index);
- block->index[0] = 0;
- block->nalloc_a = 0;
- block->a = NULL;
-}
-
-void init_atom(t_atoms *at)
-{
- int i;
-
- at->nr = 0;
- at->nres = 0;
- at->atom = NULL;
- at->resinfo = NULL;
- at->atomname = NULL;
- at->atomtype = NULL;
- at->atomtypeB = NULL;
- at->pdbinfo = NULL;
-}
-
-void init_atomtypes(t_atomtypes *at)
-{
- at->nr = 0;
- at->radius = NULL;
- at->vol = NULL;
- at->atomnumber = NULL;
- at->gb_radius = NULL;
- at->S_hct = NULL;
-}
-
-void init_groups(gmx_groups_t *groups)
-{
- int g;
-
- groups->ngrpname = 0;
- groups->grpname = NULL;
- for (g = 0; (g < egcNR); g++)
- {
- groups->grps[g].nm_ind = NULL;
- groups->ngrpnr[g] = 0;
- groups->grpnr[g] = NULL;
- }
-
-}
-
-void init_mtop(gmx_mtop_t *mtop)
-{
- mtop->name = NULL;
- mtop->nmoltype = 0;
- mtop->moltype = NULL;
- mtop->nmolblock = 0;
- mtop->molblock = NULL;
- mtop->maxres_renum = 0;
- mtop->maxresnr = -1;
- init_groups(&mtop->groups);
- init_block(&mtop->mols);
- open_symtab(&mtop->symtab);
-}
-
-void init_top(t_topology *top)
-{
- int i;
-
- top->name = NULL;
- init_atom (&(top->atoms));
- init_atomtypes(&(top->atomtypes));
- init_block(&top->cgs);
- init_block(&top->mols);
- init_blocka(&top->excls);
- open_symtab(&top->symtab);
-}
-
void init_inputrec(t_inputrec *ir)
{
memset(ir, 0, (size_t)sizeof(*ir));
snew(ir->simtempvals, 1);
}
-void stupid_fill_block(t_block *grp, int natom, gmx_bool bOneIndexGroup)
-{
- int i;
-
- if (bOneIndexGroup)
- {
- grp->nalloc_index = 2;
- snew(grp->index, grp->nalloc_index);
- grp->index[0] = 0;
- grp->index[1] = natom;
- grp->nr = 1;
- }
- else
- {
- grp->nalloc_index = natom+1;
- snew(grp->index, grp->nalloc_index);
- snew(grp->index, natom+1);
- for (i = 0; (i <= natom); i++)
- {
- grp->index[i] = i;
- }
- grp->nr = natom;
- }
-}
-
-void stupid_fill_blocka(t_blocka *grp, int natom)
-{
- int i;
-
- grp->nalloc_a = natom;
- snew(grp->a, grp->nalloc_a);
- for (i = 0; (i < natom); i++)
- {
- grp->a[i] = i;
- }
- grp->nra = natom;
-
- grp->nalloc_index = natom + 1;
- snew(grp->index, grp->nalloc_index);
- for (i = 0; (i <= natom); i++)
- {
- grp->index[i] = i;
- }
- grp->nr = natom;
-}
-
-void copy_blocka(const t_blocka *src, t_blocka *dest)
-{
- int i;
-
- dest->nr = src->nr;
- dest->nalloc_index = dest->nr + 1;
- snew(dest->index, dest->nalloc_index);
- for (i = 0; i < dest->nr+1; i++)
- {
- dest->index[i] = src->index[i];
- }
- dest->nra = src->nra;
- dest->nalloc_a = dest->nra + 1;
- snew(dest->a, dest->nalloc_a);
- for (i = 0; i < dest->nra+1; i++)
- {
- dest->a[i] = src->a[i];
- }
-}
-
-void done_block(t_block *block)
-{
- block->nr = 0;
- sfree(block->index);
- block->nalloc_index = 0;
-}
-
-void done_blocka(t_blocka *block)
-{
- block->nr = 0;
- block->nra = 0;
- sfree(block->index);
- sfree(block->a);
- block->index = NULL;
- block->a = NULL;
- block->nalloc_index = 0;
- block->nalloc_a = 0;
-}
-
-void done_atom (t_atoms *at)
-{
- at->nr = 0;
- at->nres = 0;
- sfree(at->atom);
- sfree(at->resinfo);
- sfree(at->atomname);
- sfree(at->atomtype);
- sfree(at->atomtypeB);
- if (at->pdbinfo)
- {
- sfree(at->pdbinfo);
- }
-}
-
-void done_atomtypes(t_atomtypes *atype)
-{
- atype->nr = 0;
- sfree(atype->radius);
- sfree(atype->vol);
- sfree(atype->surftens);
- sfree(atype->atomnumber);
- sfree(atype->gb_radius);
- sfree(atype->S_hct);
-}
-
-void done_moltype(gmx_moltype_t *molt)
-{
- int f;
-
- done_atom(&molt->atoms);
- done_block(&molt->cgs);
- done_blocka(&molt->excls);
-
- for (f = 0; f < F_NRE; f++)
- {
- sfree(molt->ilist[f].iatoms);
- molt->ilist[f].nalloc = 0;
- }
-}
-
-void done_molblock(gmx_molblock_t *molb)
-{
- if (molb->nposres_xA > 0)
- {
- molb->nposres_xA = 0;
- free(molb->posres_xA);
- }
- if (molb->nposres_xB > 0)
- {
- molb->nposres_xB = 0;
- free(molb->posres_xB);
- }
-}
-
-void done_mtop(gmx_mtop_t *mtop, gmx_bool bDoneSymtab)
-{
- int i;
-
- if (bDoneSymtab)
- {
- done_symtab(&mtop->symtab);
- }
-
- sfree(mtop->ffparams.functype);
- sfree(mtop->ffparams.iparams);
-
- for (i = 0; i < mtop->nmoltype; i++)
- {
- done_moltype(&mtop->moltype[i]);
- }
- sfree(mtop->moltype);
- for (i = 0; i < mtop->nmolblock; i++)
- {
- done_molblock(&mtop->molblock[i]);
- }
- sfree(mtop->molblock);
- done_block(&mtop->mols);
-}
-
-void done_top(t_topology *top)
-{
- int f;
-
- sfree(top->idef.functype);
- sfree(top->idef.iparams);
- for (f = 0; f < F_NRE; ++f)
- {
- sfree(top->idef.il[f].iatoms);
- top->idef.il[f].iatoms = NULL;
- top->idef.il[f].nalloc = 0;
- }
-
- done_atom (&(top->atoms));
-
- /* For GB */
- done_atomtypes(&(top->atomtypes));
-
- done_symtab(&(top->symtab));
- done_block(&(top->cgs));
- done_block(&(top->mols));
- done_blocka(&(top->excls));
-}
-
static void done_pull_group(t_pull_group *pgrp)
{
if (pgrp->nat > 0)
}
}
-void add_t_atoms(t_atoms *atoms, int natom_extra, int nres_extra)
-{
- int i;
-
- if (natom_extra > 0)
- {
- srenew(atoms->atomname, atoms->nr+natom_extra);
- srenew(atoms->atom, atoms->nr+natom_extra);
- if (NULL != atoms->pdbinfo)
- {
- srenew(atoms->pdbinfo, atoms->nr+natom_extra);
- }
- if (NULL != atoms->atomtype)
- {
- srenew(atoms->atomtype, atoms->nr+natom_extra);
- }
- if (NULL != atoms->atomtypeB)
- {
- srenew(atoms->atomtypeB, atoms->nr+natom_extra);
- }
- for (i = atoms->nr; (i < atoms->nr+natom_extra); i++)
- {
- atoms->atomname[i] = NULL;
- memset(&atoms->atom[i], 0, sizeof(atoms->atom[i]));
- if (NULL != atoms->pdbinfo)
- {
- memset(&atoms->pdbinfo[i], 0, sizeof(atoms->pdbinfo[i]));
- }
- if (NULL != atoms->atomtype)
- {
- atoms->atomtype[i] = NULL;
- }
- if (NULL != atoms->atomtypeB)
- {
- atoms->atomtypeB[i] = NULL;
- }
- }
- atoms->nr += natom_extra;
- }
- if (nres_extra > 0)
- {
- srenew(atoms->resinfo, atoms->nres+nres_extra);
- for (i = atoms->nres; (i < atoms->nres+nres_extra); i++)
- {
- memset(&atoms->resinfo[i], 0, sizeof(atoms->resinfo[i]));
- }
- atoms->nres += nres_extra;
- }
-}
-
-void init_t_atoms(t_atoms *atoms, int natoms, gmx_bool bPdbinfo)
-{
- atoms->nr = natoms;
- atoms->nres = 0;
- snew(atoms->atomname, natoms);
- atoms->atomtype = NULL;
- atoms->atomtypeB = NULL;
- snew(atoms->resinfo, natoms);
- snew(atoms->atom, natoms);
- if (bPdbinfo)
- {
- snew(atoms->pdbinfo, natoms);
- }
- else
- {
- atoms->pdbinfo = NULL;
- }
-}
-
-t_atoms *copy_t_atoms(t_atoms *src)
-{
- t_atoms *dst;
- int i;
-
- snew(dst, 1);
- init_t_atoms(dst, src->nr, (NULL != src->pdbinfo));
- dst->nr = src->nr;
- if (NULL != src->atomname)
- {
- snew(dst->atomname, src->nr);
- }
- if (NULL != src->atomtype)
- {
- snew(dst->atomtype, src->nr);
- }
- if (NULL != src->atomtypeB)
- {
- snew(dst->atomtypeB, src->nr);
- }
- for (i = 0; (i < src->nr); i++)
- {
- dst->atom[i] = src->atom[i];
- if (NULL != src->pdbinfo)
- {
- dst->pdbinfo[i] = src->pdbinfo[i];
- }
- if (NULL != src->atomname)
- {
- dst->atomname[i] = src->atomname[i];
- }
- if (NULL != src->atomtype)
- {
- dst->atomtype[i] = src->atomtype[i];
- }
- if (NULL != src->atomtypeB)
- {
- dst->atomtypeB[i] = src->atomtypeB[i];
- }
- }
- dst->nres = src->nres;
- for (i = 0; (i < src->nres); i++)
- {
- dst->resinfo[i] = src->resinfo[i];
- }
- return dst;
-}
-
-void t_atoms_set_resinfo(t_atoms *atoms, int atom_ind, t_symtab *symtab,
- const char *resname, int resnr, unsigned char ic,
- int chainnum, char chainid)
-{
- t_resinfo *ri;
-
- ri = &atoms->resinfo[atoms->atom[atom_ind].resind];
- ri->name = put_symtab(symtab, resname);
- ri->rtp = NULL;
- ri->nr = resnr;
- ri->ic = ic;
- ri->chainnum = chainnum;
- ri->chainid = chainid;
-}
-
-void free_t_atoms(t_atoms *atoms, gmx_bool bFreeNames)
-{
- int i;
-
- if (bFreeNames && atoms->atomname != NULL)
- {
- for (i = 0; i < atoms->nr; i++)
- {
- if (atoms->atomname[i] != NULL)
- {
- sfree(*atoms->atomname[i]);
- *atoms->atomname[i] = NULL;
- }
- }
- }
- if (bFreeNames && atoms->resinfo != NULL)
- {
- for (i = 0; i < atoms->nres; i++)
- {
- if (atoms->resinfo[i].name != NULL)
- {
- sfree(*atoms->resinfo[i].name);
- *atoms->resinfo[i].name = NULL;
- }
- }
- }
- if (bFreeNames && atoms->atomtype != NULL)
- {
- for (i = 0; i < atoms->nr; i++)
- {
- if (atoms->atomtype[i] != NULL)
- {
- sfree(*atoms->atomtype[i]);
- *atoms->atomtype[i] = NULL;
- }
- }
- }
- if (bFreeNames && atoms->atomtypeB != NULL)
- {
- for (i = 0; i < atoms->nr; i++)
- {
- if (atoms->atomtypeB[i] != NULL)
- {
- sfree(*atoms->atomtypeB[i]);
- *atoms->atomtypeB[i] = NULL;
- }
- }
- }
- sfree(atoms->atomname);
- sfree(atoms->atomtype);
- sfree(atoms->atomtypeB);
- sfree(atoms->resinfo);
- sfree(atoms->atom);
- sfree(atoms->pdbinfo);
- atoms->nr = 0;
- atoms->nres = 0;
- atoms->atomname = NULL;
- atoms->atomtype = NULL;
- atoms->atomtypeB = NULL;
- atoms->resinfo = NULL;
- atoms->atom = NULL;
- atoms->pdbinfo = NULL;
-}
-
real max_cutoff(real cutoff1, real cutoff2)
{
if (cutoff1 == 0 || cutoff2 == 0)
* the research papers on the package. Check out http://www.gromacs.org.
*/
/* This file is completely threadsafe - keep it that way! */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "viewit.h"
+#include "config.h"
+
+#include <stdlib.h>
#include <string.h>
#include "oenv.h"
-#include "viewit.h"
-#include "gromacs/utility/cstringutil.h"
-#include "gromacs/fileio/filenm.h"
#include "macros.h"
-#include "gmx_fatal.h"
+#include "gromacs/fileio/filenm.h"
+#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/fatalerror.h"
static const int can_view_ftp[] = {
0,
"ghostview", "display", NULL, "xterm -e rasmol"
};
-int can_view(int ftp)
+static int can_view(int ftp)
{
int i;
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <string.h>
#include "gromacs/utility/smalloc.h"
#include "copyrite.h"
#include "gromacs/utility/cstringutil.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "warninp.h"
typedef struct warninp {
* the research papers on the package. Check out http://www.gromacs.org.
*/
/* This file is completely threadsafe - keep it that way! */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <string.h>
#include "typedefs.h"
#include "toputil.h"
#include "hackblock.h"
#include "gromacs/utility/cstringutil.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
static void clear_atom_list(int i0, atom_id a[])
{
*/
#include "addconf.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdlib.h>
#include <string.h>
-#include "vec.h"
+
+#include "gromacs/math/vec.h"
#include "macros.h"
-#include "gromacs/utility/smalloc.h"
#include "types/commrec.h"
#include "force.h"
#include "names.h"
#include "mdatoms.h"
#include "nrnb.h"
#include "ns.h"
-#include "mtop_util.h"
+#include "gromacs/topology/mtop_util.h"
#include "chargegroup.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/topology/block.h"
+#include "gromacs/topology/topology.h"
+#include "gromacs/utility/smalloc.h"
+
static real box_margin;
static real max_dist(rvec *x, real *r, int start, int end)
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <assert.h>
+#include <math.h>
+#include <stdlib.h>
#include <sys/types.h>
-#include <math.h>
+
#include "typedefs.h"
-#include "physics.h"
-#include "gromacs/utility/smalloc.h"
-#include "gmx_fatal.h"
+#include "gromacs/math/units.h"
#include "macros.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "coulomb.h"
#include "calc_verletbuf.h"
#include "../mdlib/nbnxn_consts.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
+
#ifdef GMX_NBNXN_SIMD
/* The include below sets the SIMD instruction type (precision+width)
* for all nbnxn SIMD search and non-bonded kernel code.
for (i = 0; i < il->nr; i += 1+NRAL(ft))
{
const t_iparams *ip;
- real cam[5], inv_mass, m_aj;
+ real cam[5] = {0}, inv_mass, m_aj;
int a1, j, aj, coeff;
ip = &ffparams->iparams[il->iatoms[i]];
add_at(&att, &natt, &prop[a], nmol);
}
+ /* cppcheck-suppress uninitvar Fixed in cppcheck 1.65 */
sfree(vsite_m);
sfree(prop);
}
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include "macros.h"
#include "calch.h"
#include "gromacs/math/utilities.h"
-#include "vec.h"
-#include "physics.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/math/units.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#define xAI xa[0]
#define xAJ xa[1]
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2010, by the GROMACS development team, led by
+ * Copyright (c) 2010,2014, 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.
*/
-
-#ifndef _calch_h
-#define _calch_h
+#ifndef GMX_PREPROCESS_CALCH_H
+#define GMX_PREPROCESS_CALCH_H
#include "typedefs.h"
}
#endif
-#endif /* _calch_h */
+#endif
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <signal.h>
#include <stdlib.h>
* the research papers on the package. Check out http://www.gromacs.org.
*/
/* This file is completely threadsafe - keep it that way! */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include <string.h>
-#include "sysstuff.h"
-#include "physics.h"
-#include "vec.h"
+#include "gromacs/math/units.h"
+#include "gromacs/math/vec.h"
#include "gromacs/utility/smalloc.h"
#include "typedefs.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "topio.h"
#include "toputil.h"
#include "convparm.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+
+#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
-#include <fcntl.h>
-#include "sysstuff.h"
-#include "network.h"
-#include "gmx_fatal.h"
-#include "gromacs/utility/smalloc.h"
-
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
+#include "network.h"
#include "fflibutil.h"
-#include "gromacs/fileio/futil.h"
-#include "gromacs/fileio/path.h"
+#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/utility/exceptions.h"
+#include "gromacs/utility/path.h"
#include "gromacs/utility/programcontext.h"
+#include "gromacs/utility/smalloc.h"
const char *fflib_forcefield_dir_ext()
{
sprintf(fn_dir, "%s%c%s", dir, DIR_SEPARATOR, nextname);
/* Copy the file name, possibly including the path. */
- fns[n] = strdup(fn_dir);
+ fns[n] = gmx_strdup(fn_dir);
if (ffdir == NULL)
{
srenew(fns_short, n+1);
if (strcmp(dir, ".") == 0 || bEnvIsSet)
{
- fns_short[n] = strdup(fn_dir);
+ fns_short[n] = gmx_strdup(fn_dir);
}
else
{
- fns_short[n] = strdup(nextname);
+ fns_short[n] = gmx_strdup(nextname);
}
}
n++;
{
/* We have a match */
srenew(dns, n+1);
- dns[n] = strdup(f_short[i]);
+ dns[n] = gmx_strdup(f_short[i]);
n++;
}
}
#ifndef GMX_GMXPREPROCESS_FFLIBUTIL_H
#define GMX_GMXPREPROCESS_FFLIBUTIL_H
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdio.h>
#include "typedefs.h"
* the research papers on the package. Check out http://www.gromacs.org.
*/
/* This file is completely threadsafe - keep it that way! */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <ctype.h>
#include <math.h>
+#include <stdlib.h>
#include <string.h>
-#include "sysstuff.h"
#include "macros.h"
#include "gromacs/utility/smalloc.h"
#include "gromacs/utility/cstringutil.h"
#include "gromacs/fileio/confio.h"
-#include "vec.h"
-#include "pbc.h"
+#include "gromacs/math/vec.h"
#include "toputil.h"
#include "topio.h"
#include "gpp_nextnb.h"
-#include "symtab.h"
#include "macros.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "pgutil.h"
#include "resall.h"
#include "gen_ad.h"
{
fprintf(debug,
"Something VERY strange is going on in rm2par (gen_ad.c)\n"
- "a[0] %u a[1] %u a[2] %u a[3] %u\n",
+ "a[0] %d a[1] %d a[2] %d a[3] %d\n",
p[i].a[0], p[i].a[1], p[i].a[2], p[i].a[3]);
}
strcpy(p[i].s, "");
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "gromacs/random/random.h"
-#include "sysstuff.h"
#include "gromacs/utility/smalloc.h"
-#include "physics.h"
+#include "gromacs/math/units.h"
#include "typedefs.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "gen_maxwell_velocities.h"
-#include "mtop_util.h"
+#include "gromacs/topology/mtop_util.h"
static void low_mspeed(real tempi,
gmx_mtop_t *mtop, rvec v[], gmx_rng_t rng)
if (seed == 0)
{
seed = gmx_rng_make_seed();
- fprintf(stderr, "Using random seed %d for generating velocities\n", seed);
+ fprintf(stderr, "Using random seed %u for generating velocities\n", seed);
}
rng = gmx_rng_init(seed);
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include <stdio.h>
+#include <stdlib.h>
#include <string.h>
-#include "gromacs/utility/cstringutil.h"
#include "gen_vsite.h"
-#include "gromacs/utility/smalloc.h"
#include "resall.h"
#include "add_par.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "toputil.h"
-#include "physics.h"
-#include "index.h"
+#include "gromacs/math/units.h"
#include "names.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
#include "gpp_atomtype.h"
#include "fflibutil.h"
-#include "macros.h"
-#include "gmx_fatal.h"
+#include "gromacs/topology/residuetypes.h"
+#include "gromacs/topology/symtab.h"
+#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
#define MAXNAME 32
#define OPENDIR '[' /* starting sign for directive */
}
static int get_atype(int atom, t_atoms *at, int nrtp, t_restp rtp[],
- gmx_residuetype_t rt)
+ gmx_residuetype_t *rt)
{
int type;
gmx_bool bNterm;
}
static real get_amass(int atom, t_atoms *at, int nrtp, t_restp rtp[],
- gmx_residuetype_t rt)
+ gmx_residuetype_t *rt)
{
real mass;
gmx_bool bNterm;
char **db;
int nvsiteconf, nvsitetop, cmplength;
gmx_bool isN, planarN, bFound;
- gmx_residuetype_t rt;
+ gmx_residuetype_t*rt;
t_vsiteconf *vsiteconflist;
/* pointer to a list of CH3/NH3/NH2 configuration entries.
{
if (debug)
{
- fprintf(debug, " [%u -> %u]", params->param[i].a[j],
+ fprintf(debug, " [%d -> %d]", params->param[i].a[j],
params->param[i].a[j]-add_shift);
}
params->param[i].a[j] = params->param[i].a[j]-add_shift;
{
if (debug)
{
- fprintf(debug, " [%u -> %d]", params->param[i].a[j],
+ fprintf(debug, " [%d -> %d]", params->param[i].a[j],
o2n[params->param[i].a[j]]);
}
params->param[i].a[j] = o2n[params->param[i].a[j]];
/* stuff for pdb2gmx */
void do_vsites(int nrtp, t_restp rtp[], gpp_atomtype_t atype,
- t_atoms *at, t_symtab *symtab, rvec *x[],
+ t_atoms *at, struct t_symtab *symtab, rvec *x[],
t_params plist[], int *dummy_type[], int *cgnr[],
real mHmult, gmx_bool bVSiteAromatics,
const char *ffdir);
#include "gromacs/math/utilities.h"
#include "macros.h"
-#include "gromacs/utility/smalloc.h"
-#include "sysstuff.h"
#include "gromacs/fileio/confio.h"
-#include "gromacs/commandline/pargs.h"
-#include "vec.h"
-#include "gromacs/random/random.h"
-#include "gromacs/math/3dview.h"
#include "txtdump.h"
#include "readinp.h"
#include "names.h"
#include "sortwater.h"
#include "gromacs/fileio/trxio.h"
-#include "gmx_fatal.h"
+#include "gromacs/commandline/pargs.h"
+#include "gromacs/math/3dtransforms.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/random/random.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
static void rand_rot(int natoms, rvec x[], rvec v[], vec4 xrot[], vec4 vrot[],
gmx_rng_t rng, rvec max_rot)
}
fprintf(stderr, "center of geometry: %f, %f, %f\n", xcm[0], xcm[1], xcm[2]);
- translate(-xcm[XX], -xcm[YY], -xcm[ZZ], mt1); /* move c.o.ma to origin */
+ /* move c.o.ma to origin */
+ gmx_mat4_init_translation(-xcm[XX], -xcm[YY], -xcm[ZZ], mt1);
for (m = 0; (m < DIM); m++)
{
phi = M_PI*max_rot[m]*(2*gmx_rng_uniform_real(rng) - 1)/180;
- rotate(m, phi, mr[m]);
+ gmx_mat4_init_rotation(m, phi, mr[m]);
}
- translate(xcm[XX], xcm[YY], xcm[ZZ], mt2);
+ gmx_mat4_init_translation(xcm[XX], xcm[YY], xcm[ZZ], mt2);
- /* For mult_matrix we need to multiply in the opposite order
+ /* For gmx_mat4_mmul() we need to multiply in the opposite order
* compared to normal mathematical notation.
*/
- mult_matrix(mtemp1, mt1, mr[XX]);
- mult_matrix(mtemp2, mr[YY], mr[ZZ]);
- mult_matrix(mtemp3, mtemp1, mtemp2);
- mult_matrix(mxtot, mtemp3, mt2);
- mult_matrix(mvtot, mr[XX], mtemp2);
+ gmx_mat4_mmul(mtemp1, mt1, mr[XX]);
+ gmx_mat4_mmul(mtemp2, mr[YY], mr[ZZ]);
+ gmx_mat4_mmul(mtemp3, mtemp1, mtemp2);
+ gmx_mat4_mmul(mxtot, mtemp3, mt2);
+ gmx_mat4_mmul(mvtot, mr[XX], mtemp2);
for (i = 0; (i < natoms); i++)
{
- m4_op(mxtot, x[i], xrot[i]);
- m4_op(mvtot, v[i], vrot[i]);
+ gmx_mat4_transform_point(mxtot, x[i], xrot[i]);
+ gmx_mat4_transform_point(mvtot, v[i], vrot[i]);
}
}
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <string.h>
#include <time.h>
-#include "sysstuff.h"
#include "typedefs.h"
-#include "gromacs/utility/smalloc.h"
#include "gromacs/fileio/confio.h"
-#include "symtab.h"
-#include "vec.h"
-#include "gromacs/fileio/futil.h"
-#include "gmx_fatal.h"
-#include "physics.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/utility/futil.h"
#include "calch.h"
#include "genhydro.h"
#include "h_db.h"
#include "resall.h"
#include "pgutil.h"
#include "network.h"
-#include "macros.h"
+
+#include "gromacs/topology/symtab.h"
+#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
static void copy_atom(t_atoms *atoms1, int a1, t_atoms *atoms2, int a2)
{
atoms2->atom[a2] = atoms1->atom[a1];
snew(atoms2->atomname[a2], 1);
- *atoms2->atomname[a2] = strdup(*atoms1->atomname[a1]);
+ *atoms2->atomname[a2] = gmx_strdup(*atoms1->atomname[a1]);
}
static atom_id pdbasearch_atom(const char *name, int resind, t_atoms *pdba,
{
if (hb[rnr].name == NULL)
{
- hb[rnr].name = strdup(ahptr->name);
+ hb[rnr].name = gmx_strdup(ahptr->name);
}
merge_hacks(ahptr, &hb[rnr]);
}
{
if ( (*abi)[*nabi + k].oname == NULL)
{
- (*abi)[*nabi + k].nname = strdup(atomname);
+ (*abi)[*nabi + k].nname = gmx_strdup(atomname);
(*abi)[*nabi + k].nname[0] = 'H';
}
}
(*abi)[*nabi + k].oname ? (*abi)[*nabi + k].oname : "");
}
sfree((*abi)[*nabi + k].nname);
- (*abi)[*nabi + k].nname = strdup(hbr->hack[j].nname);
+ (*abi)[*nabi + k].nname = gmx_strdup(hbr->hack[j].nname);
}
if (hbr->hack[j].tp == 10 && k == 2)
ab[i][j].nname);
}
snew(newpdba->atomname[newi], 1);
- *newpdba->atomname[newi] = strdup(ab[i][j].nname);
+ *newpdba->atomname[newi] = gmx_strdup(ab[i][j].nname);
if (ab[i][j].oname != NULL && ab[i][j].atom) /* replace */
{ /* newpdba->atom[newi].m = ab[i][j].atom->m; */
/* newpdba->atom[newi].q = ab[i][j].atom->q; */
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <sys/types.h>
#include <stdio.h>
#include "gromacs/utility/cstringutil.h"
#include "gromacs/utility/smalloc.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
#include "macros.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "gmxcpp.h"
typedef struct {
{
nincl++;
srenew(incl, nincl);
- incl[nincl-1] = strdup(include);
+ incl[nincl-1] = gmx_strdup(include);
}
}
ndef++;
srenew(defs, ndef);
i = ndef - 1;
- defs[i].name = strdup(name);
+ defs[i].name = gmx_strdup(name);
}
else if (defs[i].def)
{
}
if (value && strlen(value) > 0)
{
- defs[i].def = strdup(value);
+ defs[i].def = gmx_strdup(value);
}
else
{
/* Find the file. First check whether it is in the current directory. */
if (gmx_fexist(filenm))
{
- cpp->fn = strdup(filenm);
+ cpp->fn = gmx_strdup(filenm);
}
else
{
{
cpp->path = cpp->fn;
*ptr = '\0';
- cpp->fn = strdup(ptr+1);
+ cpp->fn = gmx_strdup(ptr+1);
snew(cpp->cwd, STRLEN);
gmx_getcwd(cpp->cwd, STRLEN);
(handle) ? handle->line_nr : -1,
handle->line ? handle->line : "");
- return strdup(buf);
+ return gmx_strdup(buf);
}
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include <string.h>
-#include "gromacs/utility/smalloc.h"
-#include "sysstuff.h"
-#include "macros.h"
-#include "topdirs.h"
-#include "toputil.h"
#include "topdirs.h"
#include "toputil.h"
-#include "symtab.h"
-#include "gmx_fatal.h"
#include "txtdump.h"
#include "gpp_atomtype.h"
+#include "gromacs/topology/symtab.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
+
typedef struct gpp_atomtype {
int nr; /* The number of atomtypes */
t_atom *atom; /* Array of atoms */
sfree(ga->atomnumber);
ga->nr = 0;
sfree(ga);
- ga = NULL;
}
static int search_atomtypes(gpp_atomtype_t ga, int *n, int typelist[],
void done_atomtype(gpp_atomtype_t at);
/* Free the memory in the structure */
-int set_atomtype(int nt, gpp_atomtype_t at, t_symtab *tab,
+int set_atomtype(int nt, gpp_atomtype_t at, struct t_symtab *tab,
t_atom *a, const char *name, t_param *nb,
int bondatomtype,
real radius, real vol, real surftens, int atomnumber,
real radius, real vol, real surftens,
real gb_radius, real S_hct);
-int add_atomtype(gpp_atomtype_t at, t_symtab *tab,
+int add_atomtype(gpp_atomtype_t at, struct t_symtab *tab,
t_atom *a, const char *name, t_param *nb,
int bondatomtype,
real radius, real vol, real surftens, real atomnumber,
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
-#include "gromacs/utility/smalloc.h"
-#include "sysstuff.h"
#include "macros.h"
-#include "symtab.h"
-#include "gromacs/utility/cstringutil.h"
#include "gpp_bond_atomtype.h"
+#include "gromacs/topology/symtab.h"
+#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/smalloc.h"
+
typedef struct {
int nr; /* The number of atomtypes */
char ***atomname; /* Names of the atomtypes */
#ifndef GMX_GMXPREPROCESS_GPP_BONDATOMTYPE_H
#define GMX_GMXPREPROCESS_GPP_BONDATOMTYPE_H
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdio.h>
#include "typedefs.h"
void done_bond_atomtype(t_bond_atomtype *at);
/* Free the memory in the structure */
-void add_bond_atomtype(t_bond_atomtype at, t_symtab *tab,
+void add_bond_atomtype(t_bond_atomtype at, struct t_symtab *tab,
char *name);
/* Add a complete new atom type to an existing atomtype structure */
* the research papers on the package. Check out http://www.gromacs.org.
*/
/* This file is completely threadsafe - keep it that way! */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
+
+#include <stdlib.h>
-#include "sysstuff.h"
-#include "gromacs/utility/smalloc.h"
-#include "macros.h"
/* #define DEBUG_NNB */
#include "gpp_nextnb.h"
-#include "gmx_fatal.h"
#include "toputil.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
+
typedef struct {
int ai, aj;
} sortable;
* non-bonded parameter combinations, which will be copied to t_params.
*/
+#ifndef __cplusplus
+/*
+ * With the macros below you don't
+ * have to use an index if you don't wan't to. You can eg. use
+ * param.C0 instead of param.c[0].
+ * In a similar fashion, you can use param.AI instead of
+ * param.a[0]
+ *
+ * For C++ those should be replaced with member functions.
+ */
+
+#define AI a[0]
+#define AJ a[1]
+#define AK a[2]
+#define AL a[3]
+#define AM a[4]
+
+#define C0 c[0]
+#define C1 c[1]
+#define C2 c[2]
+#endif
+
typedef struct {
atom_id a[MAXATOMLIST]; /* The atom list (eg. bonds: particle */
/* i = a[0] (AI), j = a[1] (AJ)) */
*/
#include "grompp.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <sys/types.h>
#include <math.h>
#include <limits.h>
#include <assert.h>
-#include "sysstuff.h"
-#include "gromacs/utility/smalloc.h"
#include "macros.h"
#include "readir.h"
#include "toputil.h"
#include "topio.h"
#include "gromacs/fileio/confio.h"
#include "readir.h"
-#include "symtab.h"
#include "names.h"
#include "grompp-impl.h"
-#include "gromacs/random/random.h"
#include "gromacs/gmxpreprocess/gen_maxwell_velocities.h"
-#include "vec.h"
-#include "gromacs/fileio/futil.h"
-#include "gromacs/commandline/pargs.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/utility/futil.h"
#include "splitter.h"
#include "gromacs/gmxpreprocess/sortwater.h"
#include "convparm.h"
-#include "gmx_fatal.h"
#include "warninp.h"
-#include "index.h"
#include "gromacs/fileio/gmxfio.h"
#include "gromacs/fileio/trnio.h"
#include "gromacs/fileio/tpxio.h"
#include "perf_est.h"
#include "compute_io.h"
#include "gpp_atomtype.h"
-#include "mtop_util.h"
+#include "gromacs/topology/mtop_util.h"
#include "genborn.h"
#include "calc_verletbuf.h"
#include "tomorse.h"
#include "gromacs/imd/imd.h"
#include "gromacs/utility/cstringutil.h"
+#include "gromacs/commandline/pargs.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/random/random.h"
+#include "gromacs/topology/symtab.h"
+#include "gromacs/topology/topology.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
static int rm_interactions(int ifunc, int nrmols, t_molinfo mols[])
{
* the research papers on the package. Check out http://www.gromacs.org.
*/
/* This file is completely threadsafe - keep it that way! */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
+#include <stdlib.h>
#include <string.h>
+
#include "gromacs/utility/cstringutil.h"
-#include "sysstuff.h"
#include "gromacs/utility/smalloc.h"
-#include "gromacs/fileio/futil.h"
-#include "symtab.h"
+#include "gromacs/utility/futil.h"
#include "h_db.h"
#include "gromacs/fileio/gmxfio.h"
#include "fflibutil.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "macros.h"
/* Number of control atoms for each 'add' type.
}
for (i = 0; (i < hack->nctl); i++)
{
- hack->a[i] = strdup(a[i]);
+ hack->a[i] = gmx_strdup(a[i]);
}
for (; i < 4; i++)
{
hack->a[i] = NULL;
}
hack->oname = NULL;
- hack->nname = strdup(hn);
+ hack->nname = gmx_strdup(hn);
hack->atom = NULL;
hack->cgnr = NOTSET;
hack->bXSet = FALSE;
}
srenew(aah, nah+1);
clear_t_hackblock(&aah[nah]);
- aah[nah].name = strdup(buf);
- aah[nah].filebase = strdup(filebase);
+ aah[nah].name = gmx_strdup(buf);
+ aah[nah].filebase = gmx_strdup(filebase);
if (sscanf(line+n, "%d", &nab) == 1)
{
#ifndef GMX_GMXPREPROCESS_H_DB_H
#define GMX_GMXPREPROCESS_H_DB_H
-#include "sysstuff.h"
+#include <stdio.h>
+
#include "hackblock.h"
#ifdef __cplusplus
* the research papers on the package. Check out http://www.gromacs.org.
*/
/* This file is completely threadsafe - keep it that way! */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <string.h>
#include "hackblock.h"
+#include "gromacs/utility/cstringutil.h"
#include "gromacs/utility/smalloc.h"
-#include "vec.h"
-#include "macros.h"
+#include "gromacs/math/vec.h"
#include "names.h"
/* these MUST correspond to the enum in hackblock.h */
free_t_bondeds(&(*rtp)[i].rb[j]);
}
}
- free(*rtp);
+ sfree(*rtp);
}
void free_t_hack(int nh, t_hack **h)
}
}
-#define safe_strdup(str) ((str != NULL) ? strdup(str) : NULL)
+#define safe_strdup(str) ((str != NULL) ? gmx_strdup(str) : NULL)
static void copy_t_rbonded(t_rbonded *s, t_rbonded *d)
{
#define GMX_GMXPREPROCESS_HACKBLOCK_H
#include "typedefs.h"
-#include "../fileio/pdbio.h"
+#include "gromacs/fileio/pdbio.h"
#include "grompp-impl.h"
#include "gpp_atomtype.h"
+#include "gromacs/topology/symtab.h"
#ifdef __cplusplus
extern "C" {
* the research papers on the package. Check out http://www.gromacs.org.
*/
/* This file is completely threadsafe - keep it that way! */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdio.h>
#include <string.h>
#include "typedefs.h"
#include "gromacs/fileio/pdbio.h"
-#include "gromacs/utility/smalloc.h"
-#include "vec.h"
-#include "physics.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/math/units.h"
#include "toputil.h"
#include "pdb2top.h"
#include "gromacs/utility/cstringutil.h"
#include "macros.h"
-#include "gmx_fatal.h"
+#include "gromacs/topology/block.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
static int in_strings(char *key, int nstr, const char **str)
{
}
snew(pdba->resinfo[hisind].rtp, 1);
- *pdba->resinfo[hisind].rtp = strdup(hh[type]);
+ *pdba->resinfo[hisind].rtp = gmx_strdup(hh[type]);
}
}
}
*/
#include "insert-molecules.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
-
-#include "sysstuff.h"
#include "typedefs.h"
-#include "gromacs/utility/smalloc.h"
#include "gromacs/math/utilities.h"
#include "gromacs/fileio/confio.h"
#include "macros.h"
-#include "gromacs/random/random.h"
-#include "gromacs/fileio/futil.h"
-#include "atomprop.h"
#include "names.h"
-#include "vec.h"
-#include "gmx_fatal.h"
-#include "gromacs/commandline/pargs.h"
+#include "gromacs/math/vec.h"
#include "gromacs/gmxlib/conformation-utilities.h"
#include "addconf.h"
#include "read-conformation.h"
-#include "pbc.h"
-#include "xvgr.h"
+
+#include "gromacs/commandline/pargs.h"
+#include "gromacs/fileio/xvgr.h"
+#include "gromacs/pbcutil/ishift.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/random/random.h"
+#include "gromacs/topology/atomprop.h"
+#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/futil.h"
+#include "gromacs/utility/smalloc.h"
static gmx_bool in_box(t_pbc *pbc, rvec x)
{
* the research papers on the package. Check out http://www.gromacs.org.
*/
/* This file is completely threadsafe - keep it that way! */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <string.h>
#include "bondf.h"
#include "gromacs/utility/cstringutil.h"
#include "gromacs/utility/smalloc.h"
-#include "sysstuff.h"
#include "gromacs/fileio/confio.h"
-#include "physics.h"
-#include "vec.h"
-#include "gromacs/math/3dview.h"
+#include "gromacs/math/vec.h"
#include "txtdump.h"
#include "readinp.h"
#include "names.h"
#include "nm2type.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
static void rd_nm2type_file(const char *fn, int *nnm, t_nm2type **nmp)
{
{
gmx_fatal(FARGS, "Error on line %d of %s", line, libfilename);
}
- newbuf[i] = strdup(nbbuf);
+ newbuf[i] = gmx_strdup(nbbuf);
strcat(format, "%*s%*s");
}
}
{
newbuf = NULL;
}
- nm2t[nnnm].elem = strdup(elem);
- nm2t[nnnm].type = strdup(type);
+ nm2t[nnnm].elem = gmx_strdup(elem);
+ nm2t[nnnm].type = gmx_strdup(type);
nm2t[nnnm].q = qq;
nm2t[nnnm].m = mm;
nm2t[nnnm].nbonds = nb;
}
}
-int nm2type(int nnm, t_nm2type nm2t[], t_symtab *tab, t_atoms *atoms,
+int nm2type(int nnm, t_nm2type nm2t[], struct t_symtab *tab, t_atoms *atoms,
gpp_atomtype_t atype, int *nbonds, t_params *bonds)
{
int cur = 0;
void dump_nm2type(FILE *fp, int nnm, t_nm2type nm2t[]);
/* Dump the database for debugging. Can be reread by the program */
-int nm2type(int nnm, t_nm2type nm2t[], t_symtab *tab, t_atoms *atoms,
+int nm2type(int nnm, t_nm2type nm2t[], struct t_symtab *tab, t_atoms *atoms,
gpp_atomtype_t atype, int *nbonds, t_params *bond);
/* Try to determine the atomtype (force field dependent) for the atoms
* with help of the bond list
*/
#include "pdb2gmx.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <ctype.h>
+#include <stdlib.h>
#include <string.h>
#include <time.h>
-#include "sysstuff.h"
#include "typedefs.h"
#include "gromacs/fileio/gmxfio.h"
-#include "gromacs/utility/smalloc.h"
#include "copyrite.h"
#include "gromacs/utility/cstringutil.h"
#include "gromacs/fileio/confio.h"
-#include "symtab.h"
-#include "vec.h"
-#include "gromacs/commandline/pargs.h"
-#include "gromacs/fileio/futil.h"
-#include "gmx_fatal.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/fileio/pdbio.h"
#include "toputil.h"
#include "h_db.h"
-#include "physics.h"
#include "pgutil.h"
-#include "calch.h"
#include "resall.h"
#include "pdb2top.h"
#include "ter_db.h"
#include "gromacs/gmxlib/conformation-utilities.h"
#include "genhydro.h"
#include "readinp.h"
-#include "atomprop.h"
-#include "index.h"
+#include "gromacs/topology/index.h"
#include "fflibutil.h"
#include "macros.h"
+#include "gromacs/commandline/pargs.h"
#include "gromacs/fileio/strdb.h"
+#include "gromacs/topology/atomprop.h"
+#include "gromacs/topology/block.h"
+#include "gromacs/topology/index.h"
+#include "gromacs/topology/residuetypes.h"
+#include "gromacs/topology/symtab.h"
+#include "gromacs/utility/smalloc.h"
+#include "gromacs/utility/fatalerror.h"
#include "hizzie.h"
#include "specbond.h"
static int read_pdball(const char *inf, const char *outf, char *title,
t_atoms *atoms, rvec **x,
int *ePBC, matrix box, gmx_bool bRemoveH,
- t_symtab *symtab, gmx_residuetype_t rt, const char *watres,
+ t_symtab *symtab, gmx_residuetype_t *rt, const char *watres,
gmx_atomprop_t aps, gmx_bool bVerbose)
/* Read a pdb file. (containing proteins) */
{
return pdba->nr;
}
-void find_nc_ter(t_atoms *pdba, int r0, int r1, int *r_start, int *r_end, gmx_residuetype_t rt)
+void find_nc_ter(t_atoms *pdba, int r0, int r1, int *r_start, int *r_end,
+ gmx_residuetype_t *rt)
{
int i;
const char *p_startrestype;
t_hackblock *ah;
t_symtab symtab;
gpp_atomtype_t atype;
- gmx_residuetype_t rt;
+ gmx_residuetype_t*rt;
const char *top_fn;
char fn[256], itp_fn[STRLEN], posre_fn[STRLEN], buf_fn[STRLEN];
char molname[STRLEN], title[STRLEN], quote[STRLEN];
chains[i].pdba->atom[j] = pdba_all.atom[pdb_ch[si].start+j];
snew(chains[i].pdba->atomname[j], 1);
*chains[i].pdba->atomname[j] =
- strdup(*pdba_all.atomname[pdb_ch[si].start+j]);
+ gmx_strdup(*pdba_all.atomname[pdb_ch[si].start+j]);
chains[i].pdba->pdbinfo[j] = pdba_all.pdbinfo[pdb_ch[si].start+j];
copy_rvec(pdbx[pdb_ch[si].start+j], chains[i].x[j]);
}
{
chains[i].pdba->resinfo[j] = pdba_all.resinfo[k+j];
snew(chains[i].pdba->resinfo[j].name, 1);
- *chains[i].pdba->resinfo[j].name = strdup(*pdba_all.resinfo[k+j].name);
+ *chains[i].pdba->resinfo[j].name = gmx_strdup(*pdba_all.resinfo[k+j].name);
/* make all chain identifiers equal to that of the chain */
chains[i].pdba->resinfo[j].chainid = pdb_ch[si].chainid;
}
nincl++;
srenew(incls, nincl);
- incls[nincl-1] = strdup(itp_fn);
+ incls[nincl-1] = gmx_strdup(itp_fn);
itp_file = gmx_fio_fopen(itp_fn, "w");
}
else
srenew(mols, nmol+1);
if (cc->bAllWat)
{
- mols[nmol].name = strdup("SOL");
+ mols[nmol].name = gmx_strdup("SOL");
mols[nmol].nr = pdba->nres;
}
else
{
- mols[nmol].name = strdup(molname);
+ mols[nmol].name = gmx_strdup(molname);
mols[nmol].nr = 1;
}
nmol++;
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdio.h>
#include <math.h>
#include <ctype.h>
-#include "vec.h"
-#include "gromacs/utility/smalloc.h"
+#include "gromacs/math/vec.h"
#include "macros.h"
-#include "symtab.h"
-#include "gromacs/fileio/futil.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/futil.h"
#include "pdb2top.h"
#include "gpp_nextnb.h"
#include "topdirs.h"
#include "resall.h"
#include "topio.h"
#include "gromacs/utility/cstringutil.h"
-#include "physics.h"
#include "gromacs/fileio/pdbio.h"
#include "gen_ad.h"
#include "gromacs/fileio/filenm.h"
-#include "index.h"
#include "gen_vsite.h"
#include "add_par.h"
#include "toputil.h"
#include "copyrite.h"
#include "gromacs/fileio/strdb.h"
+#include "gromacs/topology/residuetypes.h"
+#include "gromacs/topology/symtab.h"
#include "gromacs/utility/exceptions.h"
+#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/programcontext.h"
+#include "gromacs/utility/smalloc.h"
/* this must correspond to enum in pdb2top.h */
const char *hh[ehisNR] = { "HISD", "HISE", "HISH", "HIS1" };
ptr = strrchr(ffdirs[i], '/');
if (ptr == NULL)
{
- ffs[i] = strdup(ffdirs[i]);
+ ffs[i] = gmx_strdup(ffdirs[i]);
ffs_dir[i] = low_gmxlibfn(ffdirs[i], FALSE, FALSE);
if (ffs_dir[i] == NULL)
{
}
else
{
- ffs[i] = strdup(ptr+1);
- ffs_dir[i] = strdup(ffdirs[i]);
+ ffs[i] = gmx_strdup(ptr+1);
+ ffs_dir[i] = gmx_strdup(ffdirs[i]);
}
ffs_dir[i][strlen(ffs_dir[i])-strlen(ffs[i])-1] = '\0';
/* Remove the extension from the ffdir name */
}
else
{
- desc[i] = strdup(ffs[i]);
+ desc[i] = gmx_strdup(ffs[i]);
}
}
/* Order force fields from the same dir alphabetically
}
else if (strcmp(wmsel, "select") != 0)
{
- *watermodel = strdup(wmsel);
+ *watermodel = gmx_strdup(wmsel);
return;
}
}
else
{
- *watermodel = strdup(model[sel]);
+ *watermodel = gmx_strdup(model[sel]);
}
for (i = 0; i < nwm; i++)
}
static int name2type(t_atoms *at, int **cgnr,
- t_restp restp[], gmx_residuetype_t rt)
+ t_restp restp[], gmx_residuetype_t *rt)
{
int i, j, prevresind, resind, i0, prevcg, cg, curcg;
char *name;
}
snew( restp->atomname[at_start+1+k], 1);
restp->atom [at_start+1+k] = *hack->atom;
- *restp->atomname[at_start+1+k] = strdup(buf);
+ *restp->atomname[at_start+1+k] = gmx_strdup(buf);
if (hack->cgnr != NOTSET)
{
restp->cgnr [at_start+1+k] = hack->cgnr;
}
snew( (*restp)[i].atomname[l], 1);
(*restp)[i].atom[l] = *(*hb)[i].hack[j].atom;
- *(*restp)[i].atomname[l] = strdup((*hb)[i].hack[j].nname);
+ *(*restp)[i].atomname[l] = gmx_strdup((*hb)[i].hack[j].nname);
if ( (*hb)[i].hack[j].cgnr != NOTSET)
{
(*restp)[i].cgnr [l] = (*hb)[i].hack[j].cgnr;
}
/* Rename the atom in pdba */
snew(pdba->atomname[atind], 1);
- *pdba->atomname[atind] = strdup(newnm);
+ *pdba->atomname[atind] = gmx_strdup(newnm);
}
else if (hbr->hack[j].oname != NULL && hbr->hack[j].nname == NULL &&
gmx_strcasecmp(oldnm, hbr->hack[j].oname) == 0)
int *vsite_type;
int i, nmissat;
int bts[ebtsNR];
- gmx_residuetype_t rt;
+ gmx_residuetype_t*rt;
init_plist(plist);
gmx_residuetype_init(&rt);
void pdb2top(FILE *top_file, char *posre_fn, char *molname,
t_atoms *atoms, rvec **x,
- gpp_atomtype_t atype, t_symtab *tab,
+ gpp_atomtype_t atype, struct t_symtab *tab,
int nrtp, t_restp rtp[],
t_restp *restp, t_hackblock *hb,
gmx_bool bAllowMissing,
*/
/* This file is completely threadsafe - keep it that way! */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include "gromacs/utility/cstringutil.h"
#include "pgutil.h"
#include <string.h>
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#define BUFSIZE 1024
static void atom_not_found(int fatal_errno, const char *file, int line,
*/
#include "protonate.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "gromacs/utility/cstringutil.h"
#include "genhydro.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trxio.h"
-#include "index.h"
-#include "vec.h"
+#include "gromacs/topology/index.h"
+#include "gromacs/math/vec.h"
#include "hackblock.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
int gmx_protonate(int argc, char *argv[])
{
#include "read-conformation.h"
#include "gromacs/fileio/confio.h"
-#include "atomprop.h"
-#include "types/simple.h"
-#include "types/atoms.h"
+#include "gromacs/legacyheaders/types/simple.h"
+#include "gromacs/legacyheaders/typedefs.h"
+#include "gromacs/topology/atomprop.h"
+#include "gromacs/topology/atoms.h"
+#include "gromacs/utility/cstringutil.h"
#include "gromacs/utility/smalloc.h"
real *makeExclusionDistances(const t_atoms *a, gmx_atomprop_t aps,
#define GMX_GMXPREPROCESS_READ_CONFORMATION_H
#include "types/simple.h"
-#include "types/atoms.h"
-#include "atomprop.h"
#ifdef __cplusplus
extern "C" {
#endif
+struct gmx_atomprop;
+struct t_atoms;
+
/*! \brief Allocate and fill an array of inter-atomic half distances
*
* These are either scaled VDW radii taken from vdwradii.dat, or the
* default value. Used directly and indirectly by solvate and
* insert-molecules for deciding whether molecules clash. The return
* pointer should be freed by the caller. */
-real *makeExclusionDistances(const t_atoms *a, gmx_atomprop_t aps,
+real *makeExclusionDistances(const struct t_atoms *a, struct gmx_atomprop *aps,
real defaultDistance, real scaleFactor);
/*! \brief Read a conformation from a file, allocate and fill data structures.
* Used by solvate and insert-molecules. The returned pointers *x and
* *v should be freed by the caller. atoms should have its destructor
* called. */
-char *readConformation(const char *confin, t_atoms *atoms, rvec **x, rvec **v,
+char *readConformation(const char *confin, struct t_atoms *atoms, rvec **x, rvec **v,
int *ePBC, matrix box);
#ifdef __cplusplus
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
+#include <stdlib.h>
#include <string.h>
-#include "gromacs/utility/cstringutil.h"
#include "readir.h"
#include "names.h"
+#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/smalloc.h"
-#include "gmx_fatal.h"
#define MAXPTR 254
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <ctype.h>
-#include <stdlib.h>
#include <limits.h>
-#include "sysstuff.h"
-#include "gromacs/utility/smalloc.h"
+#include <stdlib.h>
+
#include "typedefs.h"
-#include "physics.h"
+#include "gromacs/math/units.h"
#include "names.h"
-#include "gmx_fatal.h"
#include "macros.h"
-#include "index.h"
-#include "symtab.h"
+#include "gromacs/topology/index.h"
#include "gromacs/utility/cstringutil.h"
#include "readinp.h"
#include "warninp.h"
#include "readir.h"
#include "toputil.h"
-#include "index.h"
#include "network.h"
-#include "vec.h"
-#include "pbc.h"
-#include "mtop_util.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/topology/mtop_util.h"
#include "chargegroup.h"
#include "inputrec.h"
#include "calc_verletbuf.h"
+#include "gromacs/topology/block.h"
+#include "gromacs/topology/symtab.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
+
#define MAXPTR 254
#define NOGID 255
int np = 0;
char *copy0, *copy;
- copy0 = strdup(str);
+ copy0 = gmx_strdup(str);
copy = copy0;
ltrim(copy);
while (*copy != '\0')
}
for (i = 0; i < ir->nwall; i++)
{
- opts->wall_atomtype[i] = strdup(names[i]);
+ opts->wall_atomtype[i] = gmx_strdup(names[i]);
}
if (ir->wall_type == ewt93 || ir->wall_type == ewt104)
{
if (ir->efep != efepNO)
{
- opts->couple_moltype = strdup(is->couple_moltype);
+ opts->couple_moltype = gmx_strdup(is->couple_moltype);
if (opts->couple_lam0 == opts->couple_lam1)
{
warning(wi, "The lambda=0 and lambda=1 states for coupling are identical");
double a, phi;
int i;
- t = strdup(s);
+ t = gmx_strdup(s);
trim(t);
cosine->n = 0;
void make_IMD_group(t_IMD *IMDgroup, char *IMDgname, t_blocka *grps, char **gnames)
{
- int ig = -1, i;
+ int ig, i;
ig = search_string(IMDgname, grps->nr, gnames);
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <string.h>
#include <stdlib.h>
#include "gromacs/utility/cstringutil.h"
-#include "sysstuff.h"
-#include "princ.h"
-#include "gromacs/fileio/futil.h"
-#include "vec.h"
+#include "gromacs/utility/futil.h"
+#include "gromacs/math/vec.h"
#include "gromacs/utility/smalloc.h"
#include "typedefs.h"
#include "names.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "macros.h"
-#include "index.h"
-#include "symtab.h"
#include "readinp.h"
#include "readir.h"
#include "mdatoms.h"
-#include "pbc.h"
+#include "gromacs/pbcutil/pbc.h"
#include "gromacs/pulling/pull.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "gromacs/utility/smalloc.h"
#include "readir.h"
#include "names.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/fileio/trnio.h"
#include "txtdump.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
static char *RotStr = {"Enforced rotation:"};
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <ctype.h>
+#include <stdlib.h>
#include <string.h>
-#include "sysstuff.h"
-#include "gromacs/utility/cstringutil.h"
-#include "gromacs/fileio/futil.h"
-#include "gromacs/utility/smalloc.h"
-#include "gmx_fatal.h"
-#include "symtab.h"
#include "macros.h"
#include "resall.h"
#include "pgutil.h"
#include "fflibutil.h"
#include "gromacs/fileio/strdb.h"
+#include "gromacs/topology/symtab.h"
+#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/futil.h"
+#include "gromacs/utility/smalloc.h"
gpp_atomtype_t read_atype(const char *ffdir, t_symtab *tab)
{
{
if (sscanf(line+n, "%s%n", str, &ni) == 1)
{
- rtp->rb[bt].b[rtp->rb[bt].nb].a[j] = strdup(str);
+ rtp->rb[bt].b[rtp->rb[bt].nb].a[j] = gmx_strdup(str);
}
else
{
n++;
}
rtrim(line+n);
- rtp->rb[bt].b[rtp->rb[bt].nb].s = strdup(line+n);
+ rtp->rb[bt].b[rtp->rb[bt].nb].s = gmx_strdup(line+n);
rtp->rb[bt].nb++;
}
/* give back unused memory */
{
gmx_fatal(FARGS, "in .rtp file at line:\n%s\n", line);
}
- rrtp[nrtp].resname = strdup(header);
- rrtp[nrtp].filebase = strdup(filebase);
+ rrtp[nrtp].resname = gmx_strdup(header);
+ rrtp[nrtp].filebase = gmx_strdup(filebase);
get_a_line(in, line, STRLEN);
bError = FALSE;
* Generates a fatal error when rtpname is not found.
*/
-gpp_atomtype_t read_atype(const char *ffdir, t_symtab *tab);
+gpp_atomtype_t read_atype(const char *ffdir, struct t_symtab *tab);
/* read atom type database(s) */
void read_resall(char *resdb, int *nrtp, t_restp **rtp,
- gpp_atomtype_t atype, t_symtab *tab,
+ gpp_atomtype_t atype, struct t_symtab *tab,
gmx_bool bAllowOverrideRTP);
/* read rtp database, append to the existing database */
*/
#include "solvate.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <string.h>
-#include "sysstuff.h"
#include "typedefs.h"
-#include "gromacs/utility/smalloc.h"
-#include "gromacs/utility/cstringutil.h"
#include "gromacs/fileio/confio.h"
#include "macros.h"
-#include "gromacs/fileio/futil.h"
-#include "atomprop.h"
+#include "gromacs/utility/futil.h"
#include "names.h"
-#include "vec.h"
-#include "gmx_fatal.h"
-#include "gromacs/commandline/pargs.h"
#include "gromacs/gmxlib/conformation-utilities.h"
#include "addconf.h"
#include "read-conformation.h"
#include "gromacs/fileio/pdbio.h"
-#include "pbc.h"
+
+#include "gromacs/commandline/pargs.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/topology/atomprop.h"
+#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
#ifdef DEBUG
static void print_stat(rvec *x, int natoms, matrix box)
moltp = NOTSET;
for (j = 0; (j < nrmoltypes) && (moltp == NOTSET); j++)
{
- if (strcmp(*(atoms->resinfo[atoms->atom[i].resind].name),
- moltypes[j].name) == 0)
+ /* cppcheck-suppress nullPointer
+ * moltypes is guaranteed to be allocated because otherwise
+ * nrmoltypes is 0. */
+ if (strcmp(*(atoms->resinfo[atoms->atom[i].resind].name), moltypes[j].name) == 0)
{
moltp = j;
}
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
+
+#include <stdlib.h>
#include "typedefs.h"
+#include "gromacs/math/vec.h"
+#include "sortwater.h"
+
#include "gromacs/random/random.h"
#include "gromacs/utility/smalloc.h"
-#include "vec.h"
-#include "sortwater.h"
static rvec *xptr, box_1;
static int nwat;
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <ctype.h>
#include <math.h>
#include "gromacs/utility/smalloc.h"
#include "specbond.h"
#include "pdb2top.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "macros.h"
gmx_bool yesno(void)
}
else
{
- sb[n].res1 = strdup(r1buf);
- sb[n].res2 = strdup(r2buf);
- sb[n].newres1 = strdup(nr1buf);
- sb[n].newres2 = strdup(nr2buf);
- sb[n].atom1 = strdup(a1buf);
- sb[n].atom2 = strdup(a2buf);
+ sb[n].res1 = gmx_strdup(r1buf);
+ sb[n].res2 = gmx_strdup(r2buf);
+ sb[n].newres1 = gmx_strdup(nr1buf);
+ sb[n].newres2 = gmx_strdup(nr2buf);
+ sb[n].atom1 = gmx_strdup(a1buf);
+ sb[n].atom2 = gmx_strdup(a2buf);
sb[n].nbond1 = nb1;
sb[n].nbond2 = nb2;
sb[n].length = length;
}
/* this used to free *resname, which messes up the symtab! */
snew(pdba->resinfo[resind].rtp, 1);
- *pdba->resinfo[resind].rtp = strdup(newres);
+ *pdba->resinfo[resind].rtp = gmx_strdup(newres);
}
int mk_specbonds(t_atoms *pdba, rvec x[], gmx_bool bInteractive,
/* Store the residue numbers in the bonds array */
bonds[nbonds].res1 = specp[i];
bonds[nbonds].res2 = specp[j];
- bonds[nbonds].a1 = strdup(*pdba->atomname[ai]);
- bonds[nbonds].a2 = strdup(*pdba->atomname[aj]);
+ bonds[nbonds].a1 = gmx_strdup(*pdba->atomname[ai]);
+ bonds[nbonds].a2 = gmx_strdup(*pdba->atomname[aj]);
/* rename residues */
if (bSwap)
{
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <ctype.h>
#include <string.h>
-#include "sysstuff.h"
#include "gromacs/utility/smalloc.h"
#include "typedefs.h"
-#include "symtab.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
#include "resall.h"
#include "h_db.h"
#include "gromacs/utility/cstringutil.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "ter_db.h"
#include "toputil.h"
#include "gromacs/fileio/gmxfio.h"
{
if (nr == 4)
{
- *nname = strdup(buf[i++]);
+ *nname = gmx_strdup(buf[i++]);
}
else
{
srenew(tb, maxnb);
}
clear_t_hackblock(&tb[nb]);
- tb[nb].name = strdup(header);
- tb[nb].filebase = strdup(filebase);
+ tb[nb].name = gmx_strdup(header);
+ tb[nb].filebase = gmx_strdup(filebase);
}
}
else
gmx_fatal(FARGS, "Reading Termini Database '%s': "
"expected atom name on line\n%s", fn, line);
}
- tb[nb].hack[nh].oname = strdup(buf);
+ tb[nb].hack[nh].oname = gmx_strdup(buf);
/* we only replace or delete one atom at a time */
tb[nb].hack[nh].nr = 1;
}
{
if (tb[nb].hack[nh].oname != NULL)
{
- tb[nb].hack[nh].nname = strdup(tb[nb].hack[nh].oname);
+ tb[nb].hack[nh].nname = gmx_strdup(tb[nb].hack[nh].oname);
}
else
{
{
if (sscanf(line+n, "%s%n", buf, &ni) == 1)
{
- tb[nb].rb[kwnr].b[tb[nb].rb[kwnr].nb].a[j] = strdup(buf);
+ tb[nb].rb[kwnr].b[tb[nb].rb[kwnr].nb].a[j] = gmx_strdup(buf);
}
else
{
}
strcpy(buf, "");
sscanf(line+n, "%s", buf);
- tb[nb].rb[kwnr].b[tb[nb].rb[kwnr].nb].s = strdup(buf);
+ tb[nb].rb[kwnr].b[tb[nb].rb[kwnr].nb].s = gmx_strdup(buf);
tb[nb].rb[kwnr].nb++;
}
else
#ifndef GMX_GMXPREPROCESS_TER_DB_H
#define GMX_GMXPREPROCESS_TER_DB_H
-#include "sysstuff.h"
#include "hackblock.h"
#include "grompp-impl.h"
#include "../insert-molecules.h"
#include "testutils/integrationtests.h"
#include "testutils/cmdlinetest.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
namespace
{
#include "../solvate.h"
#include "testutils/integrationtests.h"
#include "testutils/cmdlinetest.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
namespace
{
* the research papers on the package. Check out http://www.gromacs.org.
*/
/* This file is completely threadsafe - keep it that way! */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <ctype.h>
#include <math.h>
#include "typedefs.h"
#include "gromacs/utility/cstringutil.h"
#include "grompp-impl.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/utility/smalloc.h"
#include "toputil.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "gpp_atomtype.h"
-#include "macros.h"
#include "tomorse.h"
srenew(t2m, maxn2m);
}
/* Copy the values */
- t2m[n2m].ai = strdup(ai);
- t2m[n2m].aj = strdup(aj);
+ t2m[n2m].ai = gmx_strdup(ai);
+ t2m[n2m].aj = gmx_strdup(aj);
t2m[n2m].e_diss = e_diss;
/* Increment counter */
n2m++;
last++;
}
}
+ /* cppcheck-suppress uninitvar Fixed in cppcheck 1.65 */
sfree(bRemoveHarm);
fprintf(stderr, "Converted %d out of %d %s to morse bonds for mol %d\n",
nrharm-last, nrharm, interaction_function[bb].name, i);
#ifndef GMX_GMXPREPROCESS_TOMORSE_H
#define GMX_GMXPREPROCESS_TOMORSE_H
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdio.h>
#include "typedefs.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdio.h>
#include <stdarg.h>
-#include "sysstuff.h"
#include "gromacs/utility/smalloc.h"
#include "macros.h"
#include "gromacs/utility/cstringutil.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "topdirs.h"
/* Must correspond to the directive enum in grompp-impl.h */
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
+#include <assert.h>
+#include <ctype.h>
+#include <errno.h>
#include <math.h>
-#include <sys/types.h>
#include <stdio.h>
+#include <stdlib.h>
#include <string.h>
-#include <errno.h>
-#include <ctype.h>
-#include <assert.h>
-#include "gromacs/fileio/futil.h"
-#include "sysstuff.h"
+#include <sys/types.h>
+
+#include "gromacs/utility/futil.h"
#include "typedefs.h"
#include "gromacs/utility/smalloc.h"
#include "macros.h"
#include "gromacs/fileio/gmxfio.h"
#include "txtdump.h"
-#include "physics.h"
+#include "gromacs/math/units.h"
#include "macros.h"
#include "names.h"
#include "gromacs/utility/cstringutil.h"
-#include "symtab.h"
-#include "gmx_fatal.h"
+#include "gromacs/topology/block.h"
+#include "gromacs/topology/symtab.h"
+#include "gromacs/topology/topology.h"
+#include "gromacs/utility/fatalerror.h"
#include "warninp.h"
#include "vsite_parm.h"
else
{
srenew(cppopts, ++ncppopts);
- cppopts[ncppopts-1] = strdup(buf);
+ cppopts[ncppopts-1] = gmx_strdup(buf);
}
sfree(buf);
ptr = rptr;
set_warning_line(wi, cpp_cur_file(&handle), cpp_cur_linenr(&handle));
- pline = strdup(line);
+ pline = gmx_strdup(line);
/* Strip trailing '\' from pline, if it exists */
sl = strlen(pline);
/* Since we depend on the '\' being present to continue to read, we copy line
* to a tmp string, strip the '\' from that string, and cat it to pline
*/
- tmp_line = strdup(line);
+ tmp_line = gmx_strdup(line);
sl = strlen(tmp_line);
if ((sl > 0) && (tmp_line[sl-1] == CONTINUE))
* without the brackets into dirstr, then
* skip spaces and tabs on either side of directive
*/
- dirstr = strdup((pline+1));
+ dirstr = gmx_strdup((pline+1));
if ((dummy2 = strchr (dirstr, CLOSEDIR)) != NULL)
{
(*dummy2) = 0;
j = 0;
while (j < molt->ilist[i].nr)
{
- bexcl = FALSE;
a1 = molt->ilist[i].iatoms[j+1];
a2 = molt->ilist[i].iatoms[j+2];
bexcl = ((bQMMM[a1] && bQMMM[a2]) ||
const char *topppfile,
t_gromppopts *opts,
gmx_bool bZero,
- t_symtab *symtab,
+ struct t_symtab *symtab,
t_params plist[],
int *combination_rule,
double *repulsion_power,
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
+#include <assert.h>
#include <ctype.h>
#include <math.h>
-#include <assert.h>
+#include <stdlib.h>
-#include "sysstuff.h"
-#include "gromacs/utility/smalloc.h"
#include "macros.h"
-#include "gromacs/utility/cstringutil.h"
#include "names.h"
#include "toputil.h"
#include "toppush.h"
#include "topdirs.h"
#include "readir.h"
-#include "symtab.h"
-#include "gmx_fatal.h"
#include "warninp.h"
#include "gpp_atomtype.h"
#include "gpp_bond_atomtype.h"
+#include "gromacs/topology/symtab.h"
+#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
+
void generate_nbparams(int comb, int ftype, t_params *plist, gpp_atomtype_t atype,
warninp_t wi)
{
gpp_atomtype_t atype,
warninp_t wi);
-void push_at (t_symtab *symtab, gpp_atomtype_t at,
+void push_at (struct t_symtab *symtab, gpp_atomtype_t at,
t_bond_atomtype bat, char *line, int nb_funct,
t_nbparam ***nbparam, t_nbparam ***pair,
warninp_t wi);
char *line,
warninp_t wi);
-void push_atom(t_symtab *symtab,
- t_block *cgs,
- t_atoms *at,
- gpp_atomtype_t atype,
- char *line,
- int *lastcg,
- warninp_t wi);
+void push_atom(struct t_symtab *symtab,
+ t_block *cgs,
+ t_atoms *at,
+ gpp_atomtype_t atype,
+ char *line,
+ int *lastcg,
+ warninp_t wi);
void push_bond(directive d, t_params bondtype[], t_params bond[],
t_atoms *at, gpp_atomtype_t atype, char *line,
int *whichmol, int *nrcopies,
warninp_t wi);
-void push_molt(t_symtab *symtab, int *nmol, t_molinfo **mol, char *line,
+void push_molt(struct t_symtab *symtab, int *nmol, t_molinfo **mol, char *line,
warninp_t wi);
void init_block2(t_block2 *b2, int natom);
void b2_to_b(t_block2 *b2, t_blocka *b);
-int add_atomtype_decoupled(t_symtab *symtab, gpp_atomtype_t at,
+int add_atomtype_decoupled(struct t_symtab *symtab, gpp_atomtype_t at,
t_nbparam ***nbparam, t_nbparam ***pair);
/* Add an atom type with all parameters set to zero (no interactions).
* Returns the atom type number.
* the research papers on the package. Check out http://www.gromacs.org.
*/
/* This file is completely threadsafe - keep it that way! */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <ctype.h>
#include <math.h>
-#include "sysstuff.h"
-#include "physics.h"
-#include "macros.h"
+#include "gromacs/math/units.h"
#include "readir.h"
#include "typedefs.h"
#include "topshake.h"
#include "toputil.h"
#include "topdirs.h"
#include "gromacs/utility/smalloc.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
static void copy_bond (t_params *pr, int to, int from)
/* copies an entry in a bond list to another position.
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include <string.h>
-#include "gromacs/utility/smalloc.h"
-#include "sysstuff.h"
#include "macros.h"
#include "topdirs.h"
#include "toputil.h"
-#include "symtab.h"
-#include "gmx_fatal.h"
#include "gpp_atomtype.h"
+#include "gromacs/topology/block.h"
+#include "gromacs/topology/symtab.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
+
/* UTILITIES */
void set_p_string(t_param *p, const char *s)
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
-#include <stdio.h>
-#include <math.h>
#include <assert.h>
+#include <math.h>
+#include <stdio.h>
#include <string.h>
+
#include "vsite_parm.h"
#include "gromacs/utility/smalloc.h"
#include "resall.h"
#include "add_par.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "toputil.h"
-#include "physics.h"
-#include "index.h"
+#include "gromacs/math/units.h"
#include "names.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/cstringutil.h"
-#include "physics.h"
#include "macros.h"
typedef struct {
*/
#include "x2top.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <assert.h>
#include "macros.h"
#include "bondf.h"
#include "gromacs/fileio/gmxfio.h"
-#include "gromacs/utility/cstringutil.h"
-#include "gromacs/utility/smalloc.h"
-#include "sysstuff.h"
#include "gromacs/fileio/confio.h"
-#include "physics.h"
-#include "gromacs/commandline/pargs.h"
-#include "vec.h"
-#include "gromacs/math/3dview.h"
+#include "gromacs/math/units.h"
#include "txtdump.h"
#include "readinp.h"
#include "names.h"
#include "pdb2top.h"
#include "gen_ad.h"
#include "gpp_nextnb.h"
-#include "vec.h"
-#include "atomprop.h"
#include "hackblock.h"
#include "nm2type.h"
-#include "gmx_fatal.h"
+#include "gromacs/commandline/pargs.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/topology/symtab.h"
+#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
char atp[7] = "HCNOSX";
#define NATP (asize(atp)-1)
bOPLS = (strcmp(forcefield, "oplsaa") == 0);
- mymol.name = strdup(molnm);
+ mymol.name = gmx_strdup(molnm);
mymol.nr = 1;
/* Init parameter lists */
dump_hybridization(debug, atoms, nbonds);
}
close_symtab(&symtab);
- free(mymol.name);
+ sfree(mymol.name);
printf("\nWARNING: topologies generated by %s can not be trusted at face value.\n",
- ShortProgram());
+ output_env_get_program_display_name(oenv));
printf(" Please verify atomtypes and charges by comparison to other\n");
printf(" topologies.\n");
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <ctype.h>
#include <string.h>
+
#include "typedefs.h"
-#include "gromacs/utility/cstringutil.h"
-#include "gromacs/utility/smalloc.h"
-#include "symtab.h"
-#include "index.h"
-#include "gromacs/fileio/futil.h"
#include "fflibutil.h"
#include "hackblock.h"
-#include "gmx_fatal.h"
#include "xlate.h"
#include "gromacs/fileio/strdb.h"
+#include "gromacs/topology/residuetypes.h"
+#include "gromacs/topology/symtab.h"
+#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/futil.h"
+#include "gromacs/utility/smalloc.h"
typedef struct {
char *filebase;
}
srenew(xl, n+1);
- xl[n].filebase = strdup(filebase);
+ xl[n].filebase = gmx_strdup(filebase);
/* Use wildcards... */
if (strcmp(rbuf, "*") != 0)
{
- xl[n].res = strdup(rbuf);
+ xl[n].res = gmx_strdup(rbuf);
}
else
{
*_ptr = ' ';
}
- xl[n].atom = strdup(abuf);
- xl[n].replace = strdup(repbuf);
+ xl[n].atom = gmx_strdup(abuf);
+ xl[n].replace = gmx_strdup(repbuf);
n++;
}
void rename_atoms(const char *xlfile, const char *ffdir,
t_atoms *atoms, t_symtab *symtab, const t_restp *restp,
- gmx_bool bResname, gmx_residuetype_t rt, gmx_bool bReorderNum,
+ gmx_bool bResname, gmx_residuetype_t *rt, gmx_bool bReorderNum,
gmx_bool bVerbose)
{
FILE *fp;
/* Don't free the old atomname,
* since it might be in the symtab.
*/
- ptr0 = strdup(xlatom[i].replace);
+ ptr0 = gmx_strdup(xlatom[i].replace);
if (bVerbose)
{
printf("Renaming atom '%s' in residue %d %s to '%s'\n",
#ifndef GMX_GMXPREPROCESS_XLATE_H
#define GMX_GMXPREPROCESS_XLATE_H
-#include "index.h"
+#include "gromacs/utility/basedefinitions.h"
#ifdef __cplusplus
extern "C" {
#endif
+struct gmx_residuetype_t;
+struct t_atoms;
+struct t_symtab;
+
/* If bResname is true renames atoms based on residue names,
* otherwise renames atoms based on rtp entry names.
*/
void rename_atoms(const char *xlfile, const char *ffdir,
- t_atoms *atoms, t_symtab *symtab, const t_restp *restp,
- gmx_bool bResname, gmx_residuetype_t rt, gmx_bool bReorderNum,
+ struct t_atoms *atoms, struct t_symtab *symtab, const t_restp *restp,
+ gmx_bool bResname, struct gmx_residuetype_t *rt, gmx_bool bReorderNum,
gmx_bool bVerbose);
#ifdef __cplusplus
--- /dev/null
+#
+# This file is part of the GROMACS molecular simulation package.
+#
+# Copyright (c) 2014, 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.
+#
+# GROMACS is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public License
+# as published by the Free Software Foundation; either version 2.1
+# of the License, or (at your option) any later version.
+#
+# GROMACS is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with GROMACS; if not, see
+# http://www.gnu.org/licenses, or write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# If you want to redistribute modifications to GROMACS, 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 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.
+
+set(PACKAGE_VERSION "@GMX_VERSION@")
+
+if ("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}")
+ set(PACKAGE_VERSION_COMPATIBLE FALSE)
+else()
+ # TODO: Check that major and minor version match.
+ set(PACKAGE_VERSION_COMPATIBLE TRUE)
+ if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}")
+ set(PACKAGE_VERSION_EXACT TRUE)
+ endif()
+endif()
--- /dev/null
+#
+# This file is part of the GROMACS molecular simulation package.
+#
+# Copyright (c) 2014, 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.
+#
+# GROMACS is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public License
+# as published by the Free Software Foundation; either version 2.1
+# of the License, or (at your option) any later version.
+#
+# GROMACS is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with GROMACS; if not, see
+# http://www.gnu.org/licenses, or write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# If you want to redistribute modifications to GROMACS, 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 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.
+
+set(_gmx_cmake_dir ${CMAKE_CURRENT_LIST_DIR})
+get_filename_component(_gmx_root_dir "${_gmx_cmake_dir}" PATH)
+get_filename_component(_gmx_root_dir "${_gmx_root_dir}" PATH)
+get_filename_component(_gmx_root_dir "${_gmx_root_dir}" PATH)
+
+# Find the exported targets (file name depends on whether shared or static
+# libraries were built to allow both to coexist in the same prefix), and
+# import them.
+set(_gmx_import_file ${_gmx_cmake_dir}/libgromacs.cmake)
+if (GROMACS_PREFER_STATIC OR NOT EXISTS ${_gmx_import_file})
+ set(_gmx_import_file_static ${_gmx_cmake_dir}/libgromacs_static.cmake)
+ if (EXISTS ${_gmx_import_file_static})
+ set(_gmx_import_file ${_gmx_import_file_static})
+ endif()
+ unset(_gmx_import_file_static)
+endif()
+if (NOT EXISTS ${_gmx_import_file})
+ message(FATAL_ERROR
+ "The GROMACS installation at ${_gmx_root_dir} does not contain "
+ "libgromacs.cmake or libgromacs_static.cmake to define the imported "
+ "targets.")
+endif()
+include(${_gmx_import_file})
+unset(_gmx_import_file)
+
+set(GROMACS_INCLUDE_DIRS)
+set(_include_dirs "@INSTALLED_HEADER_INCLUDE_DIRS@")
+foreach (_dir ${_include_dirs})
+ if (IS_ABSOLUTE ${_dir})
+ list(APPEND GROMACS_INCLUDE_DIRS ${_dir})
+ else()
+ list(APPEND GROMACS_INCLUDE_DIRS ${_gmx_root_dir}/${_dir})
+ endif()
+endforeach()
+set(GROMACS_LIBRARIES libgromacs)
+set(GROMACS_DEFINITIONS @INSTALLED_HEADER_DEFINITIONS@)
+set(GROMACS_IS_DOUBLE @GMX_DOUBLE@)
+if (DEFINED GROMACS_SUFFIX AND NOT "${GROMACS_SUFFIX}" STREQUAL "@GMX_LIBS_SUFFIX@")
+ message(FATAL_ERROR "GROMACS_SUFFIX is set inconsistently, expected '@GMX_LIBS_SUFFIX@'")
+endif()
+set(GROMACS_SUFFIX "@GMX_LIBS_SUFFIX@")
+set(GROMACS_CXX_COMPILER "@GROMACS_CXX_COMPILER@")
+set(GROMACS_CXX_COMPILER_ID "@CMAKE_CXX_COMPILER_ID@")
+set(GROMACS_CXX_COMPILER_VERSION "@CMAKE_CXX_COMPILER_VERSION@")
+
+# Produce a message, since find_package() prints nothing on success.
+include(FindPackageMessage)
+# The version info is set by CMake when it determines whether this file
+# is suitable (by calling the version file, which sets PACKAGE_VERSION).
+# TODO: Make also the full version string available from somewhere.
+set(_gmx_info "${GROMACS_VERSION}")
+if (GROMACS_SUFFIX)
+ set(_gmx_info "${_gmx_info} (suffix: ${GROMACS_SUFFIX})")
+endif()
+find_package_message(GROMACS "Found GROMACS: ${_gmx_info}" "${CMAKE_CURRENT_LIST_FILE}")
+
+unset(_gmx_cmake_dir)
+unset(_gmx_root_dir)
+unset(_gmx_info)
+
+#####################################################################
+# Macros for use in calling code
+
+# This does not work as a function if called as gromacs_check_double(GMX_DOUBLE)
+# (i.e., with the parameter value equal to the formal parameter name) because
+# of scoping rules.
+macro (gromacs_check_double GMX_DOUBLE)
+ if (${GMX_DOUBLE} AND NOT GROMACS_IS_DOUBLE)
+ message(FATAL_ERROR
+ "The found GROMACS installation is compiled in mixed precision, "
+ "but double-precision compilation was requested with ${GMX_DOUBLE}=${${GMX_DOUBLE}}")
+ elseif (NOT ${GMX_DOUBLE} AND GROMACS_IS_DOUBLE)
+ message(FATAL_ERROR
+ "The found GROMACS installation is compiled in double precision, "
+ "but mixed-precision compilation was requested with ${GMX_DOUBLE}=${${GMX_DOUBLE}}")
+ endif()
+endmacro()
+
+function (gromacs_check_compiler LANG)
+ if (NOT LANG STREQUAL CXX)
+ message(FATAL_ERROR
+ "gromacs_check_compiler(CXX) is currently the only supported call")
+ endif()
+ # Deal with possible symlinks (it is fine if one of the used compilers was
+ # a symlink to another one).
+ get_filename_component(_cmake_compiler_realpath ${CMAKE_${LANG}_COMPILER} REALPATH)
+ if (NOT "${_cmake_compiler_realpath}" STREQUAL "${GROMACS_${LANG}_COMPILER}" OR
+ NOT "${CMAKE_${LANG}_COMPILER_ID}" STREQUAL "${GROMACS_${LANG}_COMPILER_ID}" OR
+ NOT "${CMAKE_${LANG}_COMPILER_VERSION}" STREQUAL "${GROMACS_${LANG}_COMPILER_VERSION}")
+ message(WARNING
+ "You are compiling with a different C++ compiler than what was used "
+ "to compile GROMACS. This may lead to linking or runtime problems. "
+ "GROMACS was compiled with "
+ "${GROMACS_${LANG}_COMPILER_ID} ${GROMACS_${LANG}_COMPILER_VERSION} "
+ "(${GROMACS_${LANG}_COMPILER}).")
+ endif()
+endfunction()
* \ingroup module_imd
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
+#include "config.h"
+#include <errno.h>
#include <string.h>
#ifdef GMX_NATIVE_WINDOWS
#include "imd.h"
#include "imdsocket.h"
-#include "gromacs/utility/smalloc.h"
#include "network.h"
#include "mdrun.h"
#include "sighandler.h"
#include "gmx_ga2la.h"
-#include "xvgr.h"
#include "gromacs/mdlib/groupcoord.h"
#include "gromacs/fileio/confio.h"
-#include "mtop_util.h"
+#include "gromacs/topology/mtop_util.h"
#include "names.h"
#include "gromacs/timing/wallcycle.h"
-#include "gmx_fatal.h"
+#include "gromacs/fileio/xvgr.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
/*! \brief How long shall we wait in seconds until we check for a connection again? */
#define IMDLOOPWAIT 1
#include "typedefs.h"
#include "../fileio/filenm.h"
+#include "../timing/wallcycle.h"
#ifdef GMX_NATIVE_WINDOWS
#include <Windows.h>
* \ingroup module_imd
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
+#include "config.h"
+#include <errno.h>
#include <string.h>
+
#include "gromacs/utility/smalloc.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "imdsocket.h"
#include "imd.h"
-
#ifdef GMX_NATIVE_WINDOWS
#ifdef GMX_HAVE_WINSOCK
/*! \brief Define socklen type on Windows. */
#endif
#else
/* On UNIX, we can use nice errors from errno.h */
-#include <errno.h>
#include <unistd.h>
#endif
extern int imdsock_bind(IMDSocket *sock, int port)
{
- int ret = -1;
+ int ret;
#ifdef GMX_IMD
/* Try to bind to address and port ...*/
ret = bind(sock->sockfd, (struct sockaddr *) &sock->address, sizeof(sock->address));
+#else
+ ret = -1;
#endif
if (ret)
extern int imd_sock_listen(IMDSocket *sock)
{
- int ret = -1;
+ int ret;
#ifdef GMX_IMD
/* Try to set to listening state */
ret = listen(sock->sockfd, MAXIMDCONNECTIONS);
+#else
+ ret = -1;
#endif
if (ret)
extern IMDSocket* imdsock_accept(IMDSocket *sock)
{
- int ret = -1;
+ int ret;
#ifdef GMX_IMD
socklen_t length;
extern int imdsock_getport(IMDSocket *sock, int *port)
{
- int ret = -1;
+ int ret;
#ifdef GMX_IMD
struct sockaddr_in sin;
socklen_t len;
# includes: Nothing to build, just installation
file(GLOB ROOT_LEGACY_HEADERS *.h)
file(GLOB ROOT_LEGACY_HEADERS_PRIVATE thread_mpi.h tmpi.h gmx_hash.h
- gmx_ga2la.h gpu_utils.h pmalloc_cuda.h nbnxn_cuda_data_mgmt.h)
+ gmx_ga2la.h gpu_utils.h pmalloc_cuda.h)
file(GLOB TYPES_LEGACY_HEADERS types/*.h)
file(GLOB TYPES_LEGACY_HEADERS_PRIVATE types/commrec.h)
list(REMOVE_ITEM ROOT_LEGACY_HEADERS ${ROOT_LEGACY_HEADERS_PRIVATE})
#ifndef _bondf_h
#define _bondf_h
-
#include <stdio.h>
+
#include "typedefs.h"
#include "nrnb.h"
-#include "pbc.h"
#include "genborn.h"
#ifdef __cplusplus
extern "C" {
#endif
+struct t_graph;
+struct t_pbc;
+
int glatnr(int *global_atom_index, int i);
/* Returns the global topology atom number belonging to local atom index i.
* This function is intended for writing ascii output
const t_idef *idef,
rvec x[], history_t *hist,
rvec f[], t_forcerec *fr,
- const t_pbc *pbc, const t_graph *g,
+ const struct t_pbc *pbc, const struct t_graph *g,
gmx_enerdata_t *enerd, t_nrnb *nrnb, real *lambda,
const t_mdatoms *md,
t_fcdata *fcd, int *ddgatindex,
const t_idef *idef,
rvec x[],
t_forcerec *fr,
- const t_pbc *pbc, const t_graph *g,
+ const struct t_pbc *pbc, const struct t_graph *g,
gmx_grppairener_t *grpp, real *epot, t_nrnb *nrnb,
real *lambda,
const t_mdatoms *md,
real posres(int nbonds,
const t_iatom forceatoms[], const t_iparams forceparams[],
const rvec x[], rvec f[], rvec vir_diag,
- t_pbc *pbc,
+ struct t_pbc *pbc,
real lambda, real *dvdlambda,
int refcoord_scaling, int ePBC, rvec comA, rvec comB);
/* Position restraints require a different pbc treatment from other bondeds */
real fbposres(int nbonds,
const t_iatom forceatoms[], const t_iparams forceparams[],
const rvec x[], rvec f[], rvec vir_diag,
- t_pbc *pbc, int refcoord_scaling, int ePBC, rvec com);
+ struct t_pbc *pbc, int refcoord_scaling, int ePBC, rvec com);
/* Flat-bottom posres. Same PBC treatment as in normal position restraints */
real bond_angle(const rvec xi, const rvec xj, const rvec xk,
- const t_pbc *pbc,
+ const struct t_pbc *pbc,
rvec r_ij, rvec r_kj, real *costh,
int *t1, int *t2); /* out */
/* Calculate bond-angle. No PBC is taken into account (use mol-shift) */
real dih_angle(const rvec xi, const rvec xj, const rvec xk, const rvec xl,
- const t_pbc *pbc,
+ const struct t_pbc *pbc,
rvec r_ij, rvec r_kj, rvec r_kl, rvec m, rvec n, /* out */
real *sign,
int *t1, int *t2, int *t3);
void do_dih_fup(int i, int j, int k, int l, real ddphi,
rvec r_ij, rvec r_kj, rvec r_kl,
rvec m, rvec n, rvec f[], rvec fshift[],
- const t_pbc *pbc, const t_graph *g,
+ const struct t_pbc *pbc, const struct t_graph *g,
const rvec *x, int t1, int t2, int t3);
/* Do an update of the forces for dihedral potentials */
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2010, by the GROMACS development team, led by
+ * Copyright (c) 2010,2014, 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.
*/
+#ifndef GMX_LEGACYHEADERS_CALCGRID_H
+#define GMX_LEGACYHEADERS_CALCGRID_H
-#include "typedefs.h"
+#include <stdio.h>
+
+#include "../math/vectypes.h"
+#include "../utility/real.h"
#ifdef __cplusplus
extern "C" {
#ifdef __cplusplus
}
#endif
+
+#endif
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2010, by the GROMACS development team, led by
+ * Copyright (c) 2010,2014, 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.
*/
-
#ifndef _calcmu_h
#define _calcmu_h
+#include <stdio.h>
-#include "typedefs.h"
-#include "network.h"
+#include "../math/vectypes.h"
+#include "../utility/basedefinitions.h"
#ifdef __cplusplus
extern "C" {
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2010, by the GROMACS development team, led by
+ * Copyright (c) 2010,2014, 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.
#ifndef _chargegroup_h
#define _chargegroup_h
-#include "sysstuff.h"
-#include "typedefs.h"
+#include <stdio.h>
+
+#include "../math/vectypes.h"
+#include "../utility/real.h"
#ifdef __cplusplus
extern "C" {
#endif
-void calc_chargegroup_radii(const gmx_mtop_t *mtop, rvec *x,
+struct gmx_mtop_t;
+struct t_block;
+
+void calc_chargegroup_radii(const struct gmx_mtop_t *mtop, rvec *x,
real *rvdw1, real *rvdw2,
real *rcoul1, real *rcoul2);
/* This routine calculates the two largest charge group radii in x,
* separately for VdW and Coulomb interactions.
*/
-void calc_cgcm(FILE *log, int cg0, int cg1, t_block *cgs,
+void calc_cgcm(FILE *log, int cg0, int cg1, struct t_block *cgs,
rvec pos[], rvec cg_cm[]);
/* Routine to compute centers of geometry of charge groups. No periodicity
* is used.
*/
void put_charge_groups_in_box (FILE *log, int cg0, int cg1,
- int ePBC, matrix box, t_block *cgs,
+ int ePBC, matrix box, struct t_block *cgs,
rvec pos[],
rvec cg_cm[]);
/* This routine puts charge groups in the periodic box, keeping them
#ifndef _constr_h
#define _constr_h
+
#include "typedefs.h"
#ifdef __cplusplus
extern "C" {
#endif
+struct t_pbc;
+
enum
{
econqCoord, /* Constrain coordinates (mass weighted) */
real dOH, real dHH);
/* Initializes and returns a structure with SETTLE parameters */
-void csettle(gmx_settledata_t settled,
- int nsettle, /* Number of settles */
- t_iatom iatoms[], /* The settle iatom list */
- const t_pbc *pbc, /* PBC data pointer, can be NULL */
- real b4[], /* Old coordinates */
- real after[], /* New coords, to be settled */
- real invdt, /* 1/delta_t */
- real *v, /* Also constrain v if v!=NULL */
- int calcvir_atom_end, /* Calculate r x m delta_r up to this atom */
- tensor vir_r_m_dr, /* sum r x m delta_r */
- int *xerror,
- t_vetavars *vetavar /* variables for pressure control */
+void csettle(gmx_settledata_t settled,
+ int nsettle, /* Number of settles */
+ t_iatom iatoms[], /* The settle iatom list */
+ const struct t_pbc *pbc, /* PBC data pointer, can be NULL */
+ real b4[], /* Old coordinates */
+ real after[], /* New coords, to be settled */
+ real invdt, /* 1/delta_t */
+ real *v, /* Also constrain v if v!=NULL */
+ int calcvir_atom_end, /* Calculate r x m delta_r up to this atom */
+ tensor vir_r_m_dr, /* sum r x m delta_r */
+ int *xerror,
+ t_vetavars *vetavar /* variables for pressure control */
);
void settle_proj(gmx_settledata_t settled, int econq,
int nsettle, t_iatom iatoms[],
- const t_pbc *pbc, /* PBC data pointer, can be NULL */
+ const struct t_pbc *pbc, /* PBC data pointer, can be NULL */
rvec x[],
rvec *der, rvec *derp,
int CalcVirAtomEnd, tensor vir_r_m_dder,
gmx_lincsdata_t lincsd, t_mdatoms *md,
t_commrec *cr,
rvec *x, rvec *xprime, rvec *min_proj,
- matrix box, t_pbc *pbc,
+ matrix box, struct t_pbc *pbc,
real lambda, real *dvdlambda,
real invdt, rvec *v,
gmx_bool bCalcVir, tensor vir_r_m_dr,
#ifndef _disre_h
#define _disre_h
-#include "sysstuff.h"
+#include <stdio.h>
+
#include "typedefs.h"
#ifdef __cplusplus
extern "C" {
#endif
+struct t_pbc;
+
void init_disres(FILE *fplog, const gmx_mtop_t *mtop,
t_inputrec *ir, const t_commrec *cr,
t_fcdata *fcd, t_state *state, gmx_bool bIsREMD);
*/
void calc_disres_R_6(int nfa, const t_iatom *fa, const t_iparams ip[],
- const rvec *x, const t_pbc *pbc,
+ const rvec *x, const struct t_pbc *pbc,
t_fcdata *fcd, history_t *hist);
/* Calculates r and r^-3 (inst. and time averaged) for all pairs
* and the ensemble averaged r^-6 (inst. and time averaged) for all restraints
#include "vsite.h"
#include "genborn.h"
+#include "../timing/wallcycle.h"
+
#ifdef __cplusplus
extern "C" {
#endif
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2013, by the GROMACS development team, led by
+ * Copyright (c) 2013,2014, 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.
#ifndef _ebin_h
#define _ebin_h
-#include "sysstuff.h"
-#include "typedefs.h"
+#include <stdio.h>
+
+#include "../legacyheaders/types/energy.h"
#include "../fileio/enxio.h"
+#include "../utility/basedefinitions.h"
#ifdef __cplusplus
extern "C" {
#include "typedefs.h"
#include "types/force_flags.h"
-#include "pbc.h"
#include "network.h"
#include "tgroup.h"
#include "vsite.h"
#include "genborn.h"
+#include "../timing/wallcycle.h"
#ifdef __cplusplus
extern "C" {
#endif
+struct t_graph;
+struct t_pbc;
+
void gmx_print_sepdvdl(FILE *fplog, const char *s, real v, real dvdlambda);
void calc_vir(int nxf, rvec x[], rvec f[], tensor vir,
/* Calculate virial for nxf atoms, and add it to vir */
void f_calc_vir(int i0, int i1, rvec x[], rvec f[], tensor vir,
- t_graph *g, rvec shift_vec[]);
+ struct t_graph *g, rvec shift_vec[]);
/* Calculate virial taking periodicity into account */
-real RF_excl_correction(const t_forcerec *fr, t_graph *g,
+real RF_excl_correction(const t_forcerec *fr, struct t_graph *g,
const t_mdatoms *mdatoms, const t_blocka *excl,
- rvec x[], rvec f[], rvec *fshift, const t_pbc *pbc,
+ rvec x[], rvec f[], rvec *fshift, const struct t_pbc *pbc,
real lambda, real *dvdlambda);
/* Calculate the reaction-field energy correction for this node:
* epsfac q_i q_j (k_rf r_ij^2 - c_rf)
* message to fplog/stderr.
*/
-gmx_bool uses_simple_tables(int cutoff_scheme,
- nonbonded_verlet_t *nbv,
- int group);
+gmx_bool uses_simple_tables(int cutoff_scheme,
+ struct nonbonded_verlet_t *nbv,
+ int group);
/* Returns whether simple tables (i.e. not for use with GPUs) are used
* with the type of kernel indicated.
*/
tensor vir_force,
t_mdatoms *mdatoms,
gmx_enerdata_t *enerd, t_fcdata *fcd,
- real *lambda, t_graph *graph,
+ real *lambda, struct t_graph *graph,
t_forcerec *fr,
gmx_vsite_t *vsite, rvec mu_tot,
double t, FILE *field, gmx_edsam_t ed,
matrix box,
t_lambda *fepvals,
real *lambda,
- t_graph *graph,
+ struct t_graph *graph,
t_blocka *excl,
rvec mu_tot[2],
int flags,
float *cycles_pme);
/* Call all the force routines */
+void free_gpu_resources(const t_forcerec *fr,
+ const t_commrec *cr);
+
#ifdef __cplusplus
}
#endif
#define STILL_P5INV (1.0/STILL_P5)
#define STILL_PIP5 (M_PI*STILL_P5)
+struct t_graph;
+struct t_pbc;
/* Initialise GB stuff */
int init_gb(gmx_genborn_t **p_born,
/* Bonded GB interactions */
real gb_bonds_tab(rvec x[], rvec f[], rvec fshift[], real *charge, real *p_gbtabscale,
real *invsqrta, real *dvda, real *GBtab, t_idef *idef, real epsilon_r,
- real gb_epsilon_solvent, real facel, const t_pbc *pbc, const t_graph *graph);
+ real gb_epsilon_solvent, real facel, const struct t_pbc *pbc,
+ const struct t_graph *graph);
void
calc_gb_forces(t_commrec *cr, t_mdatoms *md, gmx_genborn_t *born, gmx_localtop_t *top,
rvec x[], rvec f[], t_forcerec *fr, t_idef *idef, int gb_algorithm, int sa_algorithm, t_nrnb *nrnb,
- const t_pbc *pbc, const t_graph *graph, gmx_enerdata_t *enerd);
+ const struct t_pbc *pbc, const struct t_graph *graph, gmx_enerdata_t *enerd);
int
make_gb_nblist(t_commrec *cr, int gb_algorithm,
rvec x[], matrix box,
- t_forcerec *fr, t_idef *idef, t_graph *graph, gmx_genborn_t *born);
+ t_forcerec *fr, t_idef *idef, struct t_graph *graph, gmx_genborn_t *born);
void
make_local_gb(const t_commrec *cr, gmx_genborn_t *born, int gb_algorithm);
+++ /dev/null
-/*
- * This file is part of the GROMACS molecular simulation package.
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2012, The GROMACS development team.
- * Copyright (c) 2012,2014, 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.
- *
- * GROMACS is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1
- * of the License, or (at your option) any later version.
- *
- * GROMACS is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with GROMACS; if not, see
- * http://www.gnu.org/licenses, or write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * If you want to redistribute modifications to GROMACS, 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 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.
- */
-
-#ifndef _fatal_collective_h
-#define _fatal_collective_h
-
-#include "typedefs.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-void
-gmx_fatal_collective(int f_errno, const char *file, int line,
- const t_commrec *cr, gmx_domdec_t *dd,
- const char *fmt, ...);
-/* As gmx_fatal declared in gmx_fatal.h,
- * but only the master process prints the error message.
- * This should only be called one of the following two situations:
- * 1) On all nodes in cr->mpi_comm_mysim, with cr!=NULL,dd==NULL.
- * 2) On all nodes in dd->mpi_comm_all, with cr==NULL,dd!=NULL.
- * This will call MPI_Finalize instead of MPI_Abort when possible,
- * This is useful for handling errors in code that is executed identically
- * for all processes.
- */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _fatal_collective_h */
#ifndef _gmx_ga2la_h
#define _gmx_ga2la_h
-#include "typedefs.h"
#include "types/commrec.h"
+#include "gromacs/utility/basedefinitions.h"
#include "gromacs/utility/smalloc.h"
#ifdef __cplusplus
#ifndef _gmx_hash_h
#define _gmx_hash_h
-#include "typedefs.h"
+#include <stdio.h>
+
+#include "types/commrec.h"
+#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/smalloc.h"
-#include "gmx_fatal.h"
#ifdef __cplusplus
extern "C" {
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifndef GMX_OMP_NTHREADS
-#define GMX_OMP_NTHREADS
+#ifndef GMX_OMP_NTHREADS_H
+#define GMX_OMP_NTHREADS_H
#include <stdio.h>
-#include "typedefs.h"
+
+#include "../utility/basedefinitions.h"
#ifdef __cplusplus
extern "C" {
}
#endif
-/*! Enum values corresponding to multithreaded algorithmic modules. */
+struct t_commrec;
+
+/** Enum values corresponding to multithreaded algorithmic modules. */
typedef enum module_nth
{
/* Default is meant to be used in OMP regions outside the named
emntNR
} module_nth_t;
-/*! Initializes the per-module thread count. It is compatible with tMPI,
- * thread-safety is ensured (for the features available with tMPI).
- * This function should caled only once during the initialization of mdrun. */
-void gmx_omp_nthreads_init(FILE *fplog, t_commrec *cr,
+/*! \brief
+ * Initializes the per-module thread count.
+ *
+ * It is compatible with tMPI, thread-safety is ensured (for the features
+ * available with tMPI).
+ * This function should caled only once during the initialization of mdrun. */
+void gmx_omp_nthreads_init(FILE *fplog, struct t_commrec *cr,
int nthreads_hw_avail,
int omp_nthreads_req,
int omp_nthreads_pme_req,
gmx_bool bCurrNodePMEOnly,
gmx_bool bFullOmpSupport);
-/*! Returns the number of threads to be used in the given module m. */
+/*! \brief
+ * Returns the number of threads to be used in the given module \p mod. */
int gmx_omp_nthreads_get(int mod);
-/*! \brief Sets the number of threads to be used in module. Intended
- * for use in testing. */
+/*! \brief Sets the number of threads to be used in module.
+ *
+ * Intended for use in testing. */
void gmx_omp_nthreads_set(int mod, int nthreads);
-/*! Read the OMP_NUM_THREADS env. var. and check against the value set on the command line. */
+/*! \brief
+ * Read the OMP_NUM_THREADS env. var. and check against the value set on the
+ * command line. */
void gmx_omp_nthreads_read_env(int *nthreads_omp,
gmx_bool bIsSimMaster);
}
#endif
-#endif /* GMX_OMP_NTHREADS */
+#endif
*/
#ifndef GMX_THREAD_AFFINITY_H_
#define GMX_THREAD_AFFINITY_H_
-#include "typedefs.h"
+
+#include <stdio.h>
+
+#include "types/hw_info.h"
+#include "../utility/basedefinitions.h"
#ifdef __cplusplus
extern "C" {
} /* fixes auto-indentation problems */
#endif
+struct t_commrec;
+
/* Sets the thread affinity using the requested setting stored in hw_opt.
* The hardware topologu is requested from hwinfo, when present.
*/
void
-gmx_set_thread_affinity(FILE *fplog,
- const t_commrec *cr,
- gmx_hw_opt_t *hw_opt,
- const gmx_hw_info_t *hwinfo);
+gmx_set_thread_affinity(FILE *fplog,
+ const struct t_commrec *cr,
+ gmx_hw_opt_t *hw_opt,
+ const gmx_hw_info_t *hwinfo);
/* Check the process affinity mask and if it is found to be non-zero,
* will honor it and disable mdrun internal affinity setting.
* made by the OpenMP library.
*
* Note that this will only work on Linux as we use a GNU feature.
+ * With bAfterOpenmpInit false, it will also detect whether OpenMP environment
+ * variables for setting the affinity are set.
*/
void
-gmx_check_thread_affinity_set(FILE *fplog, const t_commrec *cr,
+gmx_check_thread_affinity_set(FILE *fplog, const struct t_commrec *cr,
gmx_hw_opt_t *hw_opt, int ncpus,
gmx_bool bAfterOpenmpInit);
#ifndef _GPU_UTILS_H_
#define _GPU_UTILS_H_
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include "types/simple.h"
#include "types/hw_info.h"
#ifdef GMX_GPU
#define FUNC_TERM_INT ;
+#define FUNC_TERM_SIZE_T ;
#define FUNC_TERM_VOID ;
#define FUNC_QUALIFIER
#else
#define FUNC_TERM_INT {return -1; }
+#define FUNC_TERM_SIZE_T {return 0; }
#define FUNC_TERM_VOID {}
#define FUNC_QUALIFIER static
#endif
extern "C" {
#endif
-FUNC_QUALIFIER
-int do_quick_memtest(int gmx_unused dev_id) FUNC_TERM_INT
-
-FUNC_QUALIFIER
-int do_full_memtest(int gmx_unused dev_id) FUNC_TERM_INT
-
-FUNC_QUALIFIER
-int do_timed_memtest(int gmx_unused dev_id, int gmx_unused time_limit) FUNC_TERM_INT
-
FUNC_QUALIFIER
int detect_cuda_gpus(gmx_gpu_info_t gmx_unused *gpu_info, char gmx_unused *err_str) FUNC_TERM_INT
void get_gpu_device_info_string(char gmx_unused *s, const gmx_gpu_info_t gmx_unused *gpu_info, int gmx_unused index) FUNC_TERM_VOID
FUNC_QUALIFIER
-size_t sizeof_cuda_dev_info(void) FUNC_TERM_INT
+size_t sizeof_cuda_dev_info(void) FUNC_TERM_SIZE_T
#ifdef __cplusplus
}
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2013, by the GROMACS development team, led by
+ * Copyright (c) 2013,2014, 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.
#ifndef _macros_h
#define _macros_h
-#include "typedefs.h" /* for real definition only */
-
/* no extern "C" for this header because it only defines Macros */
-/*
- * With the macros below you don't
- * have to use an index if you don't wan't to. You can eg. use
- * angle.C0[23] instead if angle.c[0][23].
- * In a similar fashion, you can use angle.AI[3] instead of
- * angle.a[0][3]
- */
#ifndef __cplusplus
-#define AI a[0]
-#define AJ a[1]
-#define AK a[2]
-#define AL a[3]
-#define AM a[4]
-#define C0 c[0]
-#define C1 c[1]
-#define C2 c[2]
+#include <stdlib.h>
#ifndef min
#define min(a, b) (((a) < (b)) ? (a) : (b) )
extern "C" {
#endif
-int gmx_gethostname(char *name, size_t len);
-/* Sets the hostname to the value given by gethostname, if available,
- * and to "unknown" otherwise. name should have at least size len.
- * Returns 0 on success, -1 on error.
- */
-
void gmx_log_open(const char *fn, const t_commrec *cr,
gmx_bool bMasterOnly, gmx_bool bAppendFiles, FILE**);
/* Open the log file, if necessary (nprocs > 1) the logfile name is
#define _md_logging_h
#include <stdio.h>
-#include "typedefs.h"
#ifdef __cplusplus
extern "C" {
#endif
-void md_print_info(const t_commrec *cr, FILE *fplog,
+struct t_commrec;
+
+void md_print_info(const struct t_commrec *cr, FILE *fplog,
const char *fmt, ...);
/* Print an general information message to stderr on the master node
* and to fplog if fplog!=NULL.
* the arguments after that contain the values to be printed, as in printf.
*/
-void md_print_warn(const t_commrec *cr, FILE *fplog,
+void md_print_warn(const struct t_commrec *cr, FILE *fplog,
const char *fmt, ...);
/* As md_print_info above, but for important notices or warnings.
* The only difference with md_print_info is that a newline is printed
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2013, by the GROMACS development team, led by
+ * Copyright (c) 2013,2014, 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 "sim_util.h"
#include "vcm.h"
+#include "../timing/wallcycle.h"
+
#ifdef __cplusplus
extern "C" {
#endif
#ifndef _mdatoms_h
#define _mdatoms_h
-#include "typedefs.h"
+#include <stdio.h>
+
+#include "types/inputrec.h"
+#include "types/mdatom.h"
+#include "../utility/basedefinitions.h"
+#include "../utility/real.h"
#ifdef __cplusplus
extern "C" {
#endif
-t_mdatoms *init_mdatoms(FILE *fp, gmx_mtop_t *mtop, gmx_bool bFreeEnergy);
+struct gmx_mtop_t;
+
+t_mdatoms *init_mdatoms(FILE *fp, struct gmx_mtop_t *mtop, gmx_bool bFreeEnergy);
-void atoms2md(gmx_mtop_t *mtop, t_inputrec *ir,
+void atoms2md(struct gmx_mtop_t *mtop, t_inputrec *ir,
int nindex, int *index,
int homenr,
t_mdatoms *md);
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2013, by the GROMACS development team, led by
+ * Copyright (c) 2013,2014, 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.
#ifndef _mdebin_h
#define _mdebin_h
+#include <stdio.h>
+
#include "typedefs.h"
-#include "sysstuff.h"
#include "ebin.h"
#include "../fileio/enxio.h"
#include "types/state.h"
#include "network.h"
#include "sim_util.h"
#include "tgroup.h"
-#include "../fileio/filenm.h"
-#include "mshift.h"
#include "mdebin.h"
#include "vcm.h"
#include "vsite.h"
#include "types/membedt.h"
#include "types/globsig.h"
+#include "../fileio/filenm.h"
+#include "../timing/wallcycle.h"
+
#ifdef __cplusplus
extern "C" {
#endif
#ifndef _mvdata_h
#define _mvdata_h
-#include "typedefs.h"
+#include "types/inputrec.h"
+#include "types/state.h"
#ifdef __cplusplus
extern "C" {
#endif
-void bcast_ir_mtop(const t_commrec *cr,
- t_inputrec *inputrec, gmx_mtop_t *mtop);
+struct gmx_mtop_t;
+struct t_commrec;
+
+void bcast_ir_mtop(const struct t_commrec *cr,
+ t_inputrec *inputrec, struct gmx_mtop_t *mtop);
/* Broadcasts ir and mtop from the master to all nodes in cr->mpi_comm_mygroup.
*/
-void bcast_state(const t_commrec *cr, t_state *state);
+void bcast_state(const struct t_commrec *cr, t_state *state);
/* Broadcasts state from the master to all nodes in cr->mpi_comm_mygroup.
*/
#include <stdio.h>
-#include "types/simple.h"
-#include "typedefs.h"
-#include "main.h"
-#include "gmx_fatal.h"
+#include "../utility/basedefinitions.h"
+#include "../utility/fatalerror.h"
#ifdef __cplusplus
extern "C" {
#endif
-t_commrec *init_commrec(void);
+struct gmx_domdec_t;
+struct gmx_multisim_t;
+struct t_commrec;
+
+struct t_commrec *init_commrec(void);
/* Allocate, initialize and return the commrec. */
-t_commrec *reinitialize_commrec_for_this_thread(const t_commrec *cro);
+struct t_commrec *reinitialize_commrec_for_this_thread(const struct t_commrec *cro);
/* Initialize communication records for thread-parallel simulations.
Must be called on all threads before any communication takes place by
the individual threads. Copies the original commrec to
thread-local versions (a small memory leak results because we don't
deallocate the old shared version). */
-void gmx_fill_commrec_from_mpi(t_commrec *cr);
+void gmx_fill_commrec_from_mpi(struct t_commrec *cr);
/* Continues t_commrec construction */
-int gmx_node_num(void);
-/* return the number of nodes in the ring */
-
-int gmx_node_rank(void);
-/* return the rank of the node */
-
-int gmx_physicalnode_id_hash(void);
-/* Return a non-negative hash that is, hopefully, unique for each physical node.
- * This hash is useful for determining hardware locality.
- */
-
-void gmx_setup_nodecomm(FILE *fplog, t_commrec *cr);
+void gmx_setup_nodecomm(FILE *fplog, struct t_commrec *cr);
/* Sets up fast global communication for clusters with multi-core nodes */
-void gmx_init_intranode_counters(t_commrec *cr);
+void gmx_init_intranode_counters(struct t_commrec *cr);
/* Initializes intra-physical-node MPI process/thread counts and ID. */
-gmx_bool gmx_mpi_initialized(void);
-/* return TRUE when MPI_Init has been called.
- * return FALSE when MPI_Init has not been called OR
- * when GROMACS was compiled without MPI support.
- */
-
-void gmx_barrier(const t_commrec *cr);
+void gmx_barrier(const struct t_commrec *cr);
/* Wait till all processes in cr->mpi_comm_mygroup have reached the barrier */
-void gmx_bcast(int nbytes, void *b, const t_commrec *cr);
+void gmx_bcast(int nbytes, void *b, const struct t_commrec *cr);
/* Broadcast nbytes bytes from the master to cr->mpi_comm_mygroup */
-void gmx_bcast_sim(int nbytes, void *b, const t_commrec *cr);
+void gmx_bcast_sim(int nbytes, void *b, const struct t_commrec *cr);
/* Broadcast nbytes bytes from the sim master to cr->mpi_comm_mysim */
-void gmx_sumi(int nr, int r[], const t_commrec *cr);
+void gmx_sumi(int nr, int r[], const struct t_commrec *cr);
/* Calculate the global sum of an array of ints */
-void gmx_sumli(int nr, gmx_int64_t r[], const t_commrec *cr);
+void gmx_sumli(int nr, gmx_int64_t r[], const struct t_commrec *cr);
/* Calculate the global sum of an array of large ints */
-void gmx_sumf(int nr, float r[], const t_commrec *cr);
+void gmx_sumf(int nr, float r[], const struct t_commrec *cr);
/* Calculate the global sum of an array of floats */
-void gmx_sumd(int nr, double r[], const t_commrec *cr);
+void gmx_sumd(int nr, double r[], const struct t_commrec *cr);
/* Calculate the global sum of an array of doubles */
-void gmx_sumi_sim(int nr, int r[], const gmx_multisim_t *ms);
+void gmx_sumi_sim(int nr, int r[], const struct gmx_multisim_t *ms);
/* Calculate the sum over the simulations of an array of ints */
-void gmx_sumli_sim(int nr, gmx_int64_t r[], const gmx_multisim_t *ms);
+void gmx_sumli_sim(int nr, gmx_int64_t r[], const struct gmx_multisim_t *ms);
/* Calculate the sum over the simulations of an array of large ints */
-void gmx_sumf_sim(int nr, float r[], const gmx_multisim_t *ms);
+void gmx_sumf_sim(int nr, float r[], const struct gmx_multisim_t *ms);
/* Calculate the sum over the simulations of an array of floats */
-void gmx_sumd_sim(int nr, double r[], const gmx_multisim_t *ms);
+void gmx_sumd_sim(int nr, double r[], const struct gmx_multisim_t *ms);
/* Calculate the sum over the simulations of an array of doubles */
-void gmx_abort(int nodeid, int nnodes, int errorno);
-/* Abort the parallel run */
-
#ifdef GMX_DOUBLE
#define gmx_sum gmx_sumd
#define gmx_sum_sim gmx_sumd_sim
#define gmx_sum_sim gmx_sumf_sim
#endif
+gmx_bool gmx_fexist_master(const char *fname, struct t_commrec *cr);
+/* Return TRUE when fname exists, FALSE otherwise, bcast from master to others */
+
+void
+gmx_fatal_collective(int f_errno, const char *file, int line,
+ const struct t_commrec *cr, struct gmx_domdec_t *dd,
+ const char *fmt, ...);
+/* As gmx_fatal declared in utility/fatalerror.h,
+ * but only the master process prints the error message.
+ * This should only be called one of the following two situations:
+ * 1) On all nodes in cr->mpi_comm_mysim, with cr!=NULL,dd==NULL.
+ * 2) On all nodes in dd->mpi_comm_all, with cr==NULL,dd!=NULL.
+ * This will call MPI_Finalize instead of MPI_Abort when possible,
+ * This is useful for handling errors in code that is executed identically
+ * for all processes.
+ */
+
+/* This doesn't currently work if enabled (needs some header cleanup). */
#ifdef DEBUG_GMX
#define debug_gmx() do { FILE *fp = debug ? debug : stderr; \
if (bDebugMode()) { fprintf(fp, "rank=%d, %s %d\n", gmx_mpi_initialized() ? gmx_node_rank() : -1, __FILE__, __LINE__); } fflush(fp); } while (0)
#define _nonbonded_h
#include "typedefs.h"
-#include "pbc.h"
#include "network.h"
#include "tgroup.h"
#include "genborn.h"
} /* fixes auto-indentation problems */
#endif
+struct t_graph;
+struct t_pbc;
void
*/
real
do_nonbonded_listed(int ftype, int nbonds, const t_iatom iatoms[], const t_iparams iparams[],
- const rvec x[], rvec f[], rvec fshift[], const t_pbc *pbc, const t_graph *g,
+ const rvec x[], rvec f[], rvec fshift[],
+ const struct t_pbc *pbc, const struct t_graph *g,
real *lambda, real *dvdl, const t_mdatoms *md, const t_forcerec *fr,
gmx_grppairener_t *grppener, int *global_atom_index);
#define _ns_h
#include <stdio.h>
-#include "sysstuff.h"
+
#include "typedefs.h"
-#include "pbc.h"
#include "tgroup.h"
#include "network.h"
-
#ifdef __cplusplus
extern "C" {
#endif
int output_env_get_verbosity(const output_env_t oenv);
/* return the verbosity */
-int output_env_get_debug_level(const output_env_t oenv);
-/* return the debug level */
-
const char *output_env_get_time_unit(const output_env_t oenv);
/* return time unit (e.g. ps or ns) */
xvg_format_t output_env_get_xvg_format(const output_env_t oenv);
/* Returns enum (see above) for xvg output formatting */
-const char *output_env_get_program_name(const output_env_t oenv);
-/* return the program name */
-
-const char *output_env_get_cmd_line(const output_env_t oenv);
-/* return the command line */
-
-const char *output_env_get_short_program_name(const output_env_t oenv);
-/* get the short version (without path component) of the program name */
+/*! \brief
+ * Returns display name for the currently running program.
+ */
+const char *output_env_get_program_display_name(const output_env_t oenv);
#ifdef __cplusplus
}
void output_env_init(output_env_t *oenvp,
const gmx::ProgramContextInterface &context,
time_unit_t tmu, gmx_bool view, xvg_format_t xvg_format,
- int verbosity, int debug_level);
+ int verbosity);
/* initialize an output_env structure, setting the command line,
the default time value a gmx_boolean view that is set to TRUE when the
user requests direct viewing of graphs,
the graph formatting type, the verbosity, and debug level */
+
+/*! \brief
+ * Returns gmx::ProgramContextInterface from an output_env structure.
+ */
+const gmx::ProgramContextInterface &
+output_env_get_program_context(const output_env_t oenv);
+
#endif
#endif
#ifndef _orires_h
#define _orires_h
-#include "sysstuff.h"
+#include <stdio.h>
+
#include "typedefs.h"
#ifdef __cplusplus
extern "C" {
#endif
+struct t_pbc;
+
void init_orires(FILE *fplog, const gmx_mtop_t *mtop,
rvec x[],
const t_inputrec *ir,
real calc_orires_dev(const gmx_multisim_t *ms,
int nfa, const t_iatom fa[], const t_iparams ip[],
const t_mdatoms *md, const rvec x[],
- const t_pbc *pbc, t_fcdata *fcd, history_t *hist);
+ const struct t_pbc *pbc, t_fcdata *fcd, history_t *hist);
/*
* Calculates the time averaged D matrices, the S matrix for each experiment.
* Returns the weighted RMS deviation of the orientation restraints.
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2008, The GROMACS development team.
- * Copyright (c) 2010, by the GROMACS development team, led by
+ * Copyright (c) 2010,2014, 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.
#ifndef _perf_est_h
#define _perf_est_h
-#include "typedefs.h"
+#include "types/inputrec.h"
+#include "../math/vectypes.h"
+#include "../utility/basedefinitions.h"
#ifdef __cplusplus
extern "C" {
#endif
-int n_bonded_dx(gmx_mtop_t *mtop, gmx_bool bExcl);
+struct gmx_mtop_t;
+
+int n_bonded_dx(struct gmx_mtop_t *mtop, gmx_bool bExcl);
/* Returns the number of pbc_rvec_sub calls required for bonded interactions.
* This number is also roughly proportional to the computational cost.
*/
-float pme_load_estimate(gmx_mtop_t *mtop, t_inputrec *ir, matrix box);
+float pme_load_estimate(struct gmx_mtop_t *mtop, t_inputrec *ir, matrix box);
/* Returns an estimate for the relative load of the PME mesh calculation
* in the total force calculation.
* This estimate is reasonable for recent Intel and AMD x86_64 CPUs.
#ifndef PMALLOC_CUDA_H
#define PMALLOC_CUDA_H
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdlib.h>
#include "types/simple.h"
extern "C" {
#endif
-/*! Allocates nbytes of page-locked memory. */
+/** Allocates nbytes of page-locked memory. */
void pmalloc(void gmx_unused **h_ptr, size_t gmx_unused nbytes) FUNC_TERM
-/*! Allocates nbytes of page-locked memory with write-combining. */
+/** Allocates nbytes of page-locked memory with write-combining. */
void pmalloc_wc(void gmx_unused **h_ptr, size_t gmx_unused nbytes) FUNC_TERM
-/*! Frees page locked memory allocated with pmalloc. */
+/** Frees page locked memory allocated with pmalloc. */
void pfree(void gmx_unused *h_ptr) FUNC_TERM
#ifdef __cplusplus
#include <stdio.h>
#include "typedefs.h"
#include "../math/gmxcomplex.h"
+#include "../timing/wallcycle.h"
#include "../timing/walltime_accounting.h"
#include "../legacyheaders/network.h"
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2008, The GROMACS development team.
- * Copyright (c) 2013, by the GROMACS development team, led by
+ * Copyright (c) 2013,2014, 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.
#define _QMMM_h
#include "typedefs.h"
-#include "pbc.h"
#include "network.h"
#include "tgroup.h"
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2010, by the GROMACS development team, led by
+ * Copyright (c) 2010,2014, 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.
#ifndef _rbin_h
#define _rbin_h
-#include "sysstuff.h"
-#include "typedefs.h"
-#include "network.h"
+#include "../utility/real.h"
#ifdef __cplusplus
extern "C" {
#endif
+struct t_commrec;
+
typedef struct {
int nreal;
int maxreal;
int add_bind(t_bin *b, int nr, double r[]);
/* Add reals to the bin. Returns index */
-void sum_bin(t_bin *b, t_commrec *cr);
+void sum_bin(t_bin *b, struct t_commrec *cr);
/* Globally sum the reals in the bin */
void extract_binr(t_bin *b, int index, int nr, real r[]);
#include <string.h>
-#include "typedefs.h"
+#include "../utility/basedefinitions.h"
#include "warninp.h"
#ifdef __cplusplus
* the research papers on the package. Check out http://www.gromacs.org.
*/
+#include "../timing/wallcycle.h"
+
#include "typedefs.h"
#include "vsite.h"
extern "C" {
#endif
+struct t_graph;
+
/* Initialization function, also predicts the initial shell postions.
* If x!=NULL, the shells are predict for the global coordinates x.
*/
tensor force_vir,
t_mdatoms *md,
t_nrnb *nrnb, gmx_wallcycle_t wcycle,
- t_graph *graph,
+ struct t_graph *graph,
gmx_groups_t *groups,
gmx_shellfc_t shfc,
t_forcerec *fr,
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2010, by the GROMACS development team, led by
+ * Copyright (c) 2010,2014, 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 <signal.h>
-#include "typedefs.h"
+#include "../utility/basedefinitions.h"
#ifdef __cplusplus
extern "C" {
#include "vcm.h"
#include "../fileio/enxio.h"
#include "../fileio/mdoutf.h"
+#include "../timing/wallcycle.h"
#include "../timing/walltime_accounting.h"
#ifdef __cplusplus
extern "C" {
#endif
+struct t_graph;
+
typedef struct gmx_global_stat *gmx_global_stat_t;
void do_pbc_first(FILE *log, matrix box, t_forcerec *fr,
- t_graph *graph, rvec x[]);
+ struct t_graph *graph, rvec x[]);
void do_pbc_first_mtop(FILE *fplog, int ePBC, matrix box,
gmx_mtop_t *mtop, rvec x[]);
t_inputrec *inputrec,
t_nrnb nrnb[], gmx_wallcycle_t wcycle,
gmx_walltime_accounting_t walltime_accounting,
- wallclock_gpu_t *gputimes,
+ struct nonbonded_verlet_t *nbv,
gmx_bool bWriteStat);
void calc_enervirdiff(FILE *fplog, int eDispCorr, t_forcerec *fr);
gmx_bool *bSimAnn, t_vcm **vcm, unsigned long Flags);
/* Routine in sim_util.c */
+gmx_bool use_GPU(const struct nonbonded_verlet_t *nbv);
+
#ifdef __cplusplus
}
#endif
#ifndef _splitter_h
#define _splitter_h
-#include "typedefs.h"
-#include "types/inputrec.h"
+#include <stdio.h>
+
+#include "../utility/basedefinitions.h"
#ifdef __cplusplus
extern "C" {
#endif
+struct t_blocka;
+struct t_idef;
+
void gen_sblocks(FILE *fp, int at_start, int at_end,
- t_idef *idef, t_blocka *sblock,
+ struct t_idef *idef, struct t_blocka *sblock,
gmx_bool bSettle);
/* Generate shake blocks from the constraint list. Set bSettle to yes for shake
* blocks including settles. You normally do not want this.
#define NOTSET -12345
#include <sys/types.h>
-#include "sysstuff.h"
+
#include "types/simple.h"
#include "types/enums.h"
-#include "types/block.h"
-#include "types/symtab.h"
-#include "types/idef.h"
-#include "types/atoms.h"
#include "../fileio/trx.h"
-#include "types/topology.h"
+#include "../topology/topology.h"
#include "types/energy.h"
#include "types/inputrec.h"
-#include "types/ishift.h"
-#include "types/graph.h"
#include "types/nrnb.h"
#include "types/nblist.h"
-#include "types/nbnxn_pairlist.h"
#include "types/nsgrid.h"
#include "types/forcerec.h"
#include "types/fcdata.h"
#include "types/mdatom.h"
-#include "types/pbc.h"
#include "types/ifunc.h"
#include "types/group.h"
#include "types/state.h"
#include "types/shellfc.h"
#include "types/constr.h"
-#include "types/matrix.h"
#include "types/oenv.h"
+#include "types/commrec_fwd.h"
#ifdef __cplusplus
extern "C" {
#endif
-/*
- * Memory (re)allocation can be VERY slow, especially with some
- * MPI libraries that replace the standard malloc and realloc calls.
- * To avoid slow memory allocation we use over_alloc to set the memory
- * allocation size for large data blocks. Since this scales the size
- * with a factor, we use log(n) realloc calls instead of n.
- * This can reduce allocation times from minutes to seconds.
- */
-/* This factor leads to 4 realloc calls to double the array size */
-#define OVER_ALLOC_FAC 1.19
-
-void set_over_alloc_dd(gmx_bool set);
-/* Turns over allocation for variable size atoms/cg/top arrays on or off,
- * default is off.
- */
-
-int over_alloc_dd(int n);
-/* Returns n when domain decomposition over allocation is off.
- * Returns OVER_ALLOC_FAC*n + 100 when over allocation in on.
- * This is to avoid frequent reallocation
- * during domain decomposition in mdrun.
- */
-
-/* Over allocation for small data types: int, real etc. */
-#define over_alloc_small(n) (int)(OVER_ALLOC_FAC*(n) + 8000)
-
-/* Over allocation for large data types: complex structs */
-#define over_alloc_large(n) (int)(OVER_ALLOC_FAC*(n) + 1000)
-
int gmx_int64_to_int(gmx_int64_t step, const char *warn);
/* Convert a gmx_int64_t value to int.
* If warn!=NULL a warning message will be written
* "WARNING during %s:", where warn is printed in %s.
*/
-#define STEPSTRSIZE 22
-
-char *gmx_step_str(gmx_int64_t i, char *buf);
-/* Prints a gmx_int64_t value in buf and returns the pointer to buf.
- * buf should be large enough to contain i: STEPSTRSIZE (22) chars.
- * When multiple gmx_int64_t values are printed in the same printf call,
- * be sure to call gmx_step_str with different buffers.
- */
-
/* Functions to initiate and delete structures *
* These functions are defined in gmxlib/typedefs.c
*/
-void init_block(t_block *block);
-void init_blocka(t_blocka *block);
-void init_atom (t_atoms *at);
-void init_mtop(gmx_mtop_t *mtop);
-void init_top(t_topology *top);
void init_inputrec(t_inputrec *ir);
void init_energyhistory(energyhistory_t * enerhist);
void done_energyhistory(energyhistory_t * enerhist);
void init_df_history(df_history_t *dfhist, int nlambda);
void done_df_history(df_history_t *dfhist);
void copy_df_history(df_history_t * df_dest, df_history_t *df_source);
-
-void copy_blocka(const t_blocka *src, t_blocka *dest);
-
-void done_block(t_block *block);
-void done_blocka(t_blocka *block);
-void done_atom (t_atoms *at);
-void done_moltype(gmx_moltype_t *molt);
-void done_molblock(gmx_molblock_t *molb);
-void done_mtop(gmx_mtop_t *mtop, gmx_bool bDoneSymtab);
-void done_top(t_topology *top);
void done_inputrec(t_inputrec *ir);
void done_state(t_state *state);
void preserve_box_shape(t_inputrec *ir, matrix box_rel, matrix b);
/* Preserve the box shape, b can be box or boxv */
-void stupid_fill_block(t_block *grp, int natom, gmx_bool bOneIndexGroup);
-/* Fill a block structure with numbers identical to the index
- * (0, 1, 2, .. natom-1)
- * If bOneIndexGroup, then all atoms are lumped in one index group,
- * otherwise there is one atom per index entry
- */
-
-void stupid_fill_blocka(t_blocka *grp, int natom);
-/* Fill a block structure with numbers identical to the index
- * (0, 1, 2, .. natom-1)
- * There is one atom per index entry
- */
-
-void init_t_atoms(t_atoms *atoms, int natoms, gmx_bool bPdbinfo);
-/* allocate memory for the arrays, set nr to natoms and nres to 0
- * set pdbinfo to NULL or allocate memory for it */
-
-t_atoms *copy_t_atoms(t_atoms *src);
-/* copy an atoms struct from src to a new one */
-
-void add_t_atoms(t_atoms *atoms, int natom_extra, int nres_extra);
-/* allocate extra space for more atoms and or residues */
-
-void t_atoms_set_resinfo(t_atoms *atoms, int atom_ind, t_symtab *symtab,
- const char *resname, int resnr, unsigned char ic,
- int chainnum, char chainid);
-/* Set the residue name, number, insertion code and chain identifier
- * of atom index atom_ind.
- */
-
-void free_t_atoms(t_atoms *atoms, gmx_bool bFreeNames);
-/* Free all the arrays and set the nr and nres to 0.
- * bFreeNames tells if to free the atom and residue name strings,
- * don't free them if they still need to be used in e.g. the topology struct.
- */
-
-t_atoms *mtop2atoms(gmx_mtop_t *mtop);
-/* generate a t_atoms struct for the system from gmx_mtop_t */
-
real max_cutoff(real cutoff1, real cutoff2);
/* Returns the maximum of the cut-off's, taking into account that 0=inf. */
-/* Following are forward declarations for structures in commrec.h */
-typedef struct t_commrec t_commrec;
-typedef struct gmx_domdec_t gmx_domdec_t;
-typedef struct gmx_multisim_t gmx_multisim_t;
-typedef struct gmx_domdec_zones_t gmx_domdec_zones_t;
-typedef struct gmx_ddbox_t gmx_ddbox_t;
-
#ifdef __cplusplus
}
#endif
#include "../../utility/gmxmpi.h"
#include "../typedefs.h"
-#include "idef.h"
#ifdef __cplusplus
extern "C" {
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2010, by the GROMACS development team, led by
+ * Copyright (c) 2014, 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.
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifndef _dlb_h
-#define _dlb_h
+#ifndef GMX_TYPES_COMMREC_FWD_H
+#define GMX_TYPES_COMMREC_FWD_H
-#include "typedefs.h"
+typedef struct t_commrec t_commrec;
+typedef struct gmx_domdec_t gmx_domdec_t;
+typedef struct gmx_multisim_t gmx_multisim_t;
+typedef struct gmx_domdec_zones_t gmx_domdec_zones_t;
+typedef struct gmx_ddbox_t gmx_ddbox_t;
-extern void count_nb(t_commrec *cr, t_nsborder *nsb, t_block *cgs, int nns,
- int nlr, t_idef *idef, int ngner);
-
-#endif /* _dlb_h */
+#endif
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2010, by the GROMACS development team, led by
+ * Copyright (c) 2010,2014, 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.
* the research papers on the package. Check out http://www.gromacs.org.
*/
+#ifndef GMX_TYPES_ENERGY_H
+#define GMX_TYPES_ENERGY_H
+
#include "simple.h"
#ifdef __cplusplus
#ifdef __cplusplus
}
#endif
+
+#endif
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2012, by the GROMACS development team, led by
+ * Copyright (c) 2012,2014, 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.
double **v;
} t_oriresdata;
+typedef struct {
+ int n; /* n+1 is the number of points */
+ real scale; /* distance between two points */
+ real *data; /* the actual table data, per point there are 4 numbers */
+} bondedtable_t;
+
/*
* Data struct used in the force calculation routines
* for storing the tables for bonded interactions and
#include "ns.h"
#include "genborn.h"
#include "qmmmrec.h"
-#include "idef.h"
-#include "nb_verlet.h"
+#include "../../topology/idef.h"
#include "interaction_const.h"
#include "hw_info.h"
/* Abstract type for PME that is defined only in the routine that use them. */
typedef struct gmx_pme *gmx_pme_t;
-
-
+struct nonbonded_verlet_t;
/* Structure describing the data in a single table */
typedef struct
rvec *shift_vec;
/* The neighborlists including tables */
- int nnblists;
- int *gid2nblists;
- t_nblists *nblists;
+ int nnblists;
+ int *gid2nblists;
+ t_nblists *nblists;
- int cutoff_scheme; /* group- or Verlet-style cutoff */
- gmx_bool bNonbonded; /* true if nonbonded calculations are *not* turned off */
- nonbonded_verlet_t *nbv;
+ int cutoff_scheme; /* group- or Verlet-style cutoff */
+ gmx_bool bNonbonded; /* true if nonbonded calculations are *not* turned off */
+ struct nonbonded_verlet_t *nbv;
/* The wall tables (if used) */
int nwall;
+++ /dev/null
-/*
- * This file is part of the GROMACS molecular simulation package.
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2013, 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.
- *
- * GROMACS is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1
- * of the License, or (at your option) any later version.
- *
- * GROMACS is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with GROMACS; if not, see
- * http://www.gnu.org/licenses, or write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * If you want to redistribute modifications to GROMACS, 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 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.
- */
-
-#ifndef _types_graph_h
-#define _types_graph_h
-
-#include "idef.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-typedef enum {
- egcolWhite, egcolGrey, egcolBlack, egcolNR
-} egCol;
-
-typedef struct {
- int at0; /* The first atom the graph was constructed for */
- int at1; /* The last atom the graph was constructed for */
- int nnodes; /* The number of nodes, nnodes=at_end-at_start */
- int nbound; /* The number of nodes with edges */
- int at_start; /* The first connected atom in this graph */
- int at_end; /* The last+1 connected atom in this graph */
- int *nedge; /* For each node the number of edges */
- atom_id **edge; /* For each node, the actual edges (bidirect.) */
- gmx_bool bScrewPBC; /* Screw boundary conditions */
- ivec *ishift; /* Shift for each particle */
- int negc;
- egCol *egc; /* color of each node */
-} t_graph;
-
-
-#define SHIFT_IVEC(g, i) ((g)->ishift[i])
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _types_graph_h */
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2012, by the GROMACS development team, led by
+ * Copyright (c) 2012,2014, 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.
#ifndef _ifunc_h
#define _ifunc_h
-#include "idef.h"
+#include "../../topology/idef.h"
#include "mdatom.h"
#include "fcdata.h"
-#include "graph.h"
-#include "pbc.h"
#ifdef __cplusplus
extern "C" {
#endif
+struct t_graph;
+struct t_pbc;
typedef real t_ifunc (int nbonds, const t_iatom iatoms[],
const t_iparams iparams[],
const rvec x[], rvec f[], rvec fshift[],
- const t_pbc *pbc, const t_graph *g,
+ const struct t_pbc *pbc, const struct t_graph *g,
real lambda, real *dvdlambda,
const t_mdatoms *md, t_fcdata *fcd,
int *ddgatindex);
#ifndef _inputrec_h_
#define _inputrec_h_
+#include <stdio.h>
#include "simple.h"
#include "enums.h"
-#include "../sysstuff.h"
#include "../../swap/enums.h"
#ifdef __cplusplus
+++ /dev/null
-/*
- * This file is part of the GROMACS molecular simulation package.
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2011,2014, 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.
- *
- * GROMACS is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1
- * of the License, or (at your option) any later version.
- *
- * GROMACS is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with GROMACS; if not, see
- * http://www.gnu.org/licenses, or write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * If you want to redistribute modifications to GROMACS, 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 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.
- */
-#ifndef GMX_LEGACYHEADERS_TYPES_MATRIX_H
-#define GMX_LEGACYHEADERS_TYPES_MATRIX_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "simple.h"
-
-typedef struct {
- real r, g, b;
-} t_rgb;
-
-typedef struct {
- char c1; /* should all be non-zero (and printable and not '"') */
- char c2; /*
- * should all be zero (single char color names: smaller xpm's)
- * or should all be non-zero (double char color names: more colors)
- */
-} t_xpmelmt;
-
-typedef short t_matelmt;
-
-typedef struct {
- t_xpmelmt code; /* see comment for t_xpmelmt */
- const char *desc;
- t_rgb rgb;
-} t_mapping;
-
-#define MAT_SPATIAL_X (1<<0)
-#define MAT_SPATIAL_Y (1<<1)
-/* Defines if x and y are spatial dimensions,
- * when not, there are n axis ticks at the middle of the elements,
- * when set, there are n+1 axis ticks at the edges of the elements.
- */
-
-typedef struct {
- unsigned int flags; /* The possible flags are defined above */
- int nx, ny;
- int y0;
- char title[256];
- char legend[256];
- char label_x[256];
- char label_y[256];
- gmx_bool bDiscrete;
- real *axis_x;
- real *axis_y;
- t_matelmt **matrix;
- int nmap;
- t_mapping *map;
-} t_matrix;
-/* title matrix title
- * legend label for the continuous legend
- * label_x label for the x-axis
- * label_y label for the y-axis
- * nx, ny size of the matrix
- * axis_x[] the x-ticklabels
- * axis_y[] the y-ticklables
- * *matrix[] element x,y is matrix[x][y]
- * nmap number of color levels for the output(?)
- */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
t_nrnb;
-typedef struct gmx_wallcycle *gmx_wallcycle_t;
-
#ifdef __cplusplus
}
#endif
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2013, by the GROMACS development team, led by
+ * Copyright (c) 2011,2014, 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.
*/
+#ifndef GMX_LEGACYHEADERS_TYPES_RGB_H
+#define GMX_LEGACYHEADERS_TYPES_RGB_H
-#ifndef _sysstuff_h
-#define _sysstuff_h
+#include "../../utility/real.h"
-#ifndef _386_
-#include <stdlib.h>
-#endif
-#include <stdio.h>
-#include <errno.h>
-#include <signal.h>
-#include <limits.h>
-#include <time.h>
+typedef struct {
+ real r, g, b;
+} t_rgb;
-#endif /* _sysstuff_h */
+#endif
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-
#ifndef _simple_h
#define _simple_h
-/* Information about integer data type sizes */
-#include <limits.h>
-#define __STDC_LIMIT_MACROS
-#include <stdint.h>
-#ifndef _MSC_VER
-#define __STDC_FORMAT_MACROS
-#include <inttypes.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-#define XX 0 /* Defines for indexing in */
-#define YY 1 /* vectors */
-#define ZZ 2
-#define DIM 3 /* Dimension of vectors */
-#define XXXX 0 /* defines to index matrices */
-#define XXYY 1
-#define XXZZ 2
-#define YYXX 3
-#define YYYY 4
-#define YYZZ 5
-#define ZZXX 6
-#define ZZYY 7
-#define ZZZZ 8
-
-/* There is no standard size for 'bool' in C++, so when
- * we previously defined it to int for C code the data types
- * (and structs) would have different size depending on your compiler,
- * both at gromacs build time and when you use the library.
- * The only way around this is to NOT assume anything about the C++ type,
- * so we cannot use the name 'bool' in our C code anymore.
- */
-
-typedef int gmx_bool;
-
-#ifndef FALSE
-# define FALSE 0
-#endif
-#ifndef TRUE
-# define TRUE 1
-#endif
-#define BOOL_NR 2
-
+#include "../../math/vectypes.h"
+#include "../../utility/basedefinitions.h"
+#include "../../utility/real.h"
typedef int atom_id; /* To indicate an atoms id */
#define NO_ATID (atom_id)(~0) /* Use this to indicate invalid atid */
-/*! \brief Double precision accuracy */
-#define GMX_DOUBLE_EPS 2.2204460492503131e-16
-
-/*! \brief Maximum double precision value - reduced 1 unit in last digit for MSVC */
-#define GMX_DOUBLE_MAX 1.7976931348623157e+308
-
-/*! \brief Minimum double precision value */
-#define GMX_DOUBLE_MIN 2.2250738585072014e-308
-
-/*! \brief Single precision accuracy */
-#define GMX_FLOAT_EPS 1.19209290e-07F
-
-/*! \brief Maximum single precision value - reduced 1 unit in last digit for MSVC */
-#define GMX_FLOAT_MAX 3.40282346E+38F
-
-/*! \brief Minimum single precision value */
-#define GMX_FLOAT_MIN 1.175494351E-38F
-
-
-/* Check whether we already have a real type! */
-#ifdef GMX_DOUBLE
-
-#ifndef HAVE_REAL
-typedef double real;
-#define HAVE_REAL
-#endif
-
-#define GMX_MPI_REAL MPI_DOUBLE
-#define GMX_REAL_EPS GMX_DOUBLE_EPS
-#define GMX_REAL_MIN GMX_DOUBLE_MIN
-#define GMX_REAL_MAX GMX_DOUBLE_MAX
-#define gmx_real_fullprecision_pfmt "%21.14e"
-#else
-
-#ifndef HAVE_REAL
-typedef float real;
-#define HAVE_REAL
-#endif
-
-#define GMX_MPI_REAL MPI_FLOAT
-#define GMX_REAL_EPS GMX_FLOAT_EPS
-#define GMX_REAL_MIN GMX_FLOAT_MIN
-#define GMX_REAL_MAX GMX_FLOAT_MAX
-#define gmx_real_fullprecision_pfmt "%14.7e"
-#endif
-
-typedef real rvec[DIM];
-
-typedef double dvec[DIM];
-
-typedef real matrix[DIM][DIM];
-
-typedef real tensor[DIM][DIM];
-
-typedef int ivec[DIM];
-
-typedef int imatrix[DIM][DIM];
-
-#ifdef _MSC_VER
-typedef __int32 gmx_int32_t;
-#define GMX_PRId32 "I32d"
-#define GMX_SCNd32 "I32d"
-
-typedef __int64 gmx_int64_t;
-#define GMX_PRId64 "I64d"
-#define GMX_SCNd64 "I64d"
-
-typedef unsigned __int32 gmx_uint32_t;
-#define GMX_PRIu32 "I32u"
-#define GMX_SCNu32 "I32u"
-
-typedef unsigned __int64 gmx_uint64_t;
-#define GMX_PRIu64 "I64u"
-#define GMX_SCNu64 "I64u"
-#else
-typedef int32_t gmx_int32_t;
-#define GMX_PRId32 PRId32
-#define GMX_SCNd32 SCNd32
-
-typedef int64_t gmx_int64_t;
-#define GMX_PRId64 PRId64
-#define GMX_SCNd64 SCNd64
-
-typedef uint32_t gmx_uint32_t;
-#define GMX_PRIu32 PRIu32
-#define GMX_SCNu32 SCNu32
-
-typedef uint64_t gmx_uint64_t;
-#define GMX_PRIu64 PRIu64
-#define GMX_SCNu64 SCNu64
-#endif
-
-#define GMX_INT32_MAX INT32_MAX
-#define GMX_INT32_MIN INT32_MIN
-
-#define GMX_INT64_MAX INT64_MAX
-#define GMX_INT64_MIN INT64_MIN
-
-#define GMX_UINT32_MAX UINT32_MAX
-#define GMX_UINT32_MIN UINT32_MIN
-
-#define GMX_UINT64_MAX UINT64_MAX
-#define GMX_UINT64_MIN UINT64_MIN
-
-#if !defined __cplusplus && _MSC_VER
-#define gmx_inline __inline
-#else
-/* C++ or C99 */
-#define gmx_inline inline
-#endif
-
-/* ICC, GCC, MSVC, Pathscale, PGI, XLC support __restrict.
- * Any other compiler can be added here. We cannot
- * use restrict because it is in C99 but not in C++ */
-#define gmx_restrict __restrict
-
-/*
- * These attributes suppress compiler warnings about unused function arguments
- * by marking them as possibly unused. Some arguments are unused but
- * have to be retained to preserve a function signature
- * that must match that of another function.
- * Some arguments are only used in *some* code paths (e.g. MPI)
- */
-
-#ifndef gmx_unused
-#ifdef __GNUC__
-/* GCC, clang, and some ICC pretending to be GCC */
-# define gmx_unused __attribute__ ((unused))
-#elif (defined(__INTEL_COMPILER) || defined(__ECC)) && !defined(_MSC_VER)
-/* ICC on *nix */
-# define gmx_unused __attribute__ ((unused))
-#elif defined _MSC_VER
-/* MSVC */
-# define gmx_unused /*@unused@*/
-#elif defined(__xlC__)
-/* IBM */
-# define gmx_unused __attribute__ ((unused))
-#else
-# define gmx_unused
-#endif
-#endif
-
-/* Standard sizes for char* string buffers */
-#define STRLEN 4096
-#define BIG_STRLEN 1048576
-
-
-#ifdef __cplusplus
-}
-#endif
-
#endif
#define _update_h
#include "typedefs.h"
-#include "mshift.h"
#include "tgroup.h"
#include "network.h"
-#include "vec.h"
+#include "../timing/wallcycle.h"
#ifdef __cplusplus
extern "C" {
#endif
+struct t_graph;
+
/* Abstract type for stochastic dynamics */
typedef struct gmx_update *gmx_update_t;
t_mdatoms *md,
t_state *state,
gmx_bool bMolPBC,
- t_graph *graph,
+ struct t_graph *graph,
rvec force[], /* forces on home particles */
t_idef *idef,
tensor vir_part,
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2013, by the GROMACS development team, led by
+ * Copyright (c) 2013,2014, 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.
#ifndef _vcm_h
#define _vcm_h
-#include "sysstuff.h"
-#include "typedefs.h"
+#include <stdio.h>
+
+#include "types/inputrec.h"
+#include "types/mdatom.h"
+#include "../math/vectypes.h"
+#include "../utility/basedefinitions.h"
+#include "../utility/real.h"
#ifdef __cplusplus
extern "C" {
#endif
+struct gmx_groups_t;
typedef struct {
int nr; /* Number of groups */
char **group_name; /* These two are copies to pointers in */
} t_vcm;
-t_vcm *init_vcm(FILE *fp, gmx_groups_t *groups, t_inputrec *ir);
+t_vcm *init_vcm(FILE *fp, struct gmx_groups_t *groups, t_inputrec *ir);
/* Do a per group center of mass things */
void calc_vcm_grp(int start, int homenr, t_mdatoms *md,
#ifndef _viewit_h
#define _viewit_h
-#include "typedefs.h"
+#include "types/oenv.h"
#include "../fileio/filenm.h"
#ifdef __cplusplus
extern "C" {
#endif
-
void do_view(const output_env_t oenv, const char *fn, const char *opts);
/* forks off appropriate command to view file.
* currently eps, xpm, xvg and pdb are supported
#define _vsite_h
#include <stdio.h>
+
#include "typedefs.h"
+#include "../pbcutil/ishift.h"
#ifdef __cplusplus
extern "C" {
int th_ind_nalloc; /* Size of th_ind */
} gmx_vsite_t;
+struct t_graph;
+
void construct_vsites(gmx_vsite_t *vsite,
rvec x[],
real dt, rvec v[],
rvec x[], rvec f[], rvec *fshift,
gmx_bool VirCorr, matrix vir,
t_nrnb *nrnb, t_idef *idef,
- int ePBC, gmx_bool bMolPBC, t_graph *g, matrix box,
+ int ePBC, gmx_bool bMolPBC, struct t_graph *g, matrix box,
t_commrec *cr);
/* Spread the force operating on the vsite atoms on the surrounding atoms.
* If fshift!=NULL also update the shift forces.
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2010, by the GROMACS development team, led by
+ * Copyright (c) 2010,2014, 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.
#ifndef _warninp_h
#define _warninp_h
-#include "typedefs.h"
+#include "../utility/basedefinitions.h"
#ifdef __cplusplus
extern "C" {
libdir=@CMAKE_INSTALL_PREFIX@/@LIB_INSTALL_DIR@
-includedir=@CMAKE_INSTALL_PREFIX@/@INCL_INSTALL_DIR@
Name: libgromacs@GMX_LIBS_SUFFIX@
Description: Gromacs library
URL: http://www.gromacs.org
-Version: @PROJECT_VERSION@
+Version: @GMX_VERSION_STRING@
Requires: @PKG_FFT@ @PKG_XML@
Libs.private: @CMAKE_THREAD_LIBS_INIT@ @PKG_DL_LIBS@ @OpenMP_LINKER_FLAGS@
Libs: -L${libdir} -lgromacs@GMX_LIBS_SUFFIX@ @PKG_FFT_LIBS@ -lm
-Cflags: -I${includedir} @PKG_CFLAGS@
+Cflags: @PKG_CFLAGS@
#
# This file is part of the GROMACS molecular simulation package.
#
-# Copyright (c) 2012,2013, by the GROMACS development team, led by
+# Copyright (c) 2012,2013,2014, 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.
set(LINEARALGEBRA_PUBLIC_HEADERS
eigensolver.h
matrix.h
- mtxio.h
sparsematrix.h)
gmx_install_headers(linearalgebra ${LINEARALGEBRA_PUBLIC_HEADERS})
*/
#include "eigensolver.h"
-#include "gromacs/legacyheaders/types/simple.h"
-#include "gromacs/legacyheaders/gmx_fatal.h"
-
#include "gromacs/linearalgebra/sparsematrix.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/real.h"
#include "gromacs/utility/smalloc.h"
#include "gmx_lapack.h"
#ifndef GMX_LINEARALGEBRA_EIGENSOLVER_H
#define GMX_LINEARALGEBRA_EIGENSOLVER_H
-#include "../legacyheaders/types/simple.h"
+#include "../utility/real.h"
#include "sparsematrix.h"
* This file is part of the GROMACS molecular simulation package.
*
* Copyright (c) 1991-2004 David van der Spoel, Erik Lindahl, University of Groningen.
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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 <math.h>
#include <string.h>
-#include "gromacs/legacyheaders/types/simple.h"
+#include "gromacs/utility/basedefinitions.h"
+#include "gromacs/utility/real.h"
+
#include "gmx_arpack.h"
#include "gmx_blas.h"
#include "gmx_lapack.h"
+
static void
F77_FUNC(dstqrb, DSTQRB) (int * n,
double * d__,
* This file is part of the GROMACS molecular simulation package.
*
* Copyright (c) 1991-2004 David van der Spoel, Erik Lindahl, University of Groningen.
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
#ifndef GMX_ARPACK_H
#define GMX_ARPACK_H
-#ifdef HAVE_CONFIG_H
#include "config.h"
-#endif
#ifdef __cplusplus
extern "C" {
#endif
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2008, The GROMACS development team.
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*! \cond */
-#ifdef HAVE_CONFIG_H
#include "config.h"
-#endif
-/* Suppress Cygwin compiler warnings from using newlib version of
- * ctype.h */
-#ifdef GMX_CYGWIN
-#undef toupper
-#endif
+/* These are not required by this file, but by the internal BLAS
+ * implementation. In principle, they could be included in each file
+ * that requires them, but this is simpler. Since the header is internal
+ * to the linearyalgebra/ module, the added complexity may not be worth it. */
+#include "gromacs/utility/basedefinitions.h"
+#include "gromacs/utility/real.h"
#ifdef __cplusplus
extern "C" {
#include <ctype.h>
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_blas.h"
#include <math.h>
#include <ctype.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_blas.h"
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_blas.h"
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_blas.h"
double
#include <ctype.h>
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_blas.h"
void
#include <ctype.h>
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_blas.h"
#include <ctype.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_blas.h"
void
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_blas.h"
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_blas.h"
void
#include <ctype.h>
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_blas.h"
void
#include <ctype.h>
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_blas.h"
void
#include <ctype.h>
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_blas.h"
void
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_blas.h"
void
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_blas.h"
float
#include <math.h>
#include <ctype.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_blas.h"
void
#include <ctype.h>
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_blas.h"
void
#include <ctype.h>
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_blas.h"
void
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_blas.h"
void
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_blas.h"
void
#include <ctype.h>
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_blas.h"
void
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2008, The GROMACS development team.
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
/*! \cond */
-#ifdef HAVE_CONFIG_H
#include "config.h"
-#endif
-/* Suppress Cygwin compiler warnings from using newlib version of
- * ctype.h */
-#ifdef GMX_CYGWIN
-#undef toupper
-#endif
+/* These are not required by this file, but by the internal LAPACK
+ * implementation. In principle, they could be included in each file
+ * that requires them, but this is simpler. Since the header is internal
+ * to the linearyalgebra/ module, the added complexity may not be worth it. */
+#include "gromacs/utility/basedefinitions.h"
+#include "gromacs/utility/real.h"
#ifdef __cplusplus
extern "C" {
#include "../gmx_lapack.h"
#include "lapack_limits.h"
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
void
F77_FUNC(dbdsdc,DBDSDC)(const char *uplo,
#include "../gmx_blas.h"
#include "../gmx_lapack.h"
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
void
F77_FUNC(dbdsqr,DBDSQR)(const char *uplo,
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_blas.h"
#include "../gmx_lapack.h"
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_blas.h"
#include "../gmx_lapack.h"
#include "../gmx_lapack.h"
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
void
F77_FUNC(dlaed6,DLAED6)(int *kniter,
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_lapack.h"
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_lapack.h"
#include "lapack_limits.h"
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_lapack.h"
#include "lapack_limits.h"
#include <math.h>
#include "../gmx_lapack.h"
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
double
F77_FUNC(dlapy2,DLAPY2)(double * x, double * y)
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_lapack.h"
#include "lapack_limits.h"
#include "../gmx_blas.h"
#include "../gmx_lapack.h"
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
void
F77_FUNC(dlarf,DLARF)(const char *side,
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_blas.h"
#include "../gmx_lapack.h"
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_blas.h"
#include "../gmx_lapack.h"
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_lapack.h"
#include "lapack_limits.h"
#include <math.h>
#include <ctype.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_blas.h"
#include "../gmx_lapack.h"
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_blas.h"
#include "../gmx_lapack.h"
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_blas.h"
#include "../gmx_lapack.h"
#include "../gmx_lapack.h"
#include "lapack_limits.h"
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
void
F77_FUNC(dlartg,DLARTG)(double *f,
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_lapack.h"
#include <ctype.h>
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_lapack.h"
#include "lapack_limits.h"
#include "../gmx_lapack.h"
#include "lapack_limits.h"
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
void
F77_FUNC(dlasd2,DLASD2)(int *nl,
#include "../gmx_lapack.h"
#include "lapack_limits.h"
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
void
F77_FUNC(dlasd4,DLASD4)(int *n,
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_blas.h"
#include "../gmx_lapack.h"
#include "../gmx_lapack.h"
#include "lapack_limits.h"
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
void
F77_FUNC(dlasq1,DLASQ1)(int *n,
#include "../gmx_lapack.h"
#include "lapack_limits.h"
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#ifdef _MSC_VER
#pragma warning(disable: 4723) /*division by zero - is used on purpose here*/
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_lapack.h"
#include "lapack_limits.h"
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_lapack.h"
#include "../gmx_lapack.h"
#include "lapack_limits.h"
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
void
F77_FUNC(dlasq6,DLASQ6)(int *i0,
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_lapack.h"
void
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_lapack.h"
void
#include "../gmx_lapack.h"
#include "lapack_limits.h"
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
void
F77_FUNC(dlasv2,DLASV2)(double *f,
#include <ctype.h>
#include "../gmx_lapack.h"
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
void
F77_FUNC(dorml2,DORML2)(const char *side,
#include "../gmx_lapack.h"
#include "lapack_limits.h"
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
void
F77_FUNC(dstebz,DSTEBZ)(const char *range,
#include "../gmx_lapack.h"
#include "lapack_limits.h"
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
void
F77_FUNC(dstegr,DSTEGR)(const char *jobz,
#include "../gmx_lapack.h"
#include "lapack_limits.h"
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
void
F77_FUNC(dstein,DSTEIN)(int *n,
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_blas.h"
#include "../gmx_lapack.h"
#include "../gmx_lapack.h"
#include "lapack_limits.h"
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
void
F77_FUNC(dsterf,DSTERF)(int *n,
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_blas.h"
#include "../gmx_lapack.h"
#include <ctype.h>
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_blas.h"
#include "../gmx_lapack.h"
#include "../gmx_lapack.h"
#include "lapack_limits.h"
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
void
F77_FUNC(dtrtri,DTRTRI)(const char *uplo,
#include "../gmx_lapack.h"
#include "lapack_limits.h"
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
void
F77_FUNC(sbdsdc,SBDSDC)(const char *uplo,
#include "../gmx_blas.h"
#include "../gmx_lapack.h"
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
void
F77_FUNC(sbdsqr,SBDSQR)(const char *uplo,
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_blas.h"
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_blas.h"
#include "../gmx_lapack.h"
#include "../gmx_lapack.h"
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
void
F77_FUNC(slaed6,SLAED6)(int *kniter,
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_lapack.h"
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_lapack.h"
#include "lapack_limits.h"
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_lapack.h"
#include "lapack_limits.h"
#include <math.h>
#include "../gmx_lapack.h"
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
float
F77_FUNC(slapy2,SLAPY2)(float * x, float * y)
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_lapack.h"
#include "lapack_limits.h"
#include "../gmx_blas.h"
#include "../gmx_lapack.h"
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
void
F77_FUNC(slarf,SLARF)(const char *side,
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_blas.h"
#include "../gmx_lapack.h"
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_blas.h"
#include "../gmx_lapack.h"
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_lapack.h"
#include "lapack_limits.h"
#include <math.h>
#include <ctype.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_blas.h"
#include "../gmx_lapack.h"
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_blas.h"
#include "../gmx_lapack.h"
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_blas.h"
#include "../gmx_lapack.h"
#include "../gmx_lapack.h"
#include "lapack_limits.h"
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
void
F77_FUNC(slartg,SLARTG)(float *f,
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_lapack.h"
#include <ctype.h>
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_lapack.h"
#include "lapack_limits.h"
#include "../gmx_lapack.h"
#include "lapack_limits.h"
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
void
F77_FUNC(slasd2,SLASD2)(int *nl,
#include "../gmx_lapack.h"
#include "lapack_limits.h"
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
void
F77_FUNC(slasd4,SLASD4)(int *n,
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_blas.h"
#include "../gmx_lapack.h"
#include "../gmx_lapack.h"
#include "lapack_limits.h"
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
void
F77_FUNC(slasq1,SLASQ1)(int *n,
#include "../gmx_lapack.h"
#include "lapack_limits.h"
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#ifdef _MSC_VER
#pragma warning(disable: 4723) /*division by zero - is used on purpose here*/
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_lapack.h"
#include "lapack_limits.h"
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_lapack.h"
#include "../gmx_lapack.h"
#include "lapack_limits.h"
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
void
F77_FUNC(slasq6,SLASQ6)(int *i0,
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_lapack.h"
void
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_lapack.h"
void
#include "../gmx_lapack.h"
#include "lapack_limits.h"
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
void
F77_FUNC(slasv2,SLASV2)(float *f,
#include <ctype.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_lapack.h"
void
#include "../gmx_lapack.h"
#include "lapack_limits.h"
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
void
F77_FUNC(sstebz,SSTEBZ)(const char *range,
#include "../gmx_lapack.h"
#include "lapack_limits.h"
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
void
F77_FUNC(sstegr,SSTEGR)(const char *jobz,
#include "../gmx_lapack.h"
#include "lapack_limits.h"
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
void
F77_FUNC(sstein,SSTEIN)(int *n,
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_blas.h"
#include "../gmx_lapack.h"
#include "../gmx_lapack.h"
#include "lapack_limits.h"
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
void
F77_FUNC(ssterf,SSTERF)(int *n,
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_blas.h"
#include "../gmx_lapack.h"
#include <ctype.h>
#include <math.h>
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
#include "../gmx_blas.h"
#include "../gmx_lapack.h"
#include "../gmx_lapack.h"
#include "lapack_limits.h"
-#include "types/simple.h"
+#include "gromacs/utility/real.h"
void
F77_FUNC(strtri,STRTRI)(const char *uplo,
*/
#include "matrix.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdio.h>
-#include "gromacs/legacyheaders/gmx_fatal.h"
-#include "gromacs/legacyheaders/vec.h"
-
+#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/smalloc.h"
#include "gmx_lapack.h"
{
ax += a0[i]*a[j][i];
}
- chi2 += sqr(y[j]-ax);
+ chi2 += (y[j] - ax) * (y[j] - ax);
}
sfree(atx);
#include <math.h>
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/smalloc.h"
static gmx_inline
#ifndef GMX_LINEARALGEBRA_NRJAC_H
#define GMX_LINEARALGEBRA_NRJAC_H
-#include "gromacs/legacyheaders/types/simple.h"
+#include "gromacs/utility/real.h"
#ifdef __cplusplus
extern "C" {
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2012, by the GROMACS development team, led by
+ * Copyright (c) 2012,2014, 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 <stdio.h>
-#include "../legacyheaders/types/simple.h"
+#include "../utility/basedefinitions.h"
+#include "../utility/real.h"
#ifdef __cplusplus
extern "C" {
--- /dev/null
+/*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+ * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
+ * Copyright (c) 2001-2004, The GROMACS development team.
+ * Copyright (c) 2010,2014, 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.
+ *
+ * GROMACS is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1
+ * of the License, or (at your option) any later version.
+ *
+ * GROMACS is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with GROMACS; if not, see
+ * http://www.gnu.org/licenses, or write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * If you want to redistribute modifications to GROMACS, 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 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.
+ */
+#include "gromacs/math/3dtransforms.h"
+
+#include <math.h>
+#include <stdio.h>
+
+#include "gromacs/math/vec.h"
+#include "gromacs/utility/fatalerror.h"
+
+#define N 4
+
+void gmx_mat4_copy(mat4 a, mat4 b)
+{
+ for (int i = 0; i < N; ++i)
+ {
+ for (int j = 0; j < N; ++j)
+ {
+ b[i][j] = a[i][j];
+ }
+ }
+}
+
+void gmx_mat4_transform_point(mat4 m, rvec x, vec4 v)
+{
+ int i;
+
+ for (i = 0; (i < N); i++)
+ {
+ v[i] = m[XX][i]*x[XX]+m[YY][i]*x[YY]+m[ZZ][i]*x[ZZ]+m[WW][i];
+ }
+}
+
+void gmx_mat4_mmul(mat4 A, mat4 B, mat4 C)
+{
+ int i, j, k;
+
+ for (i = 0; i < N; i++)
+ {
+ for (j = 0; j < N; j++)
+ {
+ A[i][j] = 0;
+ for (k = 0; (k < N); k++)
+ {
+ A[i][j] += B[i][k]*C[k][j];
+ }
+ }
+ }
+}
+
+void gmx_mat4_init_unity(mat4 m)
+{
+ int i, j;
+
+ for (i = 0; (i < N); i++)
+ {
+ for (j = 0; (j < N); j++)
+ {
+ if (i == j)
+ {
+ m[i][j] = 1.0;
+ }
+ else
+ {
+ m[i][j] = 0.0;
+ }
+ }
+ }
+}
+
+void gmx_mat4_init_rotation(int axis, real angle, mat4 A)
+{
+ gmx_mat4_init_unity(A);
+
+ switch (axis)
+ {
+ case XX:
+ A[YY][YY] = cos(angle);
+ A[YY][ZZ] = -sin(angle);
+ A[ZZ][YY] = sin(angle);
+ A[ZZ][ZZ] = cos(angle);
+ break;
+ case YY:
+ A[XX][XX] = cos(angle);
+ A[XX][ZZ] = sin(angle);
+ A[ZZ][XX] = -sin(angle);
+ A[ZZ][ZZ] = cos(angle);
+ break;
+ case ZZ:
+ A[XX][XX] = cos(angle);
+ A[XX][YY] = -sin(angle);
+ A[YY][XX] = sin(angle);
+ A[YY][YY] = cos(angle);
+ break;
+ default:
+ gmx_fatal(FARGS, "Error: invalid axis: %d", axis);
+ }
+}
+
+void gmx_mat4_init_translation(real tx, real ty, real tz, mat4 A)
+{
+ gmx_mat4_init_unity(A);
+ A[3][XX] = tx;
+ A[3][YY] = ty;
+ A[3][ZZ] = tz;
+}
+
+void gmx_mat4_print(FILE *fp, const char *s, mat4 A)
+{
+ int i, j;
+
+ if (fp)
+ {
+ fprintf(fp, "%s: ", s);
+ for (i = 0; i < N; i++)
+ {
+ fprintf(fp, "\t");
+ for (j = 0; j < N; j++)
+ {
+ fprintf(fp, "%10.5f", A[i][j]);
+ }
+ fprintf(fp, "\n");
+ }
+ }
+}
+
+void gmx_vec4_print(FILE *fp, const char *s, vec4 a)
+{
+ int j;
+
+ if (fp)
+ {
+ fprintf(fp, "%s: ", s);
+ for (j = 0; j < N; j++)
+ {
+ fprintf(fp, "%10.5f", a[j]);
+ }
+ fprintf(fp, "\n");
+ }
+}
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2013, by the GROMACS development team, led by
+ * Copyright (c) 2010,2014, 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.
*/
-#ifndef _pbc_h
-#define _pbc_h
+#ifndef GMX_MATH_3DTRANSFORMS_H
+#define GMX_MATH_3DTRANSFORMS_H
+#include <stdio.h>
-#include "simple.h"
+#include "../utility/real.h"
+#include "vectypes.h"
#ifdef __cplusplus
extern "C" {
#endif
-/* Maximum number of combinations of single triclinic box vectors
- * required to shift atoms that are within a brick of the size of
- * the diagonal of the box to within the maximum cut-off distance.
+/** Index for the fourth dimension for `vec4`. */
+#define WW 3
+
+/*! \brief
+ * 4D vector type used in 3D transformations.
+ *
+ * In \Gromacs, only a limited set of 3D transformations are used, and all of
+ * them operate on coordinates, so the fourth element is assumed to be one and
+ * ignored in all contexts.
+ */
+typedef real vec4[4];
+
+/*! \brief
+ * 4D matrix type used in 3D transformations.
+ */
+typedef real mat4[4][4];
+
+void gmx_mat4_copy(mat4 a, mat4 b);
+
+void gmx_mat4_transform_point(mat4 m, rvec x, vec4 v);
+
+/*! \brief
+ * Computes the product of two `mat4` matrices as A = B * C.
+ *
+ * Note that the order of operands is different from mmul() in vec.h!
*/
-#define MAX_NTRICVEC 12
-
-typedef struct {
- int ePBC;
- int ndim_ePBC;
- int ePBCDX;
- int dim;
- matrix box;
- rvec fbox_diag;
- rvec hbox_diag;
- rvec mhbox_diag;
- real max_cutoff2;
- gmx_bool bLimitDistance;
- real limit_distance2;
- int ntric_vec;
- ivec tric_shift[MAX_NTRICVEC];
- rvec tric_vec[MAX_NTRICVEC];
-} t_pbc;
+void gmx_mat4_mmul(mat4 A, mat4 B, mat4 C);
+
+void gmx_mat4_init_unity(mat4 m);
+
+void gmx_mat4_init_rotation(int axis, real angle, mat4 A);
+
+void gmx_mat4_init_translation(real tx, real ty, real tz, mat4 A);
+
+void gmx_mat4_print(FILE *fp, const char *s, mat4 A);
+
+void gmx_vec4_print(FILE *fp, const char *s, vec4 a);
#ifdef __cplusplus
}
set(LIBGROMACS_SOURCES ${LIBGROMACS_SOURCES} ${MATH_SOURCES} PARENT_SCOPE)
set(MATH_PUBLIC_HEADERS
- 3dview.h
+ 3dtransforms.h
gmxcomplex.h
do_fit.h
+ units.h
utilities.h
+ vec.h
+ vectypes.h
)
gmx_install_headers(math ${MATH_PUBLIC_HEADERS})
*/
#include "do_fit.h"
-#include "gromacs/math/utilities.h"
-#include "sysstuff.h"
-#include "typedefs.h"
-#include "vec.h"
-#include "txtdump.h"
-
#include "gromacs/linearalgebra/nrjac.h"
-#include "gmx_fatal.h"
+#include "gromacs/math/utilities.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/smalloc.h"
real calc_similar_ind(gmx_bool bRho, int nind, atom_id *index, real mass[],
#define GMX_MATH_DO_FIT_H
#include "../legacyheaders/types/simple.h"
+#include "../utility/real.h"
+
+#include "vectypes.h"
#ifdef __cplusplus
extern "C" {
#define GMX_MATH_GMXCOMPLEX_H
#include <math.h>
-#include "../legacyheaders/types/simple.h"
+
+#include "../utility/real.h"
+
+#include "vectypes.h"
typedef struct {
real re, im;
--- /dev/null
+/*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+ * 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
+ * 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.
+ *
+ * GROMACS is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1
+ * of the License, or (at your option) any later version.
+ *
+ * GROMACS is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with GROMACS; if not, see
+ * http://www.gnu.org/licenses, or write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * If you want to redistribute modifications to GROMACS, 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 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.
+ */
+/* This file is completely threadsafe - keep it that way! */
+#include "gromacs/math/vec.h"
+
+/** Exponential lookup table - 256 floats */
+const unsigned int gmx_invsqrt_exptab[256] = {
+ 0x5f000000, 0x5e800000, 0x5e800000, 0x5e000000,
+ 0x5e000000, 0x5d800000, 0x5d800000, 0x5d000000,
+ 0x5d000000, 0x5c800000, 0x5c800000, 0x5c000000,
+ 0x5c000000, 0x5b800000, 0x5b800000, 0x5b000000,
+ 0x5b000000, 0x5a800000, 0x5a800000, 0x5a000000,
+ 0x5a000000, 0x59800000, 0x59800000, 0x59000000,
+ 0x59000000, 0x58800000, 0x58800000, 0x58000000,
+ 0x58000000, 0x57800000, 0x57800000, 0x57000000,
+ 0x57000000, 0x56800000, 0x56800000, 0x56000000,
+ 0x56000000, 0x55800000, 0x55800000, 0x55000000,
+ 0x55000000, 0x54800000, 0x54800000, 0x54000000,
+ 0x54000000, 0x53800000, 0x53800000, 0x53000000,
+ 0x53000000, 0x52800000, 0x52800000, 0x52000000,
+ 0x52000000, 0x51800000, 0x51800000, 0x51000000,
+ 0x51000000, 0x50800000, 0x50800000, 0x50000000,
+ 0x50000000, 0x4f800000, 0x4f800000, 0x4f000000,
+ 0x4f000000, 0x4e800000, 0x4e800000, 0x4e000000,
+ 0x4e000000, 0x4d800000, 0x4d800000, 0x4d000000,
+ 0x4d000000, 0x4c800000, 0x4c800000, 0x4c000000,
+ 0x4c000000, 0x4b800000, 0x4b800000, 0x4b000000,
+ 0x4b000000, 0x4a800000, 0x4a800000, 0x4a000000,
+ 0x4a000000, 0x49800000, 0x49800000, 0x49000000,
+ 0x49000000, 0x48800000, 0x48800000, 0x48000000,
+ 0x48000000, 0x47800000, 0x47800000, 0x47000000,
+ 0x47000000, 0x46800000, 0x46800000, 0x46000000,
+ 0x46000000, 0x45800000, 0x45800000, 0x45000000,
+ 0x45000000, 0x44800000, 0x44800000, 0x44000000,
+ 0x44000000, 0x43800000, 0x43800000, 0x43000000,
+ 0x43000000, 0x42800000, 0x42800000, 0x42000000,
+ 0x42000000, 0x41800000, 0x41800000, 0x41000000,
+ 0x41000000, 0x40800000, 0x40800000, 0x40000000,
+ 0x40000000, 0x3f800000, 0x3f800000, 0x3f000000,
+ 0x3f000000, 0x3e800000, 0x3e800000, 0x3e000000,
+ 0x3e000000, 0x3d800000, 0x3d800000, 0x3d000000,
+ 0x3d000000, 0x3c800000, 0x3c800000, 0x3c000000,
+ 0x3c000000, 0x3b800000, 0x3b800000, 0x3b000000,
+ 0x3b000000, 0x3a800000, 0x3a800000, 0x3a000000,
+ 0x3a000000, 0x39800000, 0x39800000, 0x39000000,
+ 0x39000000, 0x38800000, 0x38800000, 0x38000000,
+ 0x38000000, 0x37800000, 0x37800000, 0x37000000,
+ 0x37000000, 0x36800000, 0x36800000, 0x36000000,
+ 0x36000000, 0x35800000, 0x35800000, 0x35000000,
+ 0x35000000, 0x34800000, 0x34800000, 0x34000000,
+ 0x34000000, 0x33800000, 0x33800000, 0x33000000,
+ 0x33000000, 0x32800000, 0x32800000, 0x32000000,
+ 0x32000000, 0x31800000, 0x31800000, 0x31000000,
+ 0x31000000, 0x30800000, 0x30800000, 0x30000000,
+ 0x30000000, 0x2f800000, 0x2f800000, 0x2f000000,
+ 0x2f000000, 0x2e800000, 0x2e800000, 0x2e000000,
+ 0x2e000000, 0x2d800000, 0x2d800000, 0x2d000000,
+ 0x2d000000, 0x2c800000, 0x2c800000, 0x2c000000,
+ 0x2c000000, 0x2b800000, 0x2b800000, 0x2b000000,
+ 0x2b000000, 0x2a800000, 0x2a800000, 0x2a000000,
+ 0x2a000000, 0x29800000, 0x29800000, 0x29000000,
+ 0x29000000, 0x28800000, 0x28800000, 0x28000000,
+ 0x28000000, 0x27800000, 0x27800000, 0x27000000,
+ 0x27000000, 0x26800000, 0x26800000, 0x26000000,
+ 0x26000000, 0x25800000, 0x25800000, 0x25000000,
+ 0x25000000, 0x24800000, 0x24800000, 0x24000000,
+ 0x24000000, 0x23800000, 0x23800000, 0x23000000,
+ 0x23000000, 0x22800000, 0x22800000, 0x22000000,
+ 0x22000000, 0x21800000, 0x21800000, 0x21000000,
+ 0x21000000, 0x20800000, 0x20800000, 0x20000000,
+ 0x20000000, 0x1f800000, 0x1f800000, 0x1f000000
+};
+
+/** Mantissa lookup table - 4096 floats */
+const unsigned int gmx_invsqrt_fracttab[4096] = {
+ 0x3504f3, 0x34f9a4, 0x34ee57, 0x34e30c, 0x34d7c3, 0x34cc7c, 0x34c137, 0x34b5f5,
+ 0x34aab4, 0x349f76, 0x34943a, 0x348900, 0x347dc7, 0x347291, 0x34675e, 0x345c2c,
+ 0x3450fc, 0x3445ce, 0x343aa3, 0x342f79, 0x342452, 0x34192c, 0x340e09, 0x3402e8,
+ 0x33f7c9, 0x33ecac, 0x33e191, 0x33d678, 0x33cb61, 0x33c04c, 0x33b539, 0x33aa28,
+ 0x339f19, 0x33940d, 0x338902, 0x337df9, 0x3372f3, 0x3367ee, 0x335cec, 0x3351eb,
+ 0x3346ed, 0x333bf0, 0x3330f6, 0x3325fd, 0x331b07, 0x331013, 0x330520, 0x32fa30,
+ 0x32ef41, 0x32e455, 0x32d96b, 0x32ce82, 0x32c39c, 0x32b8b7, 0x32add5, 0x32a2f5,
+ 0x329816, 0x328d3a, 0x32825f, 0x327787, 0x326cb0, 0x3261dc, 0x325709, 0x324c38,
+ 0x32416a, 0x32369d, 0x322bd2, 0x32210a, 0x321643, 0x320b7e, 0x3200bb, 0x31f5fa,
+ 0x31eb3b, 0x31e07e, 0x31d5c3, 0x31cb0a, 0x31c053, 0x31b59d, 0x31aaea, 0x31a038,
+ 0x319589, 0x318adb, 0x318030, 0x317586, 0x316ade, 0x316038, 0x315594, 0x314af2,
+ 0x314052, 0x3135b4, 0x312b18, 0x31207d, 0x3115e5, 0x310b4e, 0x3100b9, 0x30f627,
+ 0x30eb96, 0x30e107, 0x30d67a, 0x30cbee, 0x30c165, 0x30b6dd, 0x30ac58, 0x30a1d4,
+ 0x309752, 0x308cd2, 0x308254, 0x3077d8, 0x306d5e, 0x3062e5, 0x30586e, 0x304dfa,
+ 0x304387, 0x303916, 0x302ea7, 0x302439, 0x3019ce, 0x300f64, 0x3004fc, 0x2ffa96,
+ 0x2ff032, 0x2fe5d0, 0x2fdb6f, 0x2fd111, 0x2fc6b4, 0x2fbc59, 0x2fb200, 0x2fa7a9,
+ 0x2f9d53, 0x2f9300, 0x2f88ae, 0x2f7e5e, 0x2f7410, 0x2f69c3, 0x2f5f79, 0x2f5530,
+ 0x2f4ae9, 0x2f40a4, 0x2f3661, 0x2f2c1f, 0x2f21df, 0x2f17a1, 0x2f0d65, 0x2f032b,
+ 0x2ef8f2, 0x2eeebc, 0x2ee487, 0x2eda53, 0x2ed022, 0x2ec5f2, 0x2ebbc5, 0x2eb199,
+ 0x2ea76e, 0x2e9d46, 0x2e931f, 0x2e88fa, 0x2e7ed7, 0x2e74b5, 0x2e6a96, 0x2e6078,
+ 0x2e565c, 0x2e4c41, 0x2e4229, 0x2e3812, 0x2e2dfd, 0x2e23e9, 0x2e19d8, 0x2e0fc8,
+ 0x2e05ba, 0x2dfbad, 0x2df1a3, 0x2de79a, 0x2ddd93, 0x2dd38d, 0x2dc989, 0x2dbf87,
+ 0x2db587, 0x2dab89, 0x2da18c, 0x2d9791, 0x2d8d97, 0x2d83a0, 0x2d79aa, 0x2d6fb6,
+ 0x2d65c3, 0x2d5bd2, 0x2d51e3, 0x2d47f6, 0x2d3e0a, 0x2d3420, 0x2d2a38, 0x2d2051,
+ 0x2d166c, 0x2d0c89, 0x2d02a8, 0x2cf8c8, 0x2ceeea, 0x2ce50d, 0x2cdb33, 0x2cd15a,
+ 0x2cc782, 0x2cbdad, 0x2cb3d9, 0x2caa06, 0x2ca036, 0x2c9667, 0x2c8c99, 0x2c82ce,
+ 0x2c7904, 0x2c6f3b, 0x2c6575, 0x2c5bb0, 0x2c51ed, 0x2c482b, 0x2c3e6b, 0x2c34ad,
+ 0x2c2af0, 0x2c2135, 0x2c177b, 0x2c0dc4, 0x2c040e, 0x2bfa59, 0x2bf0a6, 0x2be6f5,
+ 0x2bdd46, 0x2bd398, 0x2bc9eb, 0x2bc041, 0x2bb698, 0x2bacf0, 0x2ba34b, 0x2b99a6,
+ 0x2b9004, 0x2b8663, 0x2b7cc4, 0x2b7326, 0x2b698a, 0x2b5ff0, 0x2b5657, 0x2b4cc0,
+ 0x2b432a, 0x2b3996, 0x2b3004, 0x2b2673, 0x2b1ce4, 0x2b1357, 0x2b09cb, 0x2b0040,
+ 0x2af6b7, 0x2aed30, 0x2ae3ab, 0x2ada27, 0x2ad0a4, 0x2ac724, 0x2abda4, 0x2ab427,
+ 0x2aaaab, 0x2aa130, 0x2a97b7, 0x2a8e40, 0x2a84ca, 0x2a7b56, 0x2a71e3, 0x2a6872,
+ 0x2a5f03, 0x2a5595, 0x2a4c29, 0x2a42be, 0x2a3955, 0x2a2fed, 0x2a2687, 0x2a1d23,
+ 0x2a13c0, 0x2a0a5e, 0x2a00fe, 0x29f7a0, 0x29ee43, 0x29e4e8, 0x29db8e, 0x29d236,
+ 0x29c8e0, 0x29bf8b, 0x29b637, 0x29ace5, 0x29a395, 0x299a46, 0x2990f8, 0x2987ad,
+ 0x297e62, 0x297519, 0x296bd2, 0x29628c, 0x295948, 0x295005, 0x2946c4, 0x293d85,
+ 0x293446, 0x292b0a, 0x2921cf, 0x291895, 0x290f5d, 0x290626, 0x28fcf1, 0x28f3be,
+ 0x28ea8c, 0x28e15b, 0x28d82c, 0x28cefe, 0x28c5d2, 0x28bca8, 0x28b37f, 0x28aa57,
+ 0x28a131, 0x28980c, 0x288ee9, 0x2885c7, 0x287ca7, 0x287389, 0x286a6b, 0x286150,
+ 0x285835, 0x284f1c, 0x284605, 0x283cef, 0x2833db, 0x282ac8, 0x2821b7, 0x2818a7,
+ 0x280f98, 0x28068b, 0x27fd80, 0x27f475, 0x27eb6d, 0x27e266, 0x27d960, 0x27d05c,
+ 0x27c759, 0x27be57, 0x27b557, 0x27ac59, 0x27a35c, 0x279a60, 0x279166, 0x27886d,
+ 0x277f76, 0x277680, 0x276d8c, 0x276499, 0x275ba7, 0x2752b7, 0x2749c9, 0x2740db,
+ 0x2737f0, 0x272f05, 0x27261c, 0x271d35, 0x27144f, 0x270b6a, 0x270287, 0x26f9a5,
+ 0x26f0c4, 0x26e7e5, 0x26df08, 0x26d62c, 0x26cd51, 0x26c477, 0x26bba0, 0x26b2c9,
+ 0x26a9f4, 0x26a120, 0x26984e, 0x268f7d, 0x2686ad, 0x267ddf, 0x267512, 0x266c47,
+ 0x26637d, 0x265ab4, 0x2651ed, 0x264927, 0x264063, 0x2637a0, 0x262ede, 0x26261e,
+ 0x261d5f, 0x2614a2, 0x260be6, 0x26032b, 0x25fa72, 0x25f1ba, 0x25e903, 0x25e04e,
+ 0x25d79a, 0x25cee7, 0x25c636, 0x25bd87, 0x25b4d8, 0x25ac2b, 0x25a37f, 0x259ad5,
+ 0x25922c, 0x258985, 0x2580de, 0x257839, 0x256f96, 0x2566f4, 0x255e53, 0x2555b3,
+ 0x254d15, 0x254479, 0x253bdd, 0x253343, 0x252aaa, 0x252213, 0x25197d, 0x2510e8,
+ 0x250855, 0x24ffc3, 0x24f732, 0x24eea3, 0x24e615, 0x24dd88, 0x24d4fc, 0x24cc72,
+ 0x24c3ea, 0x24bb62, 0x24b2dc, 0x24aa57, 0x24a1d4, 0x249952, 0x2490d1, 0x248852,
+ 0x247fd3, 0x247756, 0x246edb, 0x246661, 0x245de8, 0x245570, 0x244cfa, 0x244485,
+ 0x243c11, 0x24339f, 0x242b2e, 0x2422be, 0x241a4f, 0x2411e2, 0x240976, 0x24010c,
+ 0x23f8a2, 0x23f03a, 0x23e7d4, 0x23df6e, 0x23d70a, 0x23cea7, 0x23c646, 0x23bde6,
+ 0x23b587, 0x23ad29, 0x23a4cc, 0x239c71, 0x239417, 0x238bbf, 0x238368, 0x237b12,
+ 0x2372bd, 0x236a69, 0x236217, 0x2359c6, 0x235177, 0x234928, 0x2340db, 0x23388f,
+ 0x233045, 0x2327fb, 0x231fb3, 0x23176c, 0x230f27, 0x2306e2, 0x22fe9f, 0x22f65e,
+ 0x22ee1d, 0x22e5de, 0x22dda0, 0x22d563, 0x22cd28, 0x22c4ed, 0x22bcb4, 0x22b47c,
+ 0x22ac46, 0x22a411, 0x229bdd, 0x2293aa, 0x228b78, 0x228348, 0x227b19, 0x2272eb,
+ 0x226abe, 0x226293, 0x225a69, 0x225240, 0x224a18, 0x2241f2, 0x2239cc, 0x2231a8,
+ 0x222985, 0x222164, 0x221944, 0x221124, 0x220907, 0x2200ea, 0x21f8ce, 0x21f0b4,
+ 0x21e89b, 0x21e083, 0x21d86d, 0x21d057, 0x21c843, 0x21c030, 0x21b81e, 0x21b00e,
+ 0x21a7fe, 0x219ff0, 0x2197e3, 0x218fd8, 0x2187cd, 0x217fc4, 0x2177bc, 0x216fb5,
+ 0x2167af, 0x215faa, 0x2157a7, 0x214fa5, 0x2147a4, 0x213fa4, 0x2137a5, 0x212fa8,
+ 0x2127ac, 0x211fb1, 0x2117b7, 0x210fbe, 0x2107c7, 0x20ffd0, 0x20f7db, 0x20efe7,
+ 0x20e7f5, 0x20e003, 0x20d813, 0x20d023, 0x20c835, 0x20c048, 0x20b85d, 0x20b072,
+ 0x20a889, 0x20a0a1, 0x2098ba, 0x2090d4, 0x2088ef, 0x20810b, 0x207929, 0x207148,
+ 0x206968, 0x206189, 0x2059ab, 0x2051cf, 0x2049f3, 0x204219, 0x203a40, 0x203268,
+ 0x202a91, 0x2022bb, 0x201ae7, 0x201313, 0x200b41, 0x200370, 0x1ffba0, 0x1ff3d1,
+ 0x1fec04, 0x1fe437, 0x1fdc6c, 0x1fd4a2, 0x1fccd9, 0x1fc511, 0x1fbd4a, 0x1fb584,
+ 0x1fadc0, 0x1fa5fc, 0x1f9e3a, 0x1f9679, 0x1f8eb9, 0x1f86fa, 0x1f7f3c, 0x1f777f,
+ 0x1f6fc4, 0x1f680a, 0x1f6050, 0x1f5898, 0x1f50e1, 0x1f492b, 0x1f4176, 0x1f39c3,
+ 0x1f3210, 0x1f2a5f, 0x1f22af, 0x1f1aff, 0x1f1351, 0x1f0ba4, 0x1f03f8, 0x1efc4e,
+ 0x1ef4a4, 0x1eecfb, 0x1ee554, 0x1eddae, 0x1ed608, 0x1ece64, 0x1ec6c1, 0x1ebf1f,
+ 0x1eb77f, 0x1eafdf, 0x1ea840, 0x1ea0a3, 0x1e9906, 0x1e916b, 0x1e89d1, 0x1e8238,
+ 0x1e7aa0, 0x1e7309, 0x1e6b73, 0x1e63de, 0x1e5c4a, 0x1e54b8, 0x1e4d26, 0x1e4596,
+ 0x1e3e06, 0x1e3678, 0x1e2eeb, 0x1e275f, 0x1e1fd4, 0x1e184a, 0x1e10c1, 0x1e0939,
+ 0x1e01b3, 0x1dfa2d, 0x1df2a8, 0x1deb25, 0x1de3a2, 0x1ddc21, 0x1dd4a1, 0x1dcd22,
+ 0x1dc5a3, 0x1dbe26, 0x1db6aa, 0x1daf2f, 0x1da7b6, 0x1da03d, 0x1d98c5, 0x1d914e,
+ 0x1d89d9, 0x1d8264, 0x1d7af1, 0x1d737e, 0x1d6c0d, 0x1d649c, 0x1d5d2d, 0x1d55bf,
+ 0x1d4e52, 0x1d46e5, 0x1d3f7a, 0x1d3810, 0x1d30a7, 0x1d293f, 0x1d21d8, 0x1d1a73,
+ 0x1d130e, 0x1d0baa, 0x1d0447, 0x1cfce6, 0x1cf585, 0x1cee25, 0x1ce6c7, 0x1cdf69,
+ 0x1cd80d, 0x1cd0b1, 0x1cc957, 0x1cc1fe, 0x1cbaa5, 0x1cb34e, 0x1cabf8, 0x1ca4a2,
+ 0x1c9d4e, 0x1c95fb, 0x1c8ea9, 0x1c8758, 0x1c8008, 0x1c78b8, 0x1c716a, 0x1c6a1d,
+ 0x1c62d1, 0x1c5b86, 0x1c543c, 0x1c4cf3, 0x1c45ab, 0x1c3e65, 0x1c371f, 0x1c2fda,
+ 0x1c2896, 0x1c2153, 0x1c1a11, 0x1c12d0, 0x1c0b90, 0x1c0452, 0x1bfd14, 0x1bf5d7,
+ 0x1bee9b, 0x1be760, 0x1be027, 0x1bd8ee, 0x1bd1b6, 0x1bca7f, 0x1bc349, 0x1bbc15,
+ 0x1bb4e1, 0x1badae, 0x1ba67c, 0x1b9f4c, 0x1b981c, 0x1b90ed, 0x1b89bf, 0x1b8292,
+ 0x1b7b67, 0x1b743c, 0x1b6d12, 0x1b65e9, 0x1b5ec1, 0x1b579a, 0x1b5074, 0x1b4950,
+ 0x1b422c, 0x1b3b09, 0x1b33e7, 0x1b2cc6, 0x1b25a6, 0x1b1e87, 0x1b1769, 0x1b104c,
+ 0x1b0930, 0x1b0215, 0x1afafb, 0x1af3e2, 0x1aecc9, 0x1ae5b2, 0x1ade9c, 0x1ad787,
+ 0x1ad073, 0x1ac95f, 0x1ac24d, 0x1abb3c, 0x1ab42b, 0x1aad1c, 0x1aa60d, 0x1a9f00,
+ 0x1a97f3, 0x1a90e8, 0x1a89dd, 0x1a82d4, 0x1a7bcb, 0x1a74c3, 0x1a6dbd, 0x1a66b7,
+ 0x1a5fb2, 0x1a58ae, 0x1a51ab, 0x1a4aa9, 0x1a43a8, 0x1a3ca8, 0x1a35a9, 0x1a2eab,
+ 0x1a27ae, 0x1a20b1, 0x1a19b6, 0x1a12bc, 0x1a0bc2, 0x1a04ca, 0x19fdd2, 0x19f6dc,
+ 0x19efe6, 0x19e8f2, 0x19e1fe, 0x19db0b, 0x19d419, 0x19cd28, 0x19c638, 0x19bf49,
+ 0x19b85b, 0x19b16e, 0x19aa82, 0x19a396, 0x199cac, 0x1995c3, 0x198eda, 0x1987f3,
+ 0x19810c, 0x197a26, 0x197342, 0x196c5e, 0x19657b, 0x195e99, 0x1957b8, 0x1950d8,
+ 0x1949f8, 0x19431a, 0x193c3d, 0x193560, 0x192e85, 0x1927aa, 0x1920d1, 0x1919f8,
+ 0x191320, 0x190c49, 0x190573, 0x18fe9e, 0x18f7ca, 0x18f0f7, 0x18ea24, 0x18e353,
+ 0x18dc82, 0x18d5b3, 0x18cee4, 0x18c816, 0x18c149, 0x18ba7d, 0x18b3b2, 0x18ace8,
+ 0x18a61f, 0x189f56, 0x18988f, 0x1891c8, 0x188b03, 0x18843e, 0x187d7a, 0x1876b7,
+ 0x186ff5, 0x186934, 0x186274, 0x185bb4, 0x1854f6, 0x184e38, 0x18477c, 0x1840c0,
+ 0x183a05, 0x18334b, 0x182c92, 0x1825da, 0x181f23, 0x18186c, 0x1811b7, 0x180b02,
+ 0x18044e, 0x17fd9b, 0x17f6e9, 0x17f038, 0x17e988, 0x17e2d9, 0x17dc2a, 0x17d57d,
+ 0x17ced0, 0x17c824, 0x17c179, 0x17bacf, 0x17b426, 0x17ad7e, 0x17a6d6, 0x17a030,
+ 0x17998a, 0x1792e5, 0x178c41, 0x17859e, 0x177efc, 0x17785b, 0x1771ba, 0x176b1b,
+ 0x17647c, 0x175dde, 0x175741, 0x1750a5, 0x174a0a, 0x17436f, 0x173cd6, 0x17363d,
+ 0x172fa5, 0x17290f, 0x172278, 0x171be3, 0x17154f, 0x170ebb, 0x170829, 0x170197,
+ 0x16fb06, 0x16f476, 0x16ede7, 0x16e759, 0x16e0cb, 0x16da3e, 0x16d3b3, 0x16cd28,
+ 0x16c69e, 0x16c014, 0x16b98c, 0x16b305, 0x16ac7e, 0x16a5f8, 0x169f73, 0x1698ef,
+ 0x16926c, 0x168be9, 0x168568, 0x167ee7, 0x167867, 0x1671e8, 0x166b6a, 0x1664ec,
+ 0x165e70, 0x1657f4, 0x165179, 0x164aff, 0x164486, 0x163e0d, 0x163796, 0x16311f,
+ 0x162aa9, 0x162434, 0x161dc0, 0x16174d, 0x1610da, 0x160a68, 0x1603f8, 0x15fd88,
+ 0x15f718, 0x15f0aa, 0x15ea3c, 0x15e3d0, 0x15dd64, 0x15d6f9, 0x15d08e, 0x15ca25,
+ 0x15c3bc, 0x15bd55, 0x15b6ee, 0x15b087, 0x15aa22, 0x15a3be, 0x159d5a, 0x1596f7,
+ 0x159095, 0x158a34, 0x1583d3, 0x157d74, 0x157715, 0x1570b7, 0x156a5a, 0x1563fd,
+ 0x155da2, 0x155747, 0x1550ed, 0x154a94, 0x15443c, 0x153de4, 0x15378e, 0x153138,
+ 0x152ae3, 0x15248e, 0x151e3b, 0x1517e8, 0x151197, 0x150b45, 0x1504f5, 0x14fea6,
+ 0x14f857, 0x14f209, 0x14ebbc, 0x14e570, 0x14df25, 0x14d8da, 0x14d290, 0x14cc47,
+ 0x14c5ff, 0x14bfb7, 0x14b971, 0x14b32b, 0x14ace6, 0x14a6a1, 0x14a05e, 0x149a1b,
+ 0x1493d9, 0x148d98, 0x148758, 0x148118, 0x147ada, 0x14749c, 0x146e5f, 0x146822,
+ 0x1461e7, 0x145bac, 0x145572, 0x144f38, 0x144900, 0x1442c8, 0x143c91, 0x14365b,
+ 0x143026, 0x1429f1, 0x1423be, 0x141d8b, 0x141758, 0x141127, 0x140af6, 0x1404c6,
+ 0x13fe97, 0x13f869, 0x13f23b, 0x13ec0f, 0x13e5e3, 0x13dfb7, 0x13d98d, 0x13d363,
+ 0x13cd3a, 0x13c712, 0x13c0eb, 0x13bac4, 0x13b49e, 0x13ae79, 0x13a855, 0x13a231,
+ 0x139c0e, 0x1395ec, 0x138fcb, 0x1389ab, 0x13838b, 0x137d6c, 0x13774e, 0x137130,
+ 0x136b13, 0x1364f8, 0x135edc, 0x1358c2, 0x1352a8, 0x134c8f, 0x134677, 0x134060,
+ 0x133a49, 0x133433, 0x132e1e, 0x13280a, 0x1321f6, 0x131be3, 0x1315d1, 0x130fc0,
+ 0x1309af, 0x13039f, 0x12fd90, 0x12f782, 0x12f174, 0x12eb67, 0x12e55b, 0x12df50,
+ 0x12d945, 0x12d33b, 0x12cd32, 0x12c72a, 0x12c122, 0x12bb1b, 0x12b515, 0x12af10,
+ 0x12a90b, 0x12a307, 0x129d04, 0x129702, 0x129100, 0x128aff, 0x1284ff, 0x127eff,
+ 0x127900, 0x127302, 0x126d05, 0x126708, 0x12610d, 0x125b11, 0x125517, 0x124f1d,
+ 0x124925, 0x12432c, 0x123d35, 0x12373e, 0x123148, 0x122b53, 0x12255e, 0x121f6b,
+ 0x121978, 0x121385, 0x120d94, 0x1207a3, 0x1201b3, 0x11fbc3, 0x11f5d4, 0x11efe6,
+ 0x11e9f9, 0x11e40d, 0x11de21, 0x11d836, 0x11d24b, 0x11cc62, 0x11c679, 0x11c090,
+ 0x11baa9, 0x11b4c2, 0x11aedc, 0x11a8f7, 0x11a312, 0x119d2e, 0x11974b, 0x119168,
+ 0x118b87, 0x1185a6, 0x117fc5, 0x1179e5, 0x117407, 0x116e28, 0x11684b, 0x11626e,
+ 0x115c92, 0x1156b6, 0x1150dc, 0x114b02, 0x114529, 0x113f50, 0x113978, 0x1133a1,
+ 0x112dca, 0x1127f5, 0x112220, 0x111c4b, 0x111678, 0x1110a5, 0x110ad3, 0x110501,
+ 0x10ff30, 0x10f960, 0x10f391, 0x10edc2, 0x10e7f4, 0x10e226, 0x10dc5a, 0x10d68e,
+ 0x10d0c3, 0x10caf8, 0x10c52e, 0x10bf65, 0x10b99c, 0x10b3d5, 0x10ae0e, 0x10a847,
+ 0x10a281, 0x109cbc, 0x1096f8, 0x109134, 0x108b72, 0x1085af, 0x107fee, 0x107a2d,
+ 0x10746d, 0x106ead, 0x1068ee, 0x106330, 0x105d73, 0x1057b6, 0x1051fa, 0x104c3e,
+ 0x104684, 0x1040ca, 0x103b10, 0x103558, 0x102fa0, 0x1029e8, 0x102432, 0x101e7c,
+ 0x1018c6, 0x101312, 0x100d5e, 0x1007ab, 0x1001f8, 0xffc46, 0xff695, 0xff0e4,
+ 0xfeb35, 0xfe585, 0xfdfd7, 0xfda29, 0xfd47c, 0xfcecf, 0xfc923, 0xfc378,
+ 0xfbdce, 0xfb824, 0xfb27b, 0xfacd2, 0xfa72a, 0xfa183, 0xf9bdd, 0xf9637,
+ 0xf9092, 0xf8aed, 0xf854a, 0xf7fa6, 0xf7a04, 0xf7462, 0xf6ec1, 0xf6920,
+ 0xf6381, 0xf5de1, 0xf5843, 0xf52a5, 0xf4d08, 0xf476b, 0xf41cf, 0xf3c34,
+ 0xf369a, 0xf3100, 0xf2b66, 0xf25ce, 0xf2036, 0xf1a9f, 0xf1508, 0xf0f72,
+ 0xf09dd, 0xf0448, 0xefeb4, 0xef921, 0xef38e, 0xeedfc, 0xee86b, 0xee2da,
+ 0xedd4a, 0xed7ba, 0xed22b, 0xecc9d, 0xec710, 0xec183, 0xebbf7, 0xeb66b,
+ 0xeb0e0, 0xeab56, 0xea5cc, 0xea043, 0xe9abb, 0xe9533, 0xe8fac, 0xe8a26,
+ 0xe84a0, 0xe7f1b, 0xe7996, 0xe7413, 0xe6e8f, 0xe690d, 0xe638b, 0xe5e0a,
+ 0xe5889, 0xe5309, 0xe4d8a, 0xe480b, 0xe428d, 0xe3d0f, 0xe3792, 0xe3216,
+ 0xe2c9b, 0xe2720, 0xe21a5, 0xe1c2c, 0xe16b3, 0xe113a, 0xe0bc3, 0xe064c,
+ 0xe00d5, 0xdfb5f, 0xdf5ea, 0xdf075, 0xdeb01, 0xde58e, 0xde01b, 0xddaa9,
+ 0xdd538, 0xdcfc7, 0xdca57, 0xdc4e7, 0xdbf78, 0xdba0a, 0xdb49c, 0xdaf2f,
+ 0xda9c2, 0xda457, 0xd9eeb, 0xd9981, 0xd9417, 0xd8ead, 0xd8945, 0xd83dc,
+ 0xd7e75, 0xd790e, 0xd73a8, 0xd6e42, 0xd68dd, 0xd6379, 0xd5e15, 0xd58b2,
+ 0xd534f, 0xd4ded, 0xd488c, 0xd432b, 0xd3dcb, 0xd386c, 0xd330d, 0xd2dae,
+ 0xd2851, 0xd22f4, 0xd1d97, 0xd183b, 0xd12e0, 0xd0d86, 0xd082c, 0xd02d2,
+ 0xcfd79, 0xcf821, 0xcf2ca, 0xced73, 0xce81c, 0xce2c7, 0xcdd72, 0xcd81d,
+ 0xcd2c9, 0xccd76, 0xcc823, 0xcc2d1, 0xcbd7f, 0xcb82f, 0xcb2de, 0xcad8f,
+ 0xca83f, 0xca2f1, 0xc9da3, 0xc9856, 0xc9309, 0xc8dbd, 0xc8871, 0xc8326,
+ 0xc7ddc, 0xc7892, 0xc7349, 0xc6e01, 0xc68b9, 0xc6372, 0xc5e2b, 0xc58e5,
+ 0xc539f, 0xc4e5a, 0xc4916, 0xc43d2, 0xc3e8f, 0xc394c, 0xc340a, 0xc2ec9,
+ 0xc2988, 0xc2448, 0xc1f08, 0xc19c9, 0xc148b, 0xc0f4d, 0xc0a10, 0xc04d3,
+ 0xbff97, 0xbfa5b, 0xbf521, 0xbefe6, 0xbeaad, 0xbe573, 0xbe03b, 0xbdb03,
+ 0xbd5cb, 0xbd095, 0xbcb5e, 0xbc629, 0xbc0f4, 0xbbbbf, 0xbb68b, 0xbb158,
+ 0xbac25, 0xba6f3, 0xba1c1, 0xb9c90, 0xb9760, 0xb9230, 0xb8d01, 0xb87d2,
+ 0xb82a4, 0xb7d76, 0xb7849, 0xb731d, 0xb6df1, 0xb68c6, 0xb639b, 0xb5e71,
+ 0xb5948, 0xb541f, 0xb4ef6, 0xb49cf, 0xb44a7, 0xb3f81, 0xb3a5b, 0xb3535,
+ 0xb3010, 0xb2aec, 0xb25c8, 0xb20a5, 0xb1b82, 0xb1660, 0xb113e, 0xb0c1d,
+ 0xb06fd, 0xb01dd, 0xafcbe, 0xaf79f, 0xaf281, 0xaed64, 0xae847, 0xae32a,
+ 0xade0e, 0xad8f3, 0xad3d8, 0xacebe, 0xac9a4, 0xac48b, 0xabf73, 0xaba5b,
+ 0xab544, 0xab02d, 0xaab17, 0xaa601, 0xaa0ec, 0xa9bd7, 0xa96c3, 0xa91b0,
+ 0xa8c9d, 0xa878a, 0xa8279, 0xa7d67, 0xa7857, 0xa7347, 0xa6e37, 0xa6928,
+ 0xa641a, 0xa5f0c, 0xa59fe, 0xa54f2, 0xa4fe5, 0xa4ada, 0xa45ce, 0xa40c4,
+ 0xa3bba, 0xa36b0, 0xa31a7, 0xa2c9f, 0xa2797, 0xa2290, 0xa1d89, 0xa1883,
+ 0xa137d, 0xa0e78, 0xa0974, 0xa0470, 0x9ff6c, 0x9fa69, 0x9f567, 0x9f065,
+ 0x9eb64, 0x9e663, 0x9e163, 0x9dc63, 0x9d764, 0x9d266, 0x9cd68, 0x9c86a,
+ 0x9c36d, 0x9be71, 0x9b975, 0x9b47a, 0x9af7f, 0x9aa85, 0x9a58b, 0x9a092,
+ 0x99b9a, 0x996a1, 0x991aa, 0x98cb3, 0x987bd, 0x982c7, 0x97dd1, 0x978dc,
+ 0x973e8, 0x96ef4, 0x96a01, 0x9650e, 0x9601c, 0x95b2b, 0x9563a, 0x95149,
+ 0x94c59, 0x94769, 0x9427a, 0x93d8c, 0x9389e, 0x933b1, 0x92ec4, 0x929d8,
+ 0x924ec, 0x92001, 0x91b16, 0x9162c, 0x91142, 0x90c59, 0x90770, 0x90288,
+ 0x8fda1, 0x8f8ba, 0x8f3d3, 0x8eeed, 0x8ea08, 0x8e523, 0x8e03e, 0x8db5b,
+ 0x8d677, 0x8d194, 0x8ccb2, 0x8c7d0, 0x8c2ef, 0x8be0e, 0x8b92e, 0x8b44e,
+ 0x8af6f, 0x8aa91, 0x8a5b2, 0x8a0d5, 0x89bf8, 0x8971b, 0x8923f, 0x88d64,
+ 0x88889, 0x883ae, 0x87ed4, 0x879fb, 0x87522, 0x87049, 0x86b71, 0x8669a,
+ 0x861c3, 0x85ced, 0x85817, 0x85341, 0x84e6d, 0x84998, 0x844c5, 0x83ff1,
+ 0x83b1e, 0x8364c, 0x8317a, 0x82ca9, 0x827d8, 0x82308, 0x81e39, 0x81969,
+ 0x8149b, 0x80fcd, 0x80aff, 0x80632, 0x80165, 0x7fc99, 0x7f7cd, 0x7f302,
+ 0x7ee37, 0x7e96d, 0x7e4a4, 0x7dfdb, 0x7db12, 0x7d64a, 0x7d182, 0x7ccbb,
+ 0x7c7f5, 0x7c32f, 0x7be69, 0x7b9a4, 0x7b4df, 0x7b01b, 0x7ab58, 0x7a695,
+ 0x7a1d2, 0x79d10, 0x7984f, 0x7938e, 0x78ecd, 0x78a0d, 0x7854d, 0x7808e,
+ 0x77bd0, 0x77712, 0x77254, 0x76d97, 0x768da, 0x7641e, 0x75f63, 0x75aa8,
+ 0x755ed, 0x75133, 0x74c79, 0x747c0, 0x74308, 0x73e50, 0x73998, 0x734e1,
+ 0x7302a, 0x72b74, 0x726be, 0x72209, 0x71d55, 0x718a0, 0x713ed, 0x70f3a,
+ 0x70a87, 0x705d5, 0x70123, 0x6fc72, 0x6f7c1, 0x6f311, 0x6ee61, 0x6e9b2,
+ 0x6e503, 0x6e055, 0x6dba7, 0x6d6f9, 0x6d24d, 0x6cda0, 0x6c8f4, 0x6c449,
+ 0x6bf9e, 0x6baf4, 0x6b64a, 0x6b1a0, 0x6acf7, 0x6a84f, 0x6a3a7, 0x69eff,
+ 0x69a58, 0x695b2, 0x6910c, 0x68c66, 0x687c1, 0x6831d, 0x67e78, 0x679d5,
+ 0x67532, 0x6708f, 0x66bed, 0x6674b, 0x662aa, 0x65e09, 0x65969, 0x654c9,
+ 0x65029, 0x64b8a, 0x646ec, 0x6424e, 0x63db1, 0x63914, 0x63477, 0x62fdb,
+ 0x62b40, 0x626a5, 0x6220a, 0x61d70, 0x618d6, 0x6143d, 0x60fa4, 0x60b0c,
+ 0x60674, 0x601dd, 0x5fd46, 0x5f8b0, 0x5f41a, 0x5ef85, 0x5eaf0, 0x5e65b,
+ 0x5e1c7, 0x5dd34, 0x5d8a1, 0x5d40e, 0x5cf7c, 0x5caea, 0x5c659, 0x5c1c9,
+ 0x5bd38, 0x5b8a9, 0x5b419, 0x5af8a, 0x5aafc, 0x5a66e, 0x5a1e1, 0x59d54,
+ 0x598c7, 0x5943b, 0x58fb0, 0x58b24, 0x5869a, 0x58210, 0x57d86, 0x578fd,
+ 0x57474, 0x56feb, 0x56b64, 0x566dc, 0x56255, 0x55dcf, 0x55949, 0x554c3,
+ 0x5503e, 0x54bb9, 0x54735, 0x542b1, 0x53e2e, 0x539ab, 0x53529, 0x530a7,
+ 0x52c25, 0x527a4, 0x52324, 0x51ea4, 0x51a24, 0x515a5, 0x51126, 0x50ca8,
+ 0x5082a, 0x503ad, 0x4ff30, 0x4fab4, 0x4f638, 0x4f1bc, 0x4ed41, 0x4e8c6,
+ 0x4e44c, 0x4dfd3, 0x4db59, 0x4d6e0, 0x4d268, 0x4cdf0, 0x4c979, 0x4c502,
+ 0x4c08b, 0x4bc15, 0x4b79f, 0x4b32a, 0x4aeb5, 0x4aa41, 0x4a5cd, 0x4a15a,
+ 0x49ce7, 0x49874, 0x49402, 0x48f91, 0x48b1f, 0x486af, 0x4823e, 0x47dce,
+ 0x4795f, 0x474f0, 0x47082, 0x46c14, 0x467a6, 0x46339, 0x45ecc, 0x45a60,
+ 0x455f4, 0x45189, 0x44d1e, 0x448b3, 0x44449, 0x43fdf, 0x43b76, 0x4370d,
+ 0x432a5, 0x42e3d, 0x429d6, 0x4256f, 0x42108, 0x41ca2, 0x4183c, 0x413d7,
+ 0x40f72, 0x40b0e, 0x406aa, 0x40247, 0x3fde4, 0x3f981, 0x3f51f, 0x3f0bd,
+ 0x3ec5c, 0x3e7fb, 0x3e39b, 0x3df3b, 0x3dadb, 0x3d67c, 0x3d21d, 0x3cdbf,
+ 0x3c961, 0x3c504, 0x3c0a7, 0x3bc4a, 0x3b7ee, 0x3b393, 0x3af37, 0x3aadd,
+ 0x3a682, 0x3a228, 0x39dcf, 0x39976, 0x3951d, 0x390c5, 0x38c6d, 0x38816,
+ 0x383bf, 0x37f69, 0x37b13, 0x376bd, 0x37268, 0x36e13, 0x369bf, 0x3656b,
+ 0x36117, 0x35cc4, 0x35872, 0x3541f, 0x34fce, 0x34b7c, 0x3472b, 0x342db,
+ 0x33e8b, 0x33a3b, 0x335ec, 0x3319d, 0x32d4f, 0x32901, 0x324b3, 0x32066,
+ 0x31c1a, 0x317cd, 0x31381, 0x30f36, 0x30aeb, 0x306a1, 0x30256, 0x2fe0d,
+ 0x2f9c3, 0x2f57a, 0x2f132, 0x2ecea, 0x2e8a2, 0x2e45b, 0x2e014, 0x2dbce,
+ 0x2d788, 0x2d343, 0x2cefd, 0x2cab9, 0x2c675, 0x2c231, 0x2bded, 0x2b9aa,
+ 0x2b568, 0x2b125, 0x2ace4, 0x2a8a2, 0x2a461, 0x2a021, 0x29be1, 0x297a1,
+ 0x29362, 0x28f23, 0x28ae4, 0x286a6, 0x28269, 0x27e2c, 0x279ef, 0x275b2,
+ 0x27176, 0x26d3b, 0x26900, 0x264c5, 0x2608b, 0x25c51, 0x25817, 0x253de,
+ 0x24fa6, 0x24b6d, 0x24735, 0x242fe, 0x23ec7, 0x23a90, 0x2365a, 0x23224,
+ 0x22def, 0x229ba, 0x22585, 0x22151, 0x21d1d, 0x218ea, 0x214b7, 0x21084,
+ 0x20c52, 0x20821, 0x203ef, 0x1ffbe, 0x1fb8e, 0x1f75e, 0x1f32e, 0x1eeff,
+ 0x1ead0, 0x1e6a1, 0x1e273, 0x1de45, 0x1da18, 0x1d5eb, 0x1d1bf, 0x1cd93,
+ 0x1c967, 0x1c53c, 0x1c111, 0x1bce6, 0x1b8bc, 0x1b493, 0x1b069, 0x1ac40,
+ 0x1a818, 0x1a3f0, 0x19fc8, 0x19ba1, 0x1977a, 0x19354, 0x18f2d, 0x18b08,
+ 0x186e2, 0x182be, 0x17e99, 0x17a75, 0x17651, 0x1722e, 0x16e0b, 0x169e9,
+ 0x165c6, 0x161a5, 0x15d83, 0x15963, 0x15542, 0x15122, 0x14d02, 0x148e3,
+ 0x144c4, 0x140a5, 0x13c87, 0x13869, 0x1344c, 0x1302f, 0x12c12, 0x127f6,
+ 0x123da, 0x11fbf, 0x11ba4, 0x11789, 0x1136f, 0x10f55, 0x10b3c, 0x10723,
+ 0x1030a, 0xfef2, 0xfada, 0xf6c2, 0xf2ab, 0xee95, 0xea7e, 0xe668,
+ 0xe253, 0xde3e, 0xda29, 0xd614, 0xd200, 0xcded, 0xc9da, 0xc5c7,
+ 0xc1b4, 0xbda2, 0xb990, 0xb57f, 0xb16e, 0xad5e, 0xa94e, 0xa53e,
+ 0xa12e, 0x9d1f, 0x9911, 0x9503, 0x90f5, 0x8ce7, 0x88da, 0x84ce,
+ 0x80c1, 0x7cb5, 0x78aa, 0x749f, 0x7094, 0x6c89, 0x687f, 0x6476,
+ 0x606d, 0x5c64, 0x585b, 0x5453, 0x504b, 0x4c44, 0x483d, 0x4436,
+ 0x4030, 0x3c2a, 0x3825, 0x3420, 0x301b, 0x2c17, 0x2813, 0x240f,
+ 0x200c, 0x1c09, 0x1807, 0x1405, 0x1003, 0xc02, 0x801, 0x400,
+ 0x7fffff, 0x7ff001, 0x7fe006, 0x7fd00d, 0x7fc018, 0x7fb025, 0x7fa036, 0x7f9049,
+ 0x7f8060, 0x7f7079, 0x7f6095, 0x7f50b5, 0x7f40d7, 0x7f30fc, 0x7f2124, 0x7f114f,
+ 0x7f017e, 0x7ef1af, 0x7ee1e2, 0x7ed219, 0x7ec253, 0x7eb290, 0x7ea2d0, 0x7e9312,
+ 0x7e8358, 0x7e73a0, 0x7e63eb, 0x7e543a, 0x7e448b, 0x7e34df, 0x7e2536, 0x7e1590,
+ 0x7e05ec, 0x7df64c, 0x7de6ae, 0x7dd714, 0x7dc77c, 0x7db7e7, 0x7da855, 0x7d98c6,
+ 0x7d893a, 0x7d79b0, 0x7d6a2a, 0x7d5aa6, 0x7d4b25, 0x7d3ba7, 0x7d2c2c, 0x7d1cb3,
+ 0x7d0d3e, 0x7cfdcb, 0x7cee5b, 0x7cdeee, 0x7ccf84, 0x7cc01d, 0x7cb0b8, 0x7ca156,
+ 0x7c91f7, 0x7c829b, 0x7c7342, 0x7c63eb, 0x7c5497, 0x7c4546, 0x7c35f8, 0x7c26ad,
+ 0x7c1764, 0x7c081e, 0x7bf8db, 0x7be99b, 0x7bda5d, 0x7bcb23, 0x7bbbeb, 0x7bacb5,
+ 0x7b9d83, 0x7b8e53, 0x7b7f26, 0x7b6ffc, 0x7b60d4, 0x7b51b0, 0x7b428e, 0x7b336e,
+ 0x7b2452, 0x7b1538, 0x7b0621, 0x7af70c, 0x7ae7fb, 0x7ad8ec, 0x7ac9e0, 0x7abad6,
+ 0x7aabcf, 0x7a9ccb, 0x7a8dca, 0x7a7ecb, 0x7a6fcf, 0x7a60d5, 0x7a51df, 0x7a42eb,
+ 0x7a33f9, 0x7a250b, 0x7a161f, 0x7a0735, 0x79f84f, 0x79e96b, 0x79da89, 0x79cbab,
+ 0x79bccf, 0x79adf5, 0x799f1f, 0x79904a, 0x798179, 0x7972aa, 0x7963de, 0x795515,
+ 0x79464e, 0x793789, 0x7928c8, 0x791a09, 0x790b4c, 0x78fc92, 0x78eddb, 0x78df27,
+ 0x78d075, 0x78c1c5, 0x78b319, 0x78a46e, 0x7895c7, 0x788722, 0x78787f, 0x7869e0,
+ 0x785b42, 0x784ca8, 0x783e10, 0x782f7a, 0x7820e7, 0x781257, 0x7803c9, 0x77f53e,
+ 0x77e6b5, 0x77d82f, 0x77c9ab, 0x77bb2a, 0x77acac, 0x779e30, 0x778fb6, 0x77813f,
+ 0x7772cb, 0x776459, 0x7755ea, 0x77477d, 0x773913, 0x772aab, 0x771c46, 0x770de3,
+ 0x76ff83, 0x76f125, 0x76e2ca, 0x76d472, 0x76c61b, 0x76b7c8, 0x76a977, 0x769b28,
+ 0x768cdc, 0x767e92, 0x76704b, 0x766206, 0x7653c4, 0x764584, 0x763747, 0x76290c,
+ 0x761ad3, 0x760c9d, 0x75fe6a, 0x75f039, 0x75e20a, 0x75d3de, 0x75c5b5, 0x75b78e,
+ 0x75a969, 0x759b46, 0x758d27, 0x757f09, 0x7570ee, 0x7562d6, 0x7554bf, 0x7546ac,
+ 0x75389a, 0x752a8c, 0x751c7f, 0x750e75, 0x75006d, 0x74f268, 0x74e465, 0x74d665,
+ 0x74c867, 0x74ba6b, 0x74ac72, 0x749e7b, 0x749087, 0x748295, 0x7474a5, 0x7466b8,
+ 0x7458cd, 0x744ae4, 0x743cfe, 0x742f1a, 0x742139, 0x74135a, 0x74057d, 0x73f7a3,
+ 0x73e9cb, 0x73dbf5, 0x73ce22, 0x73c051, 0x73b282, 0x73a4b6, 0x7396ec, 0x738925,
+ 0x737b60, 0x736d9d, 0x735fdc, 0x73521e, 0x734462, 0x7336a9, 0x7328f1, 0x731b3c,
+ 0x730d8a, 0x72ffd9, 0x72f22c, 0x72e480, 0x72d6d7, 0x72c92f, 0x72bb8b, 0x72ade8,
+ 0x72a048, 0x7292aa, 0x72850f, 0x727775, 0x7269de, 0x725c4a, 0x724eb7, 0x724127,
+ 0x723399, 0x72260e, 0x721884, 0x720afd, 0x71fd79, 0x71eff6, 0x71e276, 0x71d4f8,
+ 0x71c77c, 0x71ba02, 0x71ac8b, 0x719f16, 0x7191a3, 0x718433, 0x7176c5, 0x716959,
+ 0x715bef, 0x714e87, 0x714122, 0x7133bf, 0x71265e, 0x711900, 0x710ba3, 0x70fe49,
+ 0x70f0f1, 0x70e39b, 0x70d648, 0x70c8f6, 0x70bba7, 0x70ae5a, 0x70a110, 0x7093c7,
+ 0x708681, 0x70793d, 0x706bfb, 0x705ebb, 0x70517d, 0x704442, 0x703709, 0x7029d2,
+ 0x701c9d, 0x700f6a, 0x70023a, 0x6ff50c, 0x6fe7e0, 0x6fdab6, 0x6fcd8e, 0x6fc068,
+ 0x6fb345, 0x6fa624, 0x6f9904, 0x6f8be7, 0x6f7ecd, 0x6f71b4, 0x6f649d, 0x6f5789,
+ 0x6f4a77, 0x6f3d67, 0x6f3059, 0x6f234d, 0x6f1643, 0x6f093c, 0x6efc36, 0x6eef33,
+ 0x6ee232, 0x6ed533, 0x6ec836, 0x6ebb3b, 0x6eae42, 0x6ea14c, 0x6e9457, 0x6e8765,
+ 0x6e7a74, 0x6e6d86, 0x6e609a, 0x6e53b0, 0x6e46c8, 0x6e39e3, 0x6e2cff, 0x6e201d,
+ 0x6e133e, 0x6e0661, 0x6df985, 0x6decac, 0x6ddfd5, 0x6dd300, 0x6dc62d, 0x6db95c,
+ 0x6dac8d, 0x6d9fc0, 0x6d92f5, 0x6d862d, 0x6d7966, 0x6d6ca2, 0x6d5fdf, 0x6d531f,
+ 0x6d4660, 0x6d39a4, 0x6d2cea, 0x6d2032, 0x6d137c, 0x6d06c7, 0x6cfa15, 0x6ced65,
+ 0x6ce0b7, 0x6cd40b, 0x6cc761, 0x6cbab9, 0x6cae14, 0x6ca170, 0x6c94ce, 0x6c882e,
+ 0x6c7b90, 0x6c6ef5, 0x6c625b, 0x6c55c3, 0x6c492d, 0x6c3c9a, 0x6c3008, 0x6c2378,
+ 0x6c16ea, 0x6c0a5f, 0x6bfdd5, 0x6bf14d, 0x6be4c8, 0x6bd844, 0x6bcbc2, 0x6bbf42,
+ 0x6bb2c5, 0x6ba649, 0x6b99cf, 0x6b8d57, 0x6b80e2, 0x6b746e, 0x6b67fc, 0x6b5b8c,
+ 0x6b4f1e, 0x6b42b2, 0x6b3648, 0x6b29e0, 0x6b1d7a, 0x6b1116, 0x6b04b4, 0x6af854,
+ 0x6aebf5, 0x6adf99, 0x6ad33f, 0x6ac6e6, 0x6aba90, 0x6aae3b, 0x6aa1e9, 0x6a9598,
+ 0x6a8949, 0x6a7cfd, 0x6a70b2, 0x6a6469, 0x6a5822, 0x6a4bdd, 0x6a3f9a, 0x6a3359,
+ 0x6a271a, 0x6a1adc, 0x6a0ea1, 0x6a0267, 0x69f630, 0x69e9fa, 0x69ddc6, 0x69d195,
+ 0x69c565, 0x69b937, 0x69ad0b, 0x69a0e0, 0x6994b8, 0x698892, 0x697c6d, 0x69704a,
+ 0x69642a, 0x69580b, 0x694bee, 0x693fd3, 0x6933ba, 0x6927a2, 0x691b8d, 0x690f79,
+ 0x690368, 0x68f758, 0x68eb4a, 0x68df3e, 0x68d334, 0x68c72b, 0x68bb25, 0x68af20,
+ 0x68a31d, 0x68971d, 0x688b1d, 0x687f20, 0x687325, 0x68672c, 0x685b34, 0x684f3e,
+ 0x68434a, 0x683758, 0x682b68, 0x681f7a, 0x68138d, 0x6807a2, 0x67fbb9, 0x67efd2,
+ 0x67e3ed, 0x67d80a, 0x67cc28, 0x67c048, 0x67b46a, 0x67a88e, 0x679cb4, 0x6790dc,
+ 0x678505, 0x677930, 0x676d5d, 0x67618c, 0x6755bd, 0x6749ef, 0x673e23, 0x673259,
+ 0x672691, 0x671acb, 0x670f06, 0x670343, 0x66f782, 0x66ebc3, 0x66e006, 0x66d44a,
+ 0x66c891, 0x66bcd8, 0x66b122, 0x66a56e, 0x6699bb, 0x668e0a, 0x66825b, 0x6676ae,
+ 0x666b02, 0x665f58, 0x6653b0, 0x66480a, 0x663c66, 0x6630c3, 0x662522, 0x661983,
+ 0x660de5, 0x66024a, 0x65f6b0, 0x65eb17, 0x65df81, 0x65d3ec, 0x65c859, 0x65bcc8,
+ 0x65b139, 0x65a5ab, 0x659a1f, 0x658e95, 0x65830d, 0x657786, 0x656c01, 0x65607e,
+ 0x6554fc, 0x65497c, 0x653dfe, 0x653282, 0x652707, 0x651b8e, 0x651017, 0x6504a2,
+ 0x64f92e, 0x64edbc, 0x64e24c, 0x64d6dd, 0x64cb70, 0x64c005, 0x64b49c, 0x64a934,
+ 0x649dce, 0x64926a, 0x648707, 0x647ba6, 0x647047, 0x6464ea, 0x64598e, 0x644e34,
+ 0x6442db, 0x643784, 0x642c2f, 0x6420dc, 0x64158a, 0x640a3a, 0x63feec, 0x63f39f,
+ 0x63e854, 0x63dd0b, 0x63d1c3, 0x63c67d, 0x63bb39, 0x63aff7, 0x63a4b6, 0x639976,
+ 0x638e39, 0x6382fd, 0x6377c3, 0x636c8a, 0x636153, 0x63561e, 0x634aea, 0x633fb8,
+ 0x633488, 0x632959, 0x631e2c, 0x631301, 0x6307d7, 0x62fcaf, 0x62f189, 0x62e664,
+ 0x62db41, 0x62d01f, 0x62c500, 0x62b9e1, 0x62aec5, 0x62a3aa, 0x629890, 0x628d79,
+ 0x628263, 0x62774e, 0x626c3b, 0x62612a, 0x62561b, 0x624b0d, 0x624000, 0x6234f6,
+ 0x6229ed, 0x621ee5, 0x6213df, 0x6208db, 0x61fdd8, 0x61f2d7, 0x61e7d8, 0x61dcda,
+ 0x61d1de, 0x61c6e3, 0x61bbea, 0x61b0f3, 0x61a5fd, 0x619b09, 0x619016, 0x618525,
+ 0x617a36, 0x616f48, 0x61645b, 0x615971, 0x614e88, 0x6143a0, 0x6138ba, 0x612dd6,
+ 0x6122f3, 0x611812, 0x610d32, 0x610254, 0x60f778, 0x60ec9d, 0x60e1c4, 0x60d6ec,
+ 0x60cc16, 0x60c141, 0x60b66e, 0x60ab9c, 0x60a0cc, 0x6095fe, 0x608b31, 0x608066,
+ 0x60759c, 0x606ad4, 0x60600e, 0x605549, 0x604a85, 0x603fc3, 0x603503, 0x602a44,
+ 0x601f87, 0x6014cb, 0x600a11, 0x5fff58, 0x5ff4a1, 0x5fe9eb, 0x5fdf37, 0x5fd485,
+ 0x5fc9d4, 0x5fbf24, 0x5fb476, 0x5fa9ca, 0x5f9f1f, 0x5f9476, 0x5f89ce, 0x5f7f28,
+ 0x5f7483, 0x5f69df, 0x5f5f3e, 0x5f549d, 0x5f49ff, 0x5f3f62, 0x5f34c6, 0x5f2a2c,
+ 0x5f1f93, 0x5f14fc, 0x5f0a66, 0x5effd2, 0x5ef53f, 0x5eeaae, 0x5ee01f, 0x5ed591,
+ 0x5ecb04, 0x5ec079, 0x5eb5ef, 0x5eab67, 0x5ea0e0, 0x5e965b, 0x5e8bd8, 0x5e8155,
+ 0x5e76d5, 0x5e6c55, 0x5e61d8, 0x5e575c, 0x5e4ce1, 0x5e4268, 0x5e37f0, 0x5e2d79,
+ 0x5e2305, 0x5e1891, 0x5e0e1f, 0x5e03af, 0x5df940, 0x5deed3, 0x5de467, 0x5dd9fc,
+ 0x5dcf93, 0x5dc52b, 0x5dbac5, 0x5db061, 0x5da5fd, 0x5d9b9c, 0x5d913b, 0x5d86dc,
+ 0x5d7c7f, 0x5d7223, 0x5d67c9, 0x5d5d70, 0x5d5318, 0x5d48c2, 0x5d3e6d, 0x5d341a,
+ 0x5d29c8, 0x5d1f78, 0x5d1529, 0x5d0adc, 0x5d0090, 0x5cf645, 0x5cebfc, 0x5ce1b4,
+ 0x5cd76e, 0x5ccd29, 0x5cc2e6, 0x5cb8a4, 0x5cae63, 0x5ca424, 0x5c99e6, 0x5c8faa,
+ 0x5c856f, 0x5c7b36, 0x5c70fe, 0x5c66c7, 0x5c5c92, 0x5c525e, 0x5c482c, 0x5c3dfb,
+ 0x5c33cc, 0x5c299d, 0x5c1f71, 0x5c1546, 0x5c0b1c, 0x5c00f3, 0x5bf6cc, 0x5beca7,
+ 0x5be282, 0x5bd85f, 0x5bce3e, 0x5bc41e, 0x5bb9ff, 0x5bafe2, 0x5ba5c6, 0x5b9bac,
+ 0x5b9193, 0x5b877b, 0x5b7d65, 0x5b7350, 0x5b693d, 0x5b5f2a, 0x5b551a, 0x5b4b0a,
+ 0x5b40fd, 0x5b36f0, 0x5b2ce5, 0x5b22db, 0x5b18d3, 0x5b0ecc, 0x5b04c6, 0x5afac2,
+ 0x5af0bf, 0x5ae6bd, 0x5adcbd, 0x5ad2be, 0x5ac8c1, 0x5abec5, 0x5ab4ca, 0x5aaad1,
+ 0x5aa0d9, 0x5a96e2, 0x5a8ced, 0x5a82f9, 0x5a7906, 0x5a6f15, 0x5a6525, 0x5a5b37,
+ 0x5a514a, 0x5a475e, 0x5a3d74, 0x5a338b, 0x5a29a3, 0x5a1fbd, 0x5a15d8, 0x5a0bf4,
+ 0x5a0212, 0x59f831, 0x59ee51, 0x59e473, 0x59da96, 0x59d0ba, 0x59c6e0, 0x59bd07,
+ 0x59b330, 0x59a959, 0x599f84, 0x5995b1, 0x598bde, 0x59820e, 0x59783e, 0x596e70,
+ 0x5964a3, 0x595ad7, 0x59510d, 0x594744, 0x593d7c, 0x5933b6, 0x5929f1, 0x59202d,
+ 0x59166b, 0x590caa, 0x5902ea, 0x58f92b, 0x58ef6e, 0x58e5b3, 0x58dbf8, 0x58d23f,
+ 0x58c887, 0x58bed0, 0x58b51b, 0x58ab67, 0x58a1b4, 0x589803, 0x588e53, 0x5884a4,
+ 0x587af7, 0x58714b, 0x5867a0, 0x585df6, 0x58544e, 0x584aa7, 0x584101, 0x58375d,
+ 0x582dba, 0x582418, 0x581a77, 0x5810d8, 0x58073a, 0x57fd9d, 0x57f402, 0x57ea68,
+ 0x57e0cf, 0x57d737, 0x57cda1, 0x57c40c, 0x57ba78, 0x57b0e6, 0x57a754, 0x579dc5,
+ 0x579436, 0x578aa9, 0x57811c, 0x577792, 0x576e08, 0x576480, 0x575af9, 0x575173,
+ 0x5747ee, 0x573e6b, 0x5734e9, 0x572b68, 0x5721e9, 0x57186b, 0x570eee, 0x570572,
+ 0x56fbf8, 0x56f27e, 0x56e906, 0x56df90, 0x56d61a, 0x56cca6, 0x56c333, 0x56b9c1,
+ 0x56b051, 0x56a6e2, 0x569d74, 0x569407, 0x568a9b, 0x568131, 0x5677c8, 0x566e60,
+ 0x5664fa, 0x565b95, 0x565231, 0x5648ce, 0x563f6c, 0x56360c, 0x562cad, 0x56234f,
+ 0x5619f2, 0x561097, 0x56073c, 0x55fde3, 0x55f48c, 0x55eb35, 0x55e1e0, 0x55d88c,
+ 0x55cf39, 0x55c5e7, 0x55bc97, 0x55b347, 0x55a9f9, 0x55a0ad, 0x559761, 0x558e17,
+ 0x5584cd, 0x557b86, 0x55723f, 0x5568f9, 0x555fb5, 0x555672, 0x554d30, 0x5543ef,
+ 0x553ab0, 0x553171, 0x552834, 0x551ef8, 0x5515be, 0x550c84, 0x55034c, 0x54fa15,
+ 0x54f0df, 0x54e7aa, 0x54de77, 0x54d544, 0x54cc13, 0x54c2e3, 0x54b9b4, 0x54b087,
+ 0x54a75a, 0x549e2f, 0x549505, 0x548bdc, 0x5482b5, 0x54798e, 0x547069, 0x546745,
+ 0x545e22, 0x545500, 0x544be0, 0x5442c0, 0x5439a2, 0x543085, 0x542769, 0x541e4f,
+ 0x541535, 0x540c1d, 0x540306, 0x53f9f0, 0x53f0db, 0x53e7c7, 0x53deb5, 0x53d5a3,
+ 0x53cc93, 0x53c384, 0x53ba76, 0x53b169, 0x53a85e, 0x539f54, 0x53964a, 0x538d42,
+ 0x53843b, 0x537b36, 0x537231, 0x53692e, 0x53602b, 0x53572a, 0x534e2a, 0x53452b,
+ 0x533c2e, 0x533331, 0x532a36, 0x53213b, 0x531842, 0x530f4a, 0x530654, 0x52fd5e,
+ 0x52f469, 0x52eb76, 0x52e284, 0x52d993, 0x52d0a3, 0x52c7b4, 0x52bec6, 0x52b5d9,
+ 0x52acee, 0x52a404, 0x529b1b, 0x529233, 0x52894c, 0x528066, 0x527781, 0x526e9e,
+ 0x5265bb, 0x525cda, 0x5253fa, 0x524b1b, 0x52423d, 0x523960, 0x523084, 0x5227aa,
+ 0x521ed0, 0x5215f8, 0x520d21, 0x52044b, 0x51fb76, 0x51f2a2, 0x51e9cf, 0x51e0fe,
+ 0x51d82d, 0x51cf5e, 0x51c68f, 0x51bdc2, 0x51b4f6, 0x51ac2b, 0x51a361, 0x519a98,
+ 0x5191d1, 0x51890a, 0x518045, 0x517780, 0x516ebd, 0x5165fb, 0x515d3a, 0x51547a,
+ 0x514bbb, 0x5142fd, 0x513a41, 0x513185, 0x5128cb, 0x512011, 0x511759, 0x510ea2,
+ 0x5105ec, 0x50fd36, 0x50f483, 0x50ebd0, 0x50e31e, 0x50da6d, 0x50d1be, 0x50c90f,
+ 0x50c062, 0x50b7b5, 0x50af0a, 0x50a660, 0x509db7, 0x50950f, 0x508c68, 0x5083c2,
+ 0x507b1d, 0x507279, 0x5069d7, 0x506135, 0x505894, 0x504ff5, 0x504757, 0x503eb9,
+ 0x50361d, 0x502d82, 0x5024e8, 0x501c4f, 0x5013b7, 0x500b20, 0x50028a, 0x4ff9f5,
+ 0x4ff162, 0x4fe8cf, 0x4fe03d, 0x4fd7ad, 0x4fcf1d, 0x4fc68f, 0x4fbe01, 0x4fb575,
+ 0x4facea, 0x4fa460, 0x4f9bd7, 0x4f934e, 0x4f8ac7, 0x4f8241, 0x4f79bc, 0x4f7139,
+ 0x4f68b6, 0x4f6034, 0x4f57b3, 0x4f4f33, 0x4f46b5, 0x4f3e37, 0x4f35bb, 0x4f2d3f,
+ 0x4f24c5, 0x4f1c4b, 0x4f13d3, 0x4f0b5b, 0x4f02e5, 0x4efa70, 0x4ef1fb, 0x4ee988,
+ 0x4ee116, 0x4ed8a5, 0x4ed035, 0x4ec7c6, 0x4ebf58, 0x4eb6ea, 0x4eae7e, 0x4ea613,
+ 0x4e9daa, 0x4e9541, 0x4e8cd9, 0x4e8472, 0x4e7c0c, 0x4e73a7, 0x4e6b43, 0x4e62e1,
+ 0x4e5a7f, 0x4e521e, 0x4e49be, 0x4e4160, 0x4e3902, 0x4e30a5, 0x4e284a, 0x4e1fef,
+ 0x4e1796, 0x4e0f3d, 0x4e06e5, 0x4dfe8f, 0x4df639, 0x4dede5, 0x4de591, 0x4ddd3f,
+ 0x4dd4ed, 0x4dcc9d, 0x4dc44d, 0x4dbbff, 0x4db3b1, 0x4dab65, 0x4da319, 0x4d9acf,
+ 0x4d9285, 0x4d8a3d, 0x4d81f5, 0x4d79af, 0x4d7169, 0x4d6925, 0x4d60e2, 0x4d589f,
+ 0x4d505e, 0x4d481d, 0x4d3fde, 0x4d379f, 0x4d2f62, 0x4d2725, 0x4d1eea, 0x4d16af,
+ 0x4d0e76, 0x4d063d, 0x4cfe05, 0x4cf5cf, 0x4ced99, 0x4ce565, 0x4cdd31, 0x4cd4fe,
+ 0x4ccccd, 0x4cc49c, 0x4cbc6c, 0x4cb43e, 0x4cac10, 0x4ca3e3, 0x4c9bb8, 0x4c938d,
+ 0x4c8b63, 0x4c833a, 0x4c7b12, 0x4c72eb, 0x4c6ac6, 0x4c62a1, 0x4c5a7d, 0x4c525a,
+ 0x4c4a38, 0x4c4217, 0x4c39f7, 0x4c31d7, 0x4c29b9, 0x4c219c, 0x4c1980, 0x4c1165,
+ 0x4c094b, 0x4c0131, 0x4bf919, 0x4bf102, 0x4be8eb, 0x4be0d6, 0x4bd8c1, 0x4bd0ae,
+ 0x4bc89b, 0x4bc089, 0x4bb879, 0x4bb069, 0x4ba85a, 0x4ba04d, 0x4b9840, 0x4b9034,
+ 0x4b8829, 0x4b801f, 0x4b7816, 0x4b700e, 0x4b6807, 0x4b6001, 0x4b57fc, 0x4b4ff7,
+ 0x4b47f4, 0x4b3ff2, 0x4b37f0, 0x4b2ff0, 0x4b27f0, 0x4b1ff2, 0x4b17f4, 0x4b0ff7,
+ 0x4b07fc, 0x4b0001, 0x4af807, 0x4af00e, 0x4ae816, 0x4ae01f, 0x4ad829, 0x4ad034,
+ 0x4ac83f, 0x4ac04c, 0x4ab85a, 0x4ab068, 0x4aa878, 0x4aa088, 0x4a989a, 0x4a90ac,
+ 0x4a88bf, 0x4a80d3, 0x4a78e8, 0x4a70fe, 0x4a6915, 0x4a612d, 0x4a5946, 0x4a5160,
+ 0x4a497a, 0x4a4196, 0x4a39b2, 0x4a31d0, 0x4a29ee, 0x4a220d, 0x4a1a2d, 0x4a124f,
+ 0x4a0a71, 0x4a0294, 0x49fab7, 0x49f2dc, 0x49eb02, 0x49e328, 0x49db50, 0x49d378,
+ 0x49cba2, 0x49c3cc, 0x49bbf7, 0x49b423, 0x49ac50, 0x49a47e, 0x499cad, 0x4994dd,
+ 0x498d0d, 0x49853f, 0x497d71, 0x4975a5, 0x496dd9, 0x49660e, 0x495e44, 0x49567b,
+ 0x494eb3, 0x4946ec, 0x493f25, 0x493760, 0x492f9b, 0x4927d8, 0x492015, 0x491853,
+ 0x491092, 0x4908d2, 0x490113, 0x48f955, 0x48f198, 0x48e9db, 0x48e21f, 0x48da65,
+ 0x48d2ab, 0x48caf2, 0x48c33a, 0x48bb83, 0x48b3cd, 0x48ac18, 0x48a463, 0x489cb0,
+ 0x4894fd, 0x488d4b, 0x48859a, 0x487dea, 0x48763b, 0x486e8d, 0x4866df, 0x485f33,
+ 0x485787, 0x484fdd, 0x484833, 0x48408a, 0x4838e2, 0x48313b, 0x482994, 0x4821ef,
+ 0x481a4a, 0x4812a6, 0x480b04, 0x480362, 0x47fbc1, 0x47f420, 0x47ec81, 0x47e4e3,
+ 0x47dd45, 0x47d5a8, 0x47ce0c, 0x47c672, 0x47bed7, 0x47b73e, 0x47afa6, 0x47a80e,
+ 0x47a078, 0x4798e2, 0x47914d, 0x4789b9, 0x478226, 0x477a93, 0x477302, 0x476b71,
+ 0x4763e2, 0x475c53, 0x4754c5, 0x474d37, 0x4745ab, 0x473e20, 0x473695, 0x472f0b,
+ 0x472783, 0x471ffa, 0x471873, 0x4710ed, 0x470968, 0x4701e3, 0x46fa5f, 0x46f2dc,
+ 0x46eb5a, 0x46e3d9, 0x46dc59, 0x46d4d9, 0x46cd5a, 0x46c5dd, 0x46be60, 0x46b6e4,
+ 0x46af68, 0x46a7ee, 0x46a074, 0x4698fb, 0x469184, 0x468a0c, 0x468296, 0x467b21,
+ 0x4673ac, 0x466c39, 0x4664c6, 0x465d54, 0x4655e3, 0x464e72, 0x464703, 0x463f94,
+ 0x463826, 0x4630b9, 0x46294d, 0x4621e2, 0x461a77, 0x46130e, 0x460ba5, 0x46043d,
+ 0x45fcd6, 0x45f56f, 0x45ee0a, 0x45e6a5, 0x45df41, 0x45d7de, 0x45d07c, 0x45c91a,
+ 0x45c1ba, 0x45ba5a, 0x45b2fb, 0x45ab9d, 0x45a440, 0x459ce4, 0x459588, 0x458e2d,
+ 0x4586d3, 0x457f7a, 0x457822, 0x4570ca, 0x456974, 0x45621e, 0x455ac9, 0x455374,
+ 0x454c21, 0x4544ce, 0x453d7d, 0x45362c, 0x452edb, 0x45278c, 0x45203e, 0x4518f0,
+ 0x4511a3, 0x450a57, 0x45030c, 0x44fbc1, 0x44f477, 0x44ed2e, 0x44e5e6, 0x44de9f,
+ 0x44d759, 0x44d013, 0x44c8ce, 0x44c18a, 0x44ba47, 0x44b305, 0x44abc3, 0x44a482,
+ 0x449d42, 0x449603, 0x448ec5, 0x448787, 0x44804a, 0x44790e, 0x4471d3, 0x446a99,
+ 0x44635f, 0x445c26, 0x4454ee, 0x444db7, 0x444681, 0x443f4b, 0x443816, 0x4430e2,
+ 0x4429af, 0x44227c, 0x441b4b, 0x44141a, 0x440cea, 0x4405ba, 0x43fe8c, 0x43f75e,
+ 0x43f031, 0x43e905, 0x43e1da, 0x43daaf, 0x43d385, 0x43cc5c, 0x43c534, 0x43be0d,
+ 0x43b6e6, 0x43afc0, 0x43a89b, 0x43a177, 0x439a54, 0x439331, 0x438c0f, 0x4384ee,
+ 0x437dcd, 0x4376ae, 0x436f8f, 0x436871, 0x436154, 0x435a37, 0x43531b, 0x434c00,
+ 0x4344e6, 0x433dcd, 0x4336b4, 0x432f9c, 0x432885, 0x43216f, 0x431a5a, 0x431345,
+ 0x430c31, 0x43051e, 0x42fe0b, 0x42f6f9, 0x42efe9, 0x42e8d8, 0x42e1c9, 0x42daba,
+ 0x42d3ad, 0x42cca0, 0x42c593, 0x42be88, 0x42b77d, 0x42b073, 0x42a96a, 0x42a261,
+ 0x429b59, 0x429452, 0x428d4c, 0x428647, 0x427f42, 0x42783e, 0x42713b, 0x426a39,
+ 0x426337, 0x425c36, 0x425536, 0x424e37, 0x424738, 0x42403a, 0x42393d, 0x423241,
+ 0x422b45, 0x42244a, 0x421d50, 0x421657, 0x420f5e, 0x420866, 0x42016f, 0x41fa79,
+ 0x41f383, 0x41ec8e, 0x41e59a, 0x41dea7, 0x41d7b4, 0x41d0c2, 0x41c9d1, 0x41c2e1,
+ 0x41bbf1, 0x41b503, 0x41ae14, 0x41a727, 0x41a03a, 0x41994e, 0x419263, 0x418b79,
+ 0x41848f, 0x417da6, 0x4176be, 0x416fd7, 0x4168f0, 0x41620a, 0x415b25, 0x415440,
+ 0x414d5c, 0x414679, 0x413f97, 0x4138b6, 0x4131d5, 0x412af5, 0x412415, 0x411d37,
+ 0x411659, 0x410f7c, 0x41089f, 0x4101c3, 0x40fae9, 0x40f40e, 0x40ed35, 0x40e65c,
+ 0x40df84, 0x40d8ad, 0x40d1d6, 0x40cb00, 0x40c42b, 0x40bd57, 0x40b683, 0x40afb0,
+ 0x40a8de, 0x40a20c, 0x409b3b, 0x40946b, 0x408d9c, 0x4086cd, 0x408000, 0x407932,
+ 0x407266, 0x406b9a, 0x4064cf, 0x405e05, 0x40573b, 0x405072, 0x4049aa, 0x4042e3,
+ 0x403c1c, 0x403556, 0x402e91, 0x4027cc, 0x402109, 0x401a45, 0x401383, 0x400cc1,
+ 0x400600, 0x3fff40, 0x3ff880, 0x3ff1c2, 0x3feb03, 0x3fe446, 0x3fdd89, 0x3fd6cd,
+ 0x3fd012, 0x3fc957, 0x3fc29d, 0x3fbbe4, 0x3fb52c, 0x3fae74, 0x3fa7bd, 0x3fa107,
+ 0x3f9a51, 0x3f939c, 0x3f8ce8, 0x3f8634, 0x3f7f81, 0x3f78cf, 0x3f721e, 0x3f6b6d,
+ 0x3f64bd, 0x3f5e0e, 0x3f575f, 0x3f50b1, 0x3f4a04, 0x3f4357, 0x3f3cac, 0x3f3601,
+ 0x3f2f56, 0x3f28ac, 0x3f2203, 0x3f1b5b, 0x3f14b3, 0x3f0e0c, 0x3f0766, 0x3f00c1,
+ 0x3efa1c, 0x3ef377, 0x3eecd4, 0x3ee631, 0x3edf8f, 0x3ed8ee, 0x3ed24d, 0x3ecbad,
+ 0x3ec50e, 0x3ebe6f, 0x3eb7d1, 0x3eb134, 0x3eaa97, 0x3ea3fb, 0x3e9d60, 0x3e96c6,
+ 0x3e902c, 0x3e8993, 0x3e82fa, 0x3e7c62, 0x3e75cb, 0x3e6f35, 0x3e689f, 0x3e620a,
+ 0x3e5b76, 0x3e54e2, 0x3e4e4f, 0x3e47bd, 0x3e412b, 0x3e3a9a, 0x3e340a, 0x3e2d7a,
+ 0x3e26eb, 0x3e205d, 0x3e19cf, 0x3e1342, 0x3e0cb6, 0x3e062b, 0x3dffa0, 0x3df916,
+ 0x3df28c, 0x3dec03, 0x3de57b, 0x3ddef4, 0x3dd86d, 0x3dd1e7, 0x3dcb61, 0x3dc4dc,
+ 0x3dbe58, 0x3db7d5, 0x3db152, 0x3daad0, 0x3da44f, 0x3d9dce, 0x3d974e, 0x3d90ce,
+ 0x3d8a4f, 0x3d83d1, 0x3d7d54, 0x3d76d7, 0x3d705b, 0x3d69e0, 0x3d6365, 0x3d5ceb,
+ 0x3d5671, 0x3d4ff9, 0x3d4980, 0x3d4309, 0x3d3c92, 0x3d361c, 0x3d2fa7, 0x3d2932,
+ 0x3d22be, 0x3d1c4a, 0x3d15d7, 0x3d0f65, 0x3d08f4, 0x3d0283, 0x3cfc13, 0x3cf5a3,
+ 0x3cef34, 0x3ce8c6, 0x3ce259, 0x3cdbec, 0x3cd57f, 0x3ccf14, 0x3cc8a9, 0x3cc23f,
+ 0x3cbbd5, 0x3cb56c, 0x3caf04, 0x3ca89c, 0x3ca235, 0x3c9bcf, 0x3c9569, 0x3c8f04,
+ 0x3c889f, 0x3c823c, 0x3c7bd8, 0x3c7576, 0x3c6f14, 0x3c68b3, 0x3c6253, 0x3c5bf3,
+ 0x3c5593, 0x3c4f35, 0x3c48d7, 0x3c427a, 0x3c3c1d, 0x3c35c1, 0x3c2f66, 0x3c290b,
+ 0x3c22b1, 0x3c1c57, 0x3c15ff, 0x3c0fa7, 0x3c094f, 0x3c02f8, 0x3bfca2, 0x3bf64c,
+ 0x3beff7, 0x3be9a3, 0x3be34f, 0x3bdcfc, 0x3bd6aa, 0x3bd058, 0x3bca07, 0x3bc3b7,
+ 0x3bbd67, 0x3bb718, 0x3bb0c9, 0x3baa7b, 0x3ba42e, 0x3b9de1, 0x3b9795, 0x3b914a,
+ 0x3b8aff, 0x3b84b5, 0x3b7e6c, 0x3b7823, 0x3b71db, 0x3b6b93, 0x3b654c, 0x3b5f06,
+ 0x3b58c0, 0x3b527b, 0x3b4c36, 0x3b45f3, 0x3b3faf, 0x3b396d, 0x3b332b, 0x3b2cea,
+ 0x3b26a9, 0x3b2069, 0x3b1a2a, 0x3b13eb, 0x3b0dad, 0x3b076f, 0x3b0132, 0x3afaf6,
+ 0x3af4ba, 0x3aee7f, 0x3ae845, 0x3ae20b, 0x3adbd2, 0x3ad599, 0x3acf61, 0x3ac92a,
+ 0x3ac2f3, 0x3abcbd, 0x3ab688, 0x3ab053, 0x3aaa1f, 0x3aa3eb, 0x3a9db8, 0x3a9786,
+ 0x3a9154, 0x3a8b23, 0x3a84f2, 0x3a7ec2, 0x3a7893, 0x3a7264, 0x3a6c36, 0x3a6609,
+ 0x3a5fdc, 0x3a59b0, 0x3a5384, 0x3a4d59, 0x3a472f, 0x3a4105, 0x3a3adc, 0x3a34b4,
+ 0x3a2e8c, 0x3a2864, 0x3a223e, 0x3a1c18, 0x3a15f2, 0x3a0fcd, 0x3a09a9, 0x3a0385,
+ 0x39fd62, 0x39f740, 0x39f11e, 0x39eafd, 0x39e4dc, 0x39debc, 0x39d89d, 0x39d27e,
+ 0x39cc60, 0x39c642, 0x39c025, 0x39ba09, 0x39b3ed, 0x39add2, 0x39a7b7, 0x39a19d,
+ 0x399b84, 0x39956b, 0x398f53, 0x39893b, 0x398324, 0x397d0e, 0x3976f8, 0x3970e3,
+ 0x396ace, 0x3964ba, 0x395ea7, 0x395894, 0x395282, 0x394c70, 0x39465f, 0x39404f,
+ 0x393a3f, 0x393430, 0x392e21, 0x392813, 0x392206, 0x391bf9, 0x3915ed, 0x390fe1,
+ 0x3909d6, 0x3903cb, 0x38fdc1, 0x38f7b8, 0x38f1af, 0x38eba7, 0x38e5a0, 0x38df99,
+ 0x38d993, 0x38d38d, 0x38cd88, 0x38c783, 0x38c17f, 0x38bb7c, 0x38b579, 0x38af77,
+ 0x38a975, 0x38a374, 0x389d73, 0x389774, 0x389174, 0x388b76, 0x388577, 0x387f7a,
+ 0x38797d, 0x387381, 0x386d85, 0x38678a, 0x38618f, 0x385b95, 0x38559b, 0x384fa2,
+ 0x3849aa, 0x3843b2, 0x383dbb, 0x3837c5, 0x3831cf, 0x382bd9, 0x3825e4, 0x381ff0,
+ 0x3819fd, 0x381409, 0x380e17, 0x380825, 0x380234, 0x37fc43, 0x37f653, 0x37f063,
+ 0x37ea74, 0x37e485, 0x37de97, 0x37d8aa, 0x37d2bd, 0x37ccd1, 0x37c6e5, 0x37c0fa,
+ 0x37bb10, 0x37b526, 0x37af3d, 0x37a954, 0x37a36c, 0x379d84, 0x37979d, 0x3791b6,
+ 0x378bd0, 0x3785eb, 0x378006, 0x377a22, 0x37743e, 0x376e5b, 0x376879, 0x376297,
+ 0x375cb5, 0x3756d5, 0x3750f4, 0x374b15, 0x374535, 0x373f57, 0x373979, 0x37339b,
+ 0x372dbf, 0x3727e2, 0x372206, 0x371c2b, 0x371651, 0x371077, 0x370a9d, 0x3704c4,
+ 0x36feec, 0x36f914, 0x36f33d, 0x36ed66, 0x36e790, 0x36e1ba, 0x36dbe5, 0x36d611,
+ 0x36d03d, 0x36ca69, 0x36c497, 0x36bec4, 0x36b8f3, 0x36b321, 0x36ad51, 0x36a781,
+ 0x36a1b1, 0x369be2, 0x369614, 0x369046, 0x368a79, 0x3684ac, 0x367ee0, 0x367915,
+ 0x36734a, 0x366d7f, 0x3667b5, 0x3661ec, 0x365c23, 0x36565b, 0x365093, 0x364acc,
+ 0x364505, 0x363f3f, 0x363979, 0x3633b4, 0x362df0, 0x36282c, 0x362269, 0x361ca6,
+ 0x3616e4, 0x361122, 0x360b61, 0x3605a0, 0x35ffe0, 0x35fa20, 0x35f461, 0x35eea3,
+ 0x35e8e5, 0x35e328, 0x35dd6b, 0x35d7af, 0x35d1f3, 0x35cc38, 0x35c67d, 0x35c0c3,
+ 0x35bb09, 0x35b550, 0x35af98, 0x35a9e0, 0x35a429, 0x359e72, 0x3598bb, 0x359306,
+ 0x358d50, 0x35879c, 0x3581e8, 0x357c34, 0x357681, 0x3570ce, 0x356b1c, 0x35656b,
+ 0x355fba, 0x355a09, 0x355459, 0x354eaa, 0x3548fb, 0x35434d, 0x353d9f, 0x3537f2,
+ 0x353245, 0x352c99, 0x3526ee, 0x352143, 0x351b98, 0x3515ee, 0x351045, 0x350a9c
+};
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2008, The GROMACS development team.
- * Copyright (c) 2011,2014, by the GROMACS development team, led by
+ * Copyright (c) 2010,2011,2014, 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.
*/
+#include "units.h"
+
#include <stdio.h>
+
#include "gromacs/utility/cstringutil.h"
-#include "physics.h"
double convert2gmx(double x, int unit)
{
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-
-#ifndef _physics_h
-#define _physics_h
+#ifndef GMX_MATH_UNITS_H
+#define GMX_MATH_UNITS_H
/*
* Physical constants to be used in Gromacs.
* be anywhere else in the code.
*/
-#include "../math/utilities.h"
+#include "utilities.h"
#ifdef __cplusplus
extern "C" {
}
#endif
-
-#endif /* _physics_h */
+#endif
*/
#include "gromacs/math/utilities.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
+#include <assert.h>
#include <math.h>
#include <limits.h>
#ifdef HAVE__FINITE
#include <float.h>
#endif
-#include <assert.h>
int gmx_nint(real a)
{
{
if (x < 0)
{
- return (-pow(-x, 1.0/DIM));
+ return (-pow(-x, 1.0/3.0));
}
else
{
- return (pow(x, 1.0/DIM));
+ return (pow(x, 1.0/3.0));
}
}
gmx_bool gmx_isfinite(real gmx_unused x)
{
- gmx_bool returnval = TRUE;
- /* If no suitable function was found, assume the value is
- * finite. */
+ gmx_bool returnval;
#ifdef HAVE__FINITE
returnval = _finite(x);
returnval = isfinite(x);
#elif defined HAVE__ISFINITE
returnval = _isfinite(x);
+#else
+ /* If no suitable function was found, assume the value is
+ * finite. */
+ returnval = TRUE;
#endif
return returnval;
}
gmx_bool gmx_isnan(real x)
{
- /* cppcheck-suppress duplicateExpression */
return x != x;
}
#include <limits.h>
#include <math.h>
-#include "../legacyheaders/types/simple.h"
+#include "../utility/basedefinitions.h"
+#include "../utility/real.h"
#ifdef __cplusplus
extern "C" {
unsigned int
gmx_log2i(unsigned int x);
-/*! /brief Multiply two large ints
+/*! \brief Multiply two large ints
*
- * \return False iff overflow occured
+ * \return False iff overflow occured
*/
gmx_bool
check_int_multiply_for_overflow(gmx_int64_t a,
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifndef _vec_h
-#define _vec_h
+#ifndef GMX_MATH_VEC_H
+#define GMX_MATH_VEC_H
/*
collection of in-line ready operations:
#include <config.h>
#endif
-#include "types/simple.h"
-#include "../math/utilities.h"
-#include "typedefs.h"
-#include "sysstuff.h"
-#include "gmx_fatal.h"
#include <math.h>
-#include "physics.h"
+
+#include "units.h"
+#include "utilities.h"
+#include "vectypes.h"
+
+#include "../utility/basedefinitions.h"
+#include "../utility/fatalerror.h"
+#include "../utility/real.h"
#ifdef __cplusplus
extern "C" {
#define EXP_ADDR(val) (((val)&EXP_MASK)>>EXP_SHIFT)
#define FRACT_ADDR(val) (((val)&(FRACT_MASK|EXP_LSB))>>FRACT_SHIFT)
-extern const unsigned int *gmx_invsqrt_exptab;
-extern const unsigned int *gmx_invsqrt_fracttab;
+extern const unsigned int gmx_invsqrt_exptab[];
+extern const unsigned int gmx_invsqrt_fracttab[];
typedef union
{
b[ZZ] = a[ZZ];
}
-static gmx_inline void copy_rvecn(rvec *a, rvec *b, int startn, int endn)
+static gmx_inline void copy_rvecn(gmx_cxx_const rvec *a, rvec *b, int startn, int endn)
{
int i;
for (i = startn; i < endn; i++)
c[ZZ] = z;
}
-static gmx_inline void copy_mat(matrix a, matrix b)
+static gmx_inline void copy_mat(gmx_cxx_const matrix a, matrix b)
{
copy_rvec(a[XX], b[XX]);
copy_rvec(a[YY], b[YY]);
return atan2(wlen, s);
}
-static gmx_inline void mmul_ur0(matrix a, matrix b, matrix dest)
+static gmx_inline void mmul_ur0(gmx_cxx_const matrix a, gmx_cxx_const matrix b, matrix dest)
{
dest[XX][XX] = a[XX][XX]*b[XX][XX];
dest[XX][YY] = 0.0;
dest[ZZ][ZZ] = a[ZZ][ZZ]*b[ZZ][ZZ];
}
-static gmx_inline void mmul(matrix a, matrix b, matrix dest)
+static gmx_inline void mmul(gmx_cxx_const matrix a, gmx_cxx_const matrix b, matrix dest)
{
dest[XX][XX] = a[XX][XX]*b[XX][XX]+a[XX][YY]*b[YY][XX]+a[XX][ZZ]*b[ZZ][XX];
dest[YY][XX] = a[YY][XX]*b[XX][XX]+a[YY][YY]*b[YY][XX]+a[YY][ZZ]*b[ZZ][XX];
dest[ZZ][ZZ] = a[ZZ][XX]*b[XX][ZZ]+a[ZZ][YY]*b[YY][ZZ]+a[ZZ][ZZ]*b[ZZ][ZZ];
}
-static gmx_inline void transpose(matrix src, matrix dest)
+static gmx_inline void transpose(gmx_cxx_const matrix src, matrix dest)
{
dest[XX][XX] = src[XX][XX];
dest[YY][XX] = src[XX][YY];
dest[ZZ][ZZ] = src[ZZ][ZZ];
}
-static gmx_inline void tmmul(matrix a, matrix b, matrix dest)
+static gmx_inline void tmmul(gmx_cxx_const matrix a, gmx_cxx_const matrix b, matrix dest)
{
/* Computes dest=mmul(transpose(a),b,dest) - used in do_pr_pcoupl */
dest[XX][XX] = a[XX][XX]*b[XX][XX]+a[YY][XX]*b[YY][XX]+a[ZZ][XX]*b[ZZ][XX];
dest[ZZ][ZZ] = a[XX][ZZ]*b[XX][ZZ]+a[YY][ZZ]*b[YY][ZZ]+a[ZZ][ZZ]*b[ZZ][ZZ];
}
-static gmx_inline void mtmul(matrix a, matrix b, matrix dest)
+static gmx_inline void mtmul(gmx_cxx_const matrix a, gmx_cxx_const matrix b, matrix dest)
{
/* Computes dest=mmul(a,transpose(b),dest) - used in do_pr_pcoupl */
dest[XX][XX] = a[XX][XX]*b[XX][XX]+a[XX][YY]*b[XX][YY]+a[XX][ZZ]*b[XX][ZZ];
dest[ZZ][ZZ] = a[ZZ][XX]*b[ZZ][XX]+a[ZZ][YY]*b[ZZ][YY]+a[ZZ][ZZ]*b[ZZ][ZZ];
}
-static gmx_inline real det(matrix a)
+static gmx_inline real det(gmx_cxx_const matrix a)
{
return ( a[XX][XX]*(a[YY][YY]*a[ZZ][ZZ]-a[ZZ][YY]*a[YY][ZZ])
-a[YY][XX]*(a[XX][YY]*a[ZZ][ZZ]-a[ZZ][YY]*a[XX][ZZ])
}
-static gmx_inline void m_add(matrix a, matrix b, matrix dest)
+static gmx_inline void m_add(gmx_cxx_const matrix a, gmx_cxx_const matrix b, matrix dest)
{
dest[XX][XX] = a[XX][XX]+b[XX][XX];
dest[XX][YY] = a[XX][YY]+b[XX][YY];
dest[ZZ][ZZ] = a[ZZ][ZZ]+b[ZZ][ZZ];
}
-static gmx_inline void m_sub(matrix a, matrix b, matrix dest)
+static gmx_inline void m_sub(gmx_cxx_const matrix a, gmx_cxx_const matrix b, matrix dest)
{
dest[XX][XX] = a[XX][XX]-b[XX][XX];
dest[XX][YY] = a[XX][YY]-b[XX][YY];
dest[ZZ][ZZ] = a[ZZ][ZZ]-b[ZZ][ZZ];
}
-static gmx_inline void msmul(matrix m1, real r1, matrix dest)
+static gmx_inline void msmul(gmx_cxx_const matrix m1, real r1, matrix dest)
{
dest[XX][XX] = r1*m1[XX][XX];
dest[XX][YY] = r1*m1[XX][YY];
dest[ZZ][ZZ] = r1*m1[ZZ][ZZ];
}
-static gmx_inline void m_inv_ur0(matrix src, matrix dest)
+static gmx_inline void m_inv_ur0(gmx_cxx_const matrix src, matrix dest)
{
double tmp = src[XX][XX]*src[YY][YY]*src[ZZ][ZZ];
if (fabs(tmp) <= 100*GMX_REAL_MIN)
dest[YY][ZZ] = 0.0;
}
-static gmx_inline void m_inv(matrix src, matrix dest)
+static gmx_inline void m_inv(gmx_cxx_const matrix src, matrix dest)
{
const real smallreal = (real)1.0e-24;
const real largereal = (real)1.0e24;
dest[ZZ][ZZ] = c*(src[XX][XX]*src[YY][YY]-src[YY][XX]*src[XX][YY]);
}
-static gmx_inline void mvmul(matrix a, const rvec src, rvec dest)
+static gmx_inline void mvmul(gmx_cxx_const matrix a, const rvec src, rvec dest)
{
dest[XX] = a[XX][XX]*src[XX]+a[XX][YY]*src[YY]+a[XX][ZZ]*src[ZZ];
dest[YY] = a[YY][XX]*src[XX]+a[YY][YY]*src[YY]+a[YY][ZZ]*src[ZZ];
}
-static gmx_inline void mvmul_ur0(matrix a, const rvec src, rvec dest)
+static gmx_inline void mvmul_ur0(gmx_cxx_const matrix a, const rvec src, rvec dest)
{
dest[ZZ] = a[ZZ][XX]*src[XX]+a[ZZ][YY]*src[YY]+a[ZZ][ZZ]*src[ZZ];
dest[YY] = a[YY][XX]*src[XX]+a[YY][YY]*src[YY];
dest[XX] = a[XX][XX]*src[XX];
}
-static gmx_inline void tmvmul_ur0(matrix a, const rvec src, rvec dest)
+static gmx_inline void tmvmul_ur0(gmx_cxx_const matrix a, const rvec src, rvec dest)
{
dest[XX] = a[XX][XX]*src[XX]+a[YY][XX]*src[YY]+a[ZZ][XX]*src[ZZ];
dest[YY] = a[YY][YY]*src[YY]+a[ZZ][YY]*src[ZZ];
dest[ZZ] = linv*src[ZZ];
}
-static void calc_lll(rvec box, rvec lll)
+static void calc_lll(const rvec box, rvec lll)
{
lll[XX] = 2.0*M_PI/box[XX];
lll[YY] = 2.0*M_PI/box[YY];
lll[ZZ] = 2.0*M_PI/box[ZZ];
}
-static gmx_inline real trace(matrix m)
+static gmx_inline real trace(gmx_cxx_const matrix m)
{
return (m[XX][XX]+m[YY][YY]+m[ZZ][ZZ]);
}
}
/* Operations on multidimensional rvecs, used e.g. in edsam.c */
-static gmx_inline void m_rveccopy(int dim, rvec *a, rvec *b)
+static gmx_inline void m_rveccopy(int dim, gmx_cxx_const rvec *a, rvec *b)
{
/* b = a */
int i;
}
/*computer matrix vectors from base vectors and angles */
-static gmx_inline void matrix_convert(matrix box, rvec vec, rvec angle)
+static gmx_inline void matrix_convert(matrix box, const rvec vec, rvec angle)
{
svmul(DEG2RAD, angle, angle);
box[XX][XX] = vec[XX];
#ifdef __cplusplus
}
-
-static gmx_inline real det(const matrix a)
-{
- return ( a[XX][XX]*(a[YY][YY]*a[ZZ][ZZ]-a[ZZ][YY]*a[YY][ZZ])
- -a[YY][XX]*(a[XX][YY]*a[ZZ][ZZ]-a[ZZ][YY]*a[XX][ZZ])
- +a[ZZ][XX]*(a[XX][YY]*a[YY][ZZ]-a[YY][YY]*a[XX][ZZ]));
-}
-
-static gmx_inline void mvmul(const matrix a, const rvec src, rvec dest)
-{
- dest[XX] = a[XX][XX]*src[XX]+a[XX][YY]*src[YY]+a[XX][ZZ]*src[ZZ];
- dest[YY] = a[YY][XX]*src[XX]+a[YY][YY]*src[YY]+a[YY][ZZ]*src[ZZ];
- dest[ZZ] = a[ZZ][XX]*src[XX]+a[ZZ][YY]*src[YY]+a[ZZ][ZZ]*src[ZZ];
-}
-
-static gmx_inline void tmvmul_ur0(const matrix a, const rvec src, rvec dest)
-{
- dest[XX] = a[XX][XX]*src[XX]+a[YY][XX]*src[YY]+a[ZZ][XX]*src[ZZ];
- dest[YY] = a[YY][YY]*src[YY]+a[ZZ][YY]*src[ZZ];
- dest[ZZ] = a[ZZ][ZZ]*src[ZZ];
-}
-
#endif
-#endif /* _vec_h */
+#endif
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2010, by the GROMACS development team, led by
+ * Copyright (c) 2013,2014, 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.
*/
+#ifndef GMX_MATH_VECTYPES_H
+#define GMX_MATH_VECTYPES_H
-#ifndef _shift_h
-#define _shift_h
+#include "../utility/real.h"
-#include "typedefs.h"
+#define XX 0 /* Defines for indexing in */
+#define YY 1 /* vectors */
+#define ZZ 2
+#define DIM 3 /* Dimension of vectors */
-#ifdef __cplusplus
-extern "C" {
-#endif
+typedef real rvec[DIM];
-real *mk_shift_tab(int n, real r1, real rc, real dr, real *sfac);
-/* Return a table of length n, containing the parabolic
- * shift function from HJC Berendsen
- */
+typedef double dvec[DIM];
-#ifdef __cplusplus
-}
-#endif
+typedef real matrix[DIM][DIM];
+
+typedef real tensor[DIM][DIM];
-#endif /* _shift_h */
+typedef int ivec[DIM];
+
+typedef int imatrix[DIM][DIM];
+
+#endif
#
# This file is part of the GROMACS molecular simulation package.
#
-# Copyright (c) 2010,2012,2013, by the GROMACS development team, led by
+# Copyright (c) 2010,2012,2013,2014, 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.
# the research papers on the package. Check out http://www.gromacs.org.
file(GLOB MDLIB_SOURCES nbnxn_kernels/simd_4xn/*.c nbnxn_kernels/simd_2xnn/*.c nbnxn_kernels/*.c *.c *.cpp)
-set(MDLIB_SOURCES ${MDLIB_SOURCES} PARENT_SCOPE)
if(GMX_GPU)
add_subdirectory(nbnxn_cuda)
- set(GMX_GPU_LIBRARIES ${GMX_GPU_LIBRARIES} nbnxn_cuda PARENT_SCOPE)
endif()
+
+set(MDLIB_SOURCES ${MDLIB_SOURCES} PARENT_SCOPE)
#include "adress.h"
#include "gromacs/math/utilities.h"
-#include "pbc.h"
+#include "gromacs/pbcutil/pbc.h"
#include "types/simple.h"
#include "typedefs.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
real
adress_weight(rvec x,
#include "types/simple.h"
#include "typedefs.h"
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+struct t_pbc;
+
/** \brief calculates the AdResS weight of a particle
*
* \param[in] x position of the particle
real adressr,
real adressw,
rvec * ref,
- t_pbc * pbc,
+ struct t_pbc * pbc,
t_forcerec * fr);
/** \brief update the weight of all coarse-grained particles in several charge groups for com vsites
rvec x[],
t_forcerec * fr,
t_mdatoms * mdatoms,
- t_pbc * pbc);
+ struct t_pbc * pbc);
/** \brief update the weight of all coarse-grained particles for cog vsites
*
rvec x[],
t_forcerec * fr,
t_mdatoms * mdatoms,
- t_pbc * pbc);
+ struct t_pbc * pbc);
/** \brief update the weight of all coarse-grained particles in several charge groups for atom vsites
*
rvec x[],
t_forcerec * fr,
t_mdatoms * mdatoms,
- t_pbc * pbc);
+ struct t_pbc * pbc);
/** \brief update the weight on per atom basis of all coarse-grained particles in several charge groups for atom vsites
*
rvec x[],
t_forcerec * fr,
t_mdatoms * mdatoms,
- t_pbc * pbc);
+ struct t_pbc * pbc);
/** \brief add AdResS IC thermodynamic force to f_novirsum
*
rvec f[],
t_forcerec * fr,
t_mdatoms * mdatoms,
- t_pbc * pbc);
+ struct t_pbc * pbc);
/** \brief checks weather a cpu calculates only coarse-grained or explicit interactions
* \return boolean if coarse-grained or not
*/
gmx_bool egp_coarsegrained(t_forcerec * fr, int egp_nr);
+
+#ifdef __cplusplus
+}
+#endif
+
#endif
* the research papers on the package. Check out http://www.gromacs.org.
*/
/* This file is completely threadsafe - keep it that way! */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdio.h>
#include <stdlib.h>
#include "typedefs.h"
#include "network.h"
-#include "vec.h"
-#include "physics.h"
-#include "main.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/math/units.h"
#include "calcmu.h"
#include "gmx_omp_nthreads.h"
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2013, by the GROMACS development team, led by
+ * Copyright (c) 2013,2014, 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.
* the research papers on the package. Check out http://www.gromacs.org.
*/
/* This file is completely threadsafe - keep it that way! */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
-#include "sysstuff.h"
#include "force.h"
-#include "vec.h"
-#include "mshift.h"
#include "macros.h"
+#include "gromacs/math/vectypes.h"
+#include "gromacs/pbcutil/ishift.h"
+#include "gromacs/pbcutil/mshift.h"
+#include "gromacs/pbcutil/pbc.h"
+
+#define XXXX 0
+#define XXYY 1
+#define XXZZ 2
+#define YYXX 3
+#define YYYY 4
+#define YYZZ 5
+#define ZZXX 6
+#define ZZYY 7
+#define ZZZZ 8
+
static void upd_vir(rvec vir, real dvx, real dvy, real dvz)
{
vir[XX] -= 0.5*dvx;
* the research papers on the package. Check out http://www.gromacs.org.
*/
/* This file is completely threadsafe - keep it that way! */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
-#include "main.h"
+#include <stdlib.h>
+
+#include "types/commrec.h"
#include "constr.h"
#include "copyrite.h"
-#include "physics.h"
-#include "vec.h"
-#include "pbc.h"
-#include "gromacs/utility/smalloc.h"
+#include "gromacs/math/units.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/pbcutil/pbc.h"
#include "mdrun.h"
#include "nrnb.h"
#include "domdec.h"
-#include "mtop_util.h"
+#include "gromacs/topology/mtop_util.h"
#include "gmx_omp_nthreads.h"
#include "gromacs/fileio/gmxfio.h"
-#include "gmx_fatal.h"
+#include "gromacs/topology/block.h"
+#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/gmxomp.h"
+#include "gromacs/utility/smalloc.h"
typedef struct {
int b0; /* first constraint for this thread */
dlen2 = 2*len2 - norm2(dx);
if (dlen2 < wfac*len2 && (nlocat == NULL || nlocat[b]))
{
+ /* not race free - see detailed comment in caller */
*warn = b;
}
if (dlen2 > 0)
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <assert.h>
+#include <stdlib.h>
#include "gromacs/fileio/confio.h"
#include "types/commrec.h"
#include "constr.h"
#include "copyrite.h"
-#include "invblock.h"
-#include "main.h"
#include "mdrun.h"
#include "nrnb.h"
-#include "gromacs/utility/smalloc.h"
-#include "vec.h"
-#include "physics.h"
+#include "gromacs/math/vec.h"
#include "names.h"
#include "txtdump.h"
#include "domdec.h"
#include "gromacs/fileio/pdbio.h"
#include "splitter.h"
-#include "mtop_util.h"
+#include "gromacs/topology/mtop_util.h"
#include "gromacs/fileio/gmxfio.h"
#include "macros.h"
#include "gmx_omp_nthreads.h"
#include "gromacs/essentialdynamics/edsam.h"
#include "gromacs/pulling/pull.h"
-#include "gmx_fatal.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/topology/block.h"
+#include "gromacs/topology/invblock.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
typedef struct gmx_constr {
int ncon_tot; /* The total number of constraints */
j, constr->nblocks, ncons);
for (i = 0; (i < ncons); i++)
{
- fprintf(stderr, "i: %5d sb[i].blocknr: %5u\n", i, sb[i].blocknr);
+ fprintf(stderr, "i: %5d sb[i].blocknr: %5d\n", i, sb[i].blocknr);
}
for (j = 0; (j <= constr->nblocks); j++)
{
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <assert.h>
#include "typedefs.h"
#include "types/commrec.h"
#include "gromacs/utility/smalloc.h"
#include "update.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "macros.h"
-#include "physics.h"
+#include "gromacs/math/units.h"
#include "names.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "txtdump.h"
#include "nrnb.h"
#include "gromacs/random/random.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include <stdio.h>
-#include "vec.h"
+
#include "constr.h"
-#include "gmx_fatal.h"
+
+#include "gromacs/math/vec.h"
+#include "gromacs/pbcutil/ishift.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/smalloc.h"
-#include "pbc.h"
typedef struct
{
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdio.h>
#include <time.h>
#include <assert.h>
#include "typedefs.h"
-#include "gromacs/utility/smalloc.h"
-#include "gmx_fatal.h"
-#include "gmx_fatal_collective.h"
-#include "vec.h"
+#include "network.h"
+#include "gromacs/math/vec.h"
#include "domdec.h"
#include "domdec_network.h"
#include "nrnb.h"
-#include "pbc.h"
#include "chargegroup.h"
#include "constr.h"
#include "mdatoms.h"
#include "mdrun.h"
#include "nsgrid.h"
#include "shellfc.h"
-#include "mtop_util.h"
+#include "gromacs/topology/mtop_util.h"
#include "gmx_ga2la.h"
#include "macros.h"
#include "nbnxn_search.h"
#include "gmx_omp_nthreads.h"
#include "gpu_utils.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/fileio/gmxfio.h"
#include "gromacs/fileio/pdbio.h"
+#include "gromacs/imd/imd.h"
+#include "gromacs/mdlib/nb_verlet.h"
+#include "gromacs/pbcutil/ishift.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/pulling/pull.h"
+#include "gromacs/pulling/pull_rotation.h"
+#include "gromacs/swap/swapcoords.h"
#include "gromacs/timing/wallcycle.h"
+#include "gromacs/utility/basenetwork.h"
+#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/gmxmpi.h"
-#include "gromacs/swap/swapcoords.h"
#include "gromacs/utility/qsort_threadsafe.h"
-#include "gromacs/pulling/pull.h"
-#include "gromacs/pulling/pull_rotation.h"
-#include "gromacs/imd/imd.h"
+#include "gromacs/utility/smalloc.h"
#define DDRANK(dd, rank) (rank)
#define DDMASTERRANK(dd) (dd->masterrank)
snew(grid_r, 2*dd->nnodes);
}
- dd_gather(dd, 2*sizeof(rvec), grid_s[0], DDMASTER(dd) ? grid_r[0] : NULL);
+ dd_gather(dd, 2*sizeof(rvec), grid_s, DDMASTER(dd) ? grid_r : NULL);
if (DDMASTER(dd))
{
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include "typedefs.h"
-#include "vec.h"
-#include "pbc.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/pbcutil/pbc.h"
#include "types/commrec.h"
#include "domdec.h"
#include "domdec_network.h"
#include "nsgrid.h"
#include "network.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
static void calc_cgcm_av_stddev(t_block *cgs, int n, rvec *x, rvec av, rvec stddev,
t_commrec *cr_sum)
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <assert.h>
-#include "gromacs/utility/smalloc.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "constr.h"
#include "types/commrec.h"
#include "domdec.h"
#include "domdec_network.h"
-#include "mtop_util.h"
+#include "gromacs/topology/mtop_util.h"
#include "gmx_ga2la.h"
#include "gmx_hash.h"
#include "gmx_omp_nthreads.h"
#include "macros.h"
-#include "gmx_fatal.h"
+#include "gromacs/pbcutil/ishift.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
typedef struct {
int nsend;
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <string.h>
#include "types/commrec.h"
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdio.h>
#include <assert.h>
#include "types/commrec.h"
#include "network.h"
#include "perf_est.h"
-#include "physics.h"
#include "gromacs/utility/smalloc.h"
#include "typedefs.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "names.h"
/* Margin for setting up the DD grid */
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <string.h>
+
#include "typedefs.h"
-#include "gromacs/utility/smalloc.h"
#include "types/commrec.h"
#include "domdec.h"
#include "domdec_network.h"
#include "names.h"
#include "network.h"
-#include "vec.h"
-#include "pbc.h"
#include "chargegroup.h"
-#include "gromacs/gmxlib/topsort.h"
-#include "mtop_util.h"
-#include "mshift.h"
#include "vsite.h"
#include "gmx_ga2la.h"
#include "force.h"
#include "gmx_omp_nthreads.h"
-#include "gmx_fatal.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/pbcutil/mshift.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/topology/mtop_util.h"
+#include "gromacs/topology/topsort.h"
+#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
/* for dd_init_local_state */
#define NITEM_DD_INIT_LOCAL_STATE 5
* the research papers on the package. Check out http://www.gromacs.org.
*/
/* This file is completely threadsafe - keep it that way! */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include <string.h>
-#include "sysstuff.h"
#include "gromacs/utility/smalloc.h"
#include "typedefs.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "ebin.h"
-#include "main.h"
#include "gromacs/math/utilities.h"
-#include "vec.h"
-#include "physics.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/math/units.h"
t_ebin *mk_ebin(void)
{
eb->e_sim[i].e = 0;
eb->e_sim[i].eav = 0;
eb->e_sim[i].esum = 0;
- eb->enm[i].name = strdup(enm[i-index]);
+ eb->enm[i].name = gmx_strdup(enm[i-index]);
if (unit != NULL)
{
- eb->enm[i].unit = strdup(unit);
+ eb->enm[i].unit = gmx_strdup(unit);
}
else
{
}
}
}
- eb->enm[i].unit = strdup(u);
+ eb->enm[i].unit = gmx_strdup(u);
}
}
{
e[i] = i;
sprintf(buf, "e%d", i);
- ce[i] = strdup(buf);
+ ce[i] = gmx_strdup(buf);
}
ie = get_ebin_space(eb, NE, ce);
add_ebin(eb, ie, NE, e, 0);
{
s[i] = i;
sprintf(buf, "s%d", i);
- cs[i] = strdup(buf);
+ cs[i] = gmx_strdup(buf);
}
is = get_ebin_space(eb, NS, cs);
add_ebin(eb, is, NS, s, 0);
{
t[i] = i;
sprintf(buf, "t%d", i);
- ct[i] = strdup(buf);
+ ct[i] = gmx_strdup(buf);
}
it = get_ebin_space(eb, NT, ct);
add_ebin(eb, it, NT, t, 0);
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
-#include <stdio.h>
#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+
#include "typedefs.h"
#include "types/commrec.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "gromacs/utility/smalloc.h"
-#include "gmx_fatal.h"
-#include "physics.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/math/units.h"
#include "coulomb.h"
#include "macros.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/math/gmxcomplex.h"
#define TOL 2e-5
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
-#include <stdio.h>
#include <math.h>
+#include <stdio.h>
+
#include "typedefs.h"
#include "gromacs/utility/smalloc.h"
#include "names.h"
#include "gromacs/fileio/confio.h"
#include "txtdump.h"
-#include "pbc.h"
#include "chargegroup.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
-#include "mshift.h"
#include "mdrun.h"
#include "update.h"
-#include "physics.h"
-#include "main.h"
+#include "gromacs/math/units.h"
#include "mdatoms.h"
#include "force.h"
#include "bondf.h"
#include "network.h"
#include "calcmu.h"
#include "constr.h"
-#include "xvgr.h"
#include "gromacs/random/random.h"
#include "domdec.h"
#include "macros.h"
#include "gromacs/fileio/trnio.h"
#include "gromacs/fileio/xtcio.h"
#include "gromacs/timing/wallcycle.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/gmxmpi.h"
static void init_df_history_weights(df_history_t *dfhist, t_expanded *expand, int nlim)
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
+#include <assert.h>
#include <math.h>
#include <string.h>
-#include <assert.h>
-#include "sysstuff.h"
+
#include "typedefs.h"
#include "macros.h"
-#include "gromacs/utility/smalloc.h"
-#include "macros.h"
-#include "physics.h"
#include "force.h"
#include "nonbonded.h"
#include "names.h"
#include "network.h"
-#include "pbc.h"
#include "ns.h"
#include "nrnb.h"
#include "bondf.h"
-#include "mshift.h"
#include "txtdump.h"
#include "coulomb.h"
#include "pme.h"
#include "qmmm.h"
#include "gmx_omp_nthreads.h"
+#include "gromacs/legacyheaders/types/commrec.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/pbcutil/ishift.h"
+#include "gromacs/pbcutil/mshift.h"
+#include "gromacs/pbcutil/pbc.h"
#include "gromacs/timing/wallcycle.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
void ns(FILE *fp,
t_forcerec *fr,
where();
*cycles_pme = 0;
+ clear_mat(fr->vir_el_recip);
+ clear_mat(fr->vir_lj_recip);
+
+ /* Do long-range electrostatics and/or LJ-PME, including related short-range
+ * corrections.
+ */
if (EEL_FULL(fr->eeltype) || EVDW_PME(fr->vdwtype))
{
- real Vlr = 0, Vcorr = 0;
- real dvdl_long_range = 0;
- int status = 0;
+ real Vlr = 0, Vcorr = 0;
+ real dvdl_long_range = 0;
+ int status = 0;
+ real Vlr_q = 0, Vlr_lj = 0, Vcorr_q = 0, Vcorr_lj = 0;
+ real dvdl_long_range_q = 0, dvdl_long_range_lj = 0;
bSB = (ir->nwall == 2);
if (bSB)
svmul(ir->wall_ewald_zfac, boxs[ZZ], boxs[ZZ]);
box_size[ZZ] *= ir->wall_ewald_zfac;
}
- }
-
- /* Do long-range electrostatics and/or LJ-PME, including related short-range
- * corrections.
- */
-
- clear_mat(fr->vir_el_recip);
- clear_mat(fr->vir_lj_recip);
-
- if (EEL_FULL(fr->eeltype) || EVDW_PME(fr->vdwtype))
- {
- real Vlr_q = 0, Vlr_lj = 0, Vcorr_q = 0, Vcorr_lj = 0;
- real dvdl_long_range_q = 0, dvdl_long_range_lj = 0;
- int status = 0;
if (EEL_PME_EWALD(fr->eeltype) || EVDW_PME(fr->vdwtype))
{
PRINT_SEPDVDL("Ewald excl. corr. LJ", Vcorr_lj, dvdl_long_range_correction_lj);
enerd->dvdl_lin[efptCOUL] += dvdl_long_range_correction_q;
enerd->dvdl_lin[efptVDW] += dvdl_long_range_correction_lj;
- }
- if ((EEL_PME(fr->eeltype) || EVDW_PME(fr->vdwtype)))
- {
- if (cr->duty & DUTY_PME)
+ if ((EEL_PME(fr->eeltype) || EVDW_PME(fr->vdwtype)) && (cr->duty & DUTY_PME))
{
/* Do reciprocal PME for Coulomb and/or LJ. */
assert(fr->n_tpi >= 0);
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
+#include <assert.h>
#include <math.h>
#include <string.h>
-#include <assert.h>
-#include "sysstuff.h"
+
#include "typedefs.h"
#include "types/commrec.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "gromacs/math/utilities.h"
#include "macros.h"
-#include "gromacs/utility/smalloc.h"
#include "macros.h"
-#include "gmx_fatal.h"
-#include "physics.h"
+#include "gromacs/math/units.h"
#include "force.h"
#include "tables.h"
#include "nonbonded.h"
-#include "invblock.h"
#include "names.h"
#include "network.h"
-#include "pbc.h"
#include "ns.h"
-#include "mshift.h"
#include "txtdump.h"
#include "coulomb.h"
#include "md_support.h"
#include "domdec.h"
#include "qmmm.h"
#include "copyrite.h"
-#include "mtop_util.h"
+#include "gromacs/topology/mtop_util.h"
#include "nbnxn_simd.h"
#include "nbnxn_search.h"
#include "nbnxn_atomdata.h"
#include "gmx_detect_hardware.h"
#include "inputrec.h"
+#include "gromacs/pbcutil/ishift.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
+
#include "types/nbnxn_cuda_types_ext.h"
#include "gpu_utils.h"
-#include "nbnxn_cuda_data_mgmt.h"
+#include "gromacs/mdlib/nbnxn_cuda/nbnxn_cuda_data_mgmt.h"
#include "pmalloc_cuda.h"
+#include "nb_verlet.h"
t_forcerec *mk_forcerec(void)
{
fr->excl_load[t] = i;
}
}
+
+/* Frees GPU memory and destroys the CUDA context.
+ *
+ * Note that this function needs to be called even if GPUs are not used
+ * in this run because the PME ranks have no knowledge of whether GPUs
+ * are used or not, but all ranks need to enter the barrier below.
+ */
+void free_gpu_resources(const t_forcerec *fr,
+ const t_commrec *cr)
+{
+ gmx_bool bIsPPrankUsingGPU;
+ char gpu_err_str[STRLEN];
+
+ bIsPPrankUsingGPU = (cr->duty & DUTY_PP) && fr && fr->nbv && fr->nbv->bUseGPU;
+
+ if (bIsPPrankUsingGPU)
+ {
+ /* free nbnxn data in GPU memory */
+ nbnxn_cuda_free(fr->nbv->cu_nbv);
+
+ /* With tMPI we need to wait for all ranks to finish deallocation before
+ * destroying the context in free_gpu() as some ranks may be sharing
+ * GPU and context.
+ * Note: as only PP ranks need to free GPU resources, so it is safe to
+ * not call the barrier on PME ranks.
+ */
+#ifdef GMX_THREAD_MPI
+ if (PAR(cr))
+ {
+ gmx_barrier(cr);
+ }
+#endif /* GMX_THREAD_MPI */
+
+ /* uninitialize GPU (by destroying the context) */
+ if (!free_gpu(gpu_err_str))
+ {
+ gmx_warning("On rank %d failed to free GPU #%d: %s",
+ cr->nodeid, get_current_gpu_device_id(), gpu_err_str);
+ }
+ }
+}
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include <string.h>
#include "typedefs.h"
#include "types/commrec.h"
-#include "gromacs/utility/smalloc.h"
#include "genborn.h"
-#include "vec.h"
#include "gromacs/fileio/pdbio.h"
#include "names.h"
-#include "physics.h"
+#include "gromacs/math/units.h"
#include "domdec.h"
#include "network.h"
-#include "gmx_fatal.h"
-#include "mtop_util.h"
-#include "pbc.h"
+#include "gromacs/topology/mtop_util.h"
#include "nrnb.h"
#include "bondf.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/pbcutil/ishift.h"
+#include "gromacs/pbcutil/mshift.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/gmxmpi.h"
+#include "gromacs/utility/smalloc.h"
#ifdef GMX_SIMD_X86_SSE2_OR_HIGHER
# ifdef GMX_DOUBLE
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "gromacs/utility/smalloc.h"
#include "network.h"
-#include "physics.h"
+#include "gromacs/math/units.h"
#include "genborn.h"
#include "genborn_allvsall.h"
#ifndef _GENBORN_ALLVSALL_H
#define _GENBORN_ALLVSALL_H
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include "types/simple.h"
#include "typedefs.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "gromacs/utility/smalloc.h"
#include "network.h"
-#include "physics.h"
+#include "gromacs/math/units.h"
#include "genborn.h"
#include "genborn_allvsall.h"
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2009, The GROMACS Development Team.
- * Copyright (c) 2010, by the GROMACS development team, led by
+ * Copyright (c) 2010,2014, 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.
#ifndef _GENBORN_ALLVSALL_SSE2_DOUBLE_H
#define _GENBORN_ALLVSALL_SSE2_DOUBLE_H
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include "types/simple.h"
#include "typedefs.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "types/simple.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "gromacs/utility/smalloc.h"
#include "network.h"
-#include "physics.h"
+#include "gromacs/math/units.h"
#include "genborn.h"
#include "genborn_allvsall.h"
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2009, The GROMACS Development Team.
- * Copyright (c) 2010, by the GROMACS development team, led by
+ * Copyright (c) 2010,2014, 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.
#ifndef _GENBORN_ALLVSALL_SSE2_SINGLE_H
#define _GENBORN_ALLVSALL_SSE2_SINGLE_H
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include "types/simple.h"
#include "typedefs.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include <string.h>
#include "typedefs.h"
#include "gromacs/utility/smalloc.h"
#include "genborn.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "gromacs/fileio/pdbio.h"
#include "names.h"
-#include "physics.h"
+#include "gromacs/math/units.h"
#include "domdec.h"
#include "network.h"
-#include "gmx_fatal.h"
-#include "mtop_util.h"
+#include "gromacs/utility/fatalerror.h"
#include "genborn.h"
#include "gromacs/utility/gmxmpi.h"
#ifndef _genborn_sse2_double_h
#define _genborn_sse2_double_h
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include "typedefs.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include <string.h>
#include "typedefs.h"
#include "gromacs/utility/smalloc.h"
#include "genborn.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "gromacs/fileio/pdbio.h"
#include "names.h"
-#include "physics.h"
+#include "gromacs/math/units.h"
#include "domdec.h"
#include "network.h"
-#include "gmx_fatal.h"
-#include "mtop_util.h"
+#include "gromacs/utility/fatalerror.h"
#include "genborn.h"
#include "gromacs/utility/gmxmpi.h"
#ifndef _genborn_sse_h
#define _genborn_sse_h
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include "typedefs.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include "groupcoord.h"
#include "network.h"
-#include "pbc.h"
-#include "vec.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/math/vec.h"
#include "gromacs/utility/smalloc.h"
#include "gmx_ga2la.h"
* \inlibraryapi
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdio.h>
#include "typedefs.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdio.h>
#include "typedefs.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/utility/smalloc.h"
-#include "vec.h"
-#include "main.h"
+#include "gromacs/math/vec.h"
#include "mvdata.h"
-#include "gmx_fatal.h"
-#include "symtab.h"
+#include "gromacs/utility/fatalerror.h"
#include "txtdump.h"
#include "mdatoms.h"
#include "mdrun.h"
#include "names.h"
-#include "calcgrid.h"
#include "update.h"
#include "mdebin.h"
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2013, by the GROMACS development team, led by
+ * Copyright (c) 2013,2014, 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.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "typedefs.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "mdrun.h"
#include "md_support.h"
#include "md_logging.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+
+#include <algorithm>
+
+#include "config.h"
#include "typedefs.h"
-#include "gromacs/utility/cstringutil.h"
-#include "gromacs/utility/smalloc.h"
#include "mdrun.h"
#include "domdec.h"
-#include "mtop_util.h"
+#include "gromacs/topology/mtop_util.h"
#include "vcm.h"
#include "nrnb.h"
#include "macros.h"
#include "md_support.h"
#include "names.h"
+#include "gromacs/legacyheaders/types/commrec.h"
+#include "gromacs/math/vec.h"
#include "gromacs/timing/wallcycle.h"
+#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/smalloc.h"
/* Is the signal in one simulation independent of other simulations? */
gmx_bool gs_simlocal[eglsNR] = { TRUE, FALSE, FALSE, TRUE };
if (steps_out >= 0 && steps_out < nsteps)
{
char strbuf[255];
- snprintf(strbuf, 255, "Will stop simulation %%d after %s steps (another simulation will end then).\n", "%"GMX_PRId64);
+ snprintf(strbuf, 255, "Will stop simulation %%d after %s steps (another simulation will end then).\n", "%" GMX_PRId64);
fprintf(stderr, strbuf, cr->ms->sim, steps_out);
}
}
{
if (bEqual)
{
- nmin = min(nmin, buf[0]);
+ nmin = std::min(nmin, buf[0]);
}
else
{
int i, gsi;
real gs_buf[eglsNR];
tensor corr_vir, corr_pres;
- gmx_bool bEner, bPres, bTemp, bVV;
- gmx_bool bRerunMD, bStopCM, bGStat, bIterate,
+ gmx_bool bEner, bPres, bTemp;
+ gmx_bool bStopCM, bGStat, bIterate,
bFirstIterate, bReadEkin, bEkinAveVel, bScaleEkin, bConstrain;
- real ekin, temp, prescorr, enercorr, dvdlcorr, dvdl_ekin;
+ real prescorr, enercorr, dvdlcorr, dvdl_ekin;
/* translate CGLO flags to gmx_booleans */
- bRerunMD = flags & CGLO_RERUNMD;
bStopCM = flags & CGLO_STOPCM;
bGStat = flags & CGLO_GSTAT;
{
/* find out between which two value of lambda we should be */
frac = (step*fepvals->delta_lambda);
- fep_state = floor(frac*fepvals->n_lambda);
+ fep_state = static_cast<int>(floor(frac*fepvals->n_lambda));
/* interpolate between this state and the next */
/* this assumes that the initial lambda corresponds to lambda==0, which is verified in grompp */
frac = (frac*fepvals->n_lambda)-fep_state;
frac = (step*fepvals->delta_lambda);
if (fepvals->n_lambda > 0)
{
- fep_state = floor(frac*fepvals->n_lambda);
+ fep_state = static_cast<int>(floor(frac*fepvals->n_lambda));
/* interpolate between this state and the next */
/* this assumes that the initial lambda corresponds to lambda==0, which is verified in grompp */
frac = (frac*fepvals->n_lambda)-fep_state;
void rerun_parallel_comm(t_commrec *cr, t_trxframe *fr,
gmx_bool *bNotLastFrame)
{
- gmx_bool bAlloc;
rvec *xp, *vp;
- bAlloc = (fr->natoms == 0);
-
if (MASTER(cr) && !*bNotLastFrame)
{
fr->natoms = -1;
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "typedefs.h"
#include "mdatoms.h"
#include "gromacs/utility/smalloc.h"
-#include "main.h"
#include "qmmm.h"
-#include "mtop_util.h"
+#include "gromacs/topology/mtop_util.h"
#include "gmx_omp_nthreads.h"
#define ALMOST_ZERO 1e-30
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
-#include <string.h>
#include <float.h>
+#include <stdlib.h>
+#include <string.h>
+
#include "typedefs.h"
#include "mdebin.h"
-#include "gromacs/utility/smalloc.h"
-#include "physics.h"
+#include "gromacs/math/units.h"
#include "gromacs/fileio/enxio.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "disre.h"
-#include "main.h"
#include "network.h"
#include "names.h"
#include "orires.h"
#include "constr.h"
-#include "mtop_util.h"
-#include "xvgr.h"
+#include "gromacs/topology/mtop_util.h"
+#include "gromacs/fileio/xvgr.h"
#include "gromacs/fileio/gmxfio.h"
#include "macros.h"
#include "mdrun.h"
#include "mdebin_bar.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/utility/smalloc.h"
static const char *conrmsd_nm[] = { "Constr. rmsd", "Constr.2 rmsd" };
{
ni = groups->grps[egcTC].nm_ind[i];
sprintf(buf, "T-%s", *(groups->grpname[ni]));
- grpnms[i] = strdup(buf);
+ grpnms[i] = gmx_strdup(buf);
}
md->itemp = get_ebin_space(md->ebin, md->nTC, (const char **)grpnms,
unit_temp_K);
for (j = 0; (j < md->nNHC); j++)
{
sprintf(buf, "Xi-%d-%s", j, bufi);
- grpnms[2*(i*md->nNHC+j)] = strdup(buf);
+ grpnms[2*(i*md->nNHC+j)] = gmx_strdup(buf);
sprintf(buf, "vXi-%d-%s", j, bufi);
- grpnms[2*(i*md->nNHC+j)+1] = strdup(buf);
+ grpnms[2*(i*md->nNHC+j)+1] = gmx_strdup(buf);
}
}
md->itc = get_ebin_space(md->ebin, md->mde_n,
for (j = 0; (j < md->nNHC); j++)
{
sprintf(buf, "Xi-%d-%s", j, bufi);
- grpnms[2*(i*md->nNHC+j)] = strdup(buf);
+ grpnms[2*(i*md->nNHC+j)] = gmx_strdup(buf);
sprintf(buf, "vXi-%d-%s", j, bufi);
- grpnms[2*(i*md->nNHC+j)+1] = strdup(buf);
+ grpnms[2*(i*md->nNHC+j)+1] = gmx_strdup(buf);
}
}
md->itcb = get_ebin_space(md->ebin, md->mdeb_n,
ni = groups->grps[egcTC].nm_ind[i];
bufi = *(groups->grpname[ni]);
sprintf(buf, "Xi-%s", bufi);
- grpnms[2*i] = strdup(buf);
+ grpnms[2*i] = gmx_strdup(buf);
sprintf(buf, "vXi-%s", bufi);
- grpnms[2*i+1] = strdup(buf);
+ grpnms[2*i+1] = gmx_strdup(buf);
}
md->itc = get_ebin_space(md->ebin, md->mde_n,
(const char **)grpnms, unit_invtime);
{
ni = groups->grps[egcTC].nm_ind[i];
sprintf(buf, "Lamb-%s", *(groups->grpname[ni]));
- grpnms[i] = strdup(buf);
+ grpnms[i] = gmx_strdup(buf);
}
md->itc = get_ebin_space(md->ebin, md->mde_n, (const char **)grpnms, "");
}
{
ni = groups->grps[egcACC].nm_ind[i];
sprintf(buf, "Ux-%s", *(groups->grpname[ni]));
- grpnms[3*i+XX] = strdup(buf);
+ grpnms[3*i+XX] = gmx_strdup(buf);
sprintf(buf, "Uy-%s", *(groups->grpname[ni]));
- grpnms[3*i+YY] = strdup(buf);
+ grpnms[3*i+YY] = gmx_strdup(buf);
sprintf(buf, "Uz-%s", *(groups->grpname[ni]));
- grpnms[3*i+ZZ] = strdup(buf);
+ grpnms[3*i+ZZ] = gmx_strdup(buf);
}
md->iu = get_ebin_space(md->ebin, 3*md->nU, (const char **)grpnms, unit_vel);
sfree(grpnms);
if (Nsep > 1)
{
/* and add the closing parenthesis */
- str += sprintf(str, ")");
+ sprintf(str, ")");
}
}
{
/* state for the fep_vals, if we have alchemical sampling */
sprintf(buf, "%s", "Thermodynamic state");
- setname[s] = strdup(buf);
+ setname[s] = gmx_strdup(buf);
s += 1;
}
default:
sprintf(buf, "%s (%s)", "Total Energy", unit_energy);
}
- setname[s] = strdup(buf);
+ setname[s] = gmx_strdup(buf);
s += 1;
}
sprintf(buf, "%s %s = %.4f", dhdl, efpt_singular_names[i],
lam);
}
- setname[s] = strdup(buf);
+ setname[s] = gmx_strdup(buf);
s += 1;
}
}
ir->simtempvals->temperatures[s-(nsetsbegin)],
unit_temp_K);
}
- setname[s] = strdup(buf);
+ setname[s] = gmx_strdup(buf);
s++;
}
if (write_pV)
{
np = sprintf(buf, "pV (%s)", unit_energy);
- setname[nsetsextend-1] = strdup(buf); /* the first entry after
- nsets */
+ setname[nsetsextend-1] = gmx_strdup(buf); /* the first entry after
+ nsets */
}
xvgr_legend(fp, nsetsextend, (const char **)setname, oenv);
nj = groups->grps[egcENER].nm_ind[j];
sprintf(buf, "%s-%s", *(groups->grpname[ni]),
*(groups->grpname[nj]));
- md->print_grpnms[n++] = strdup(buf);
+ md->print_grpnms[n++] = gmx_strdup(buf);
}
}
}
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <string.h>
#include <float.h>
#include <math.h>
#include "typedefs.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "mdebin.h"
#include "gromacs/utility/smalloc.h"
#include "gromacs/fileio/enxio.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
+#include <math.h>
#include <string.h>
#include <time.h>
-#include <math.h>
-#include "sysstuff.h"
-#include "gromacs/utility/cstringutil.h"
+
#include "network.h"
-#include "gromacs/utility/smalloc.h"
#include "nrnb.h"
-#include "main.h"
#include "force.h"
#include "macros.h"
#include "names.h"
-#include "gmx_fatal.h"
#include "txtdump.h"
#include "typedefs.h"
#include "update.h"
#include "constr.h"
-#include "vec.h"
#include "tgroup.h"
#include "mdebin.h"
#include "vsite.h"
#include "domdec.h"
#include "mdatoms.h"
#include "ns.h"
-#include "mtop_util.h"
+#include "gromacs/topology/mtop_util.h"
#include "pme.h"
#include "bondf.h"
#include "gmx_omp_nthreads.h"
#include "md_logging.h"
#include "gromacs/fileio/confio.h"
+#include "gromacs/fileio/mtxio.h"
#include "gromacs/fileio/trajectory_writing.h"
-#include "gromacs/linearalgebra/mtxio.h"
+#include "gromacs/imd/imd.h"
+#include "gromacs/legacyheaders/types/commrec.h"
#include "gromacs/linearalgebra/sparsematrix.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/pbcutil/mshift.h"
+#include "gromacs/pbcutil/pbc.h"
#include "gromacs/timing/wallcycle.h"
#include "gromacs/timing/walltime_accounting.h"
-#include "gromacs/imd/imd.h"
+#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
typedef struct {
t_state s;
}
stepsize = 1.0/fnorm;
- converged = FALSE;
/* Start the loop over BFGS steps.
* Each successful step is counted, and we continue until
#define NB_VERLET_H
#include "nbnxn_pairlist.h"
-#include "nbnxn_cuda_types_ext.h"
+#include "types/nbnxn_cuda_types_ext.h"
#ifdef __cplusplus
extern "C" {
#endif
-/*! Nonbonded NxN kernel types: plain C, CPU SIMD, GPU CUDA, GPU emulation */
+/** Nonbonded NxN kernel types: plain C, CPU SIMD, GPU CUDA, GPU emulation */
typedef enum
{
nbnxnkNotSet = 0,
nbnxnkNR
} nbnxn_kernel_type;
-/*! Return a string indentifying the kernel type */
+/** Return a string indentifying the kernel type */
const char *lookup_nbnxn_kernel_name(int kernel_type);
enum {
enbvClearFNo, enbvClearFYes
};
-typedef struct {
+typedef struct nonbonded_verlet_group_t {
nbnxn_pairlist_set_t nbl_lists; /* pair list(s) */
nbnxn_atomdata_t *nbat; /* atom data */
int kernel_type; /* non-bonded kernel - see enum above */
} nonbonded_verlet_group_t;
/* non-bonded data structure with Verlet-type cut-off */
-typedef struct {
+typedef struct nonbonded_verlet_t {
nbnxn_search_t nbs; /* n vs n atom pair searching data */
int ngrp; /* number of interaction groups */
nonbonded_verlet_group_t grp[2]; /* local and non-local interaction group */
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
+#include <assert.h>
#include <math.h>
+#include <stdlib.h>
#include <string.h>
-#include <assert.h>
-#include "gromacs/utility/smalloc.h"
+
#include "macros.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nbnxn_consts.h"
#include "nbnxn_internal.h"
#include "nbnxn_atomdata.h"
#include "nbnxn_search.h"
-#include "gromacs/utility/gmxomp.h"
#include "gmx_omp_nthreads.h"
#include "thread_mpi/atomic.h"
+#include "gromacs/mdlib/nb_verlet.h"
+#include "gromacs/pbcutil/ishift.h"
+#include "gromacs/utility/gmxomp.h"
+#include "gromacs/utility/smalloc.h"
+
/* Default nbnxn allocation routine, allocates NBNXN_MEM_ALIGN byte aligned */
void nbnxn_alloc_aligned(void **ptr, size_t nbytes)
{
#define _nbnxn_atomdata_h
#include "typedefs.h"
+#include "gromacs/mdlib/nbnxn_pairlist.h"
#ifdef __cplusplus
extern "C" {
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013,2014 by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
#define NBNXN_GPU_CLUSTER_SIZE 8
/* With GPU kernels we group cluster pairs in 4 to optimize memory usage.
- * To change this, also change nbnxn_cj4_t in include/types/nbnxn_pairlist.h.
+ * To change this, also change nbnxn_cj4_t in gromacs/mdlib/nbnxn_pairlist.h.
*/
#define NBNXN_GPU_JGROUP_SIZE 4
#define NBNXN_GPU_JGROUP_SIZE_2LOG 2
#
# This file is part of the GROMACS molecular simulation package.
#
-# Copyright (c) 2012,2013, by the GROMACS development team, led by
+# Copyright (c) 2012,2013,2014, 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.
if(GMX_GPU)
file(GLOB CUDA_NB_SOURCES *.cu)
- CUDA_INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
- CUDA_ADD_LIBRARY(nbnxn_cuda STATIC ${CUDA_NB_SOURCES}
- OPTIONS
- RELWITHDEBINFO -g
- DEBUG -g -D_DEBUG_=1)
- target_link_libraries(nbnxn_cuda cuda_tools)
+ set(MDLIB_SOURCES ${MDLIB_SOURCES} ${CUDA_NB_SOURCES} PARENT_SCOPE)
endif()
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdlib.h>
#include <assert.h>
#include <cuda.h>
#include "types/simple.h"
-#include "types/nbnxn_pairlist.h"
-#include "types/nb_verlet.h"
-#include "types/ishift.h"
+#include "gromacs/mdlib/nbnxn_pairlist.h"
+#include "gromacs/mdlib/nb_verlet.h"
#include "types/force_flags.h"
#include "../nbnxn_consts.h"
#include "nbnxn_cuda_types.h"
#include "../../gmxlib/cuda_tools/cudautils.cuh"
#include "nbnxn_cuda.h"
-#include "nbnxn_cuda_data_mgmt.h"
+#include "gromacs/mdlib/nbnxn_cuda/nbnxn_cuda_data_mgmt.h"
+
+#include "gromacs/pbcutil/ishift.h"
+#include "gromacs/utility/cstringutil.h"
#if defined TEXOBJ_SUPPORTED && __CUDA_ARCH__ >= 300
#define USE_TEXOBJ
if (devinfo->prop.major >= 3)
{
/* Default kernel on sm 3.x 48/16 kB Shared/L1 */
- stat = cudaFuncSetCacheConfig(nb_kfunc_ener_prune_ptr[i][j], cudaFuncCachePreferShared);
- stat = cudaFuncSetCacheConfig(nb_kfunc_ener_noprune_ptr[i][j], cudaFuncCachePreferShared);
- stat = cudaFuncSetCacheConfig(nb_kfunc_noener_prune_ptr[i][j], cudaFuncCachePreferShared);
+ cudaFuncSetCacheConfig(nb_kfunc_ener_prune_ptr[i][j], cudaFuncCachePreferShared);
+ cudaFuncSetCacheConfig(nb_kfunc_ener_noprune_ptr[i][j], cudaFuncCachePreferShared);
+ cudaFuncSetCacheConfig(nb_kfunc_noener_prune_ptr[i][j], cudaFuncCachePreferShared);
stat = cudaFuncSetCacheConfig(nb_kfunc_noener_noprune_ptr[i][j], cudaFuncCachePreferShared);
}
else
{
/* On Fermi prefer L1 gives 2% higher performance */
/* Default kernel on sm_2.x 16/48 kB Shared/L1 */
- stat = cudaFuncSetCacheConfig(nb_kfunc_ener_prune_ptr[i][j], cudaFuncCachePreferL1);
- stat = cudaFuncSetCacheConfig(nb_kfunc_ener_noprune_ptr[i][j], cudaFuncCachePreferL1);
- stat = cudaFuncSetCacheConfig(nb_kfunc_noener_prune_ptr[i][j], cudaFuncCachePreferL1);
+ cudaFuncSetCacheConfig(nb_kfunc_ener_prune_ptr[i][j], cudaFuncCachePreferL1);
+ cudaFuncSetCacheConfig(nb_kfunc_ener_noprune_ptr[i][j], cudaFuncCachePreferL1);
+ cudaFuncSetCacheConfig(nb_kfunc_noener_prune_ptr[i][j], cudaFuncCachePreferL1);
stat = cudaFuncSetCacheConfig(nb_kfunc_noener_noprune_ptr[i][j], cudaFuncCachePreferL1);
}
CU_RET_ERR(stat, "cudaFuncSetCacheConfig failed");
#ifndef NBNXN_CUDA_H
#define NBNXN_CUDA_H
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include "types/nbnxn_cuda_types_ext.h"
#include "types/simple.h"
extern "C" {
#endif
-/*! Launch asynchronously the nonbonded force calculations.
+/*! \brief
+ * Launch asynchronously the nonbonded force calculations.
+ *
* This consists of the following (async) steps launched:
* - upload x and q;
* - upload shift vector;
int gmx_unused flags,
int gmx_unused iloc) FUNC_TERM
-/*! Launch asynchronously the download of nonbonded forces from the GPU
- * (and energies/shift forces if required).
+/*! \brief
+ * Launch asynchronously the download of nonbonded forces from the GPU
+ * (and energies/shift forces if required).
*/
void nbnxn_cuda_launch_cpyback(nbnxn_cuda_ptr_t gmx_unused cu_nb,
const nbnxn_atomdata_t gmx_unused *nbatom,
int gmx_unused flags,
int gmx_unused aloc) FUNC_TERM
-/*! Wait for the asynchronously launched nonbonded calculations and data
- * transfers to finish.
+/*! \brief
+ * Wait for the asynchronously launched nonbonded calculations and data
+ * transfers to finish.
*/
void nbnxn_cuda_wait_gpu(nbnxn_cuda_ptr_t gmx_unused cu_nb,
const nbnxn_atomdata_t gmx_unused *nbatom,
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <assert.h>
#include <stdarg.h>
#include <cuda.h>
-#include "gmx_fatal.h"
-#include "gromacs/utility/smalloc.h"
#include "tables.h"
#include "typedefs.h"
#include "types/enums.h"
-#include "types/nb_verlet.h"
+#include "gromacs/mdlib/nb_verlet.h"
#include "types/interaction_const.h"
#include "types/force_flags.h"
#include "../nbnxn_consts.h"
#include "nbnxn_cuda_types.h"
#include "../../gmxlib/cuda_tools/cudautils.cuh"
-#include "nbnxn_cuda_data_mgmt.h"
+#include "gromacs/mdlib/nbnxn_cuda/nbnxn_cuda_data_mgmt.h"
#include "pmalloc_cuda.h"
#include "gpu_utils.h"
+#include "gromacs/pbcutil/ishift.h"
#include "gromacs/utility/common.h"
+#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
static bool bUseCudaEventBlockingSync = false; /* makes the CPU thread block */
/*! Re-generate the GPU Ewald force table, resets rlist, and update the
* electrostatic type switching to twin cut-off (or back) if needed. */
-void nbnxn_cuda_pme_loadbal_update_param(nbnxn_cuda_ptr_t cu_nb,
- const interaction_const_t *ic)
+void nbnxn_cuda_pme_loadbal_update_param(const nonbonded_verlet_t *nbv,
+ const interaction_const_t *ic)
{
- cu_nbparam_t *nbp = cu_nb->nbparam;
+ if (!nbv || nbv->grp[0].kernel_type != nbnxnk8x8x8_CUDA)
+ {
+ return;
+ }
+ nbnxn_cuda_ptr_t cu_nb = nbv->cu_nbv;
+ cu_nbparam_t *nbp = cu_nb->nbparam;
set_cutoff_parameters(nbp, ic);
return (cu_nb != NULL && cu_nb->bDoTime) ? cu_nb->timings : NULL;
}
-void nbnxn_cuda_reset_timings(nbnxn_cuda_ptr_t cu_nb)
+void nbnxn_cuda_reset_timings(nonbonded_verlet_t* nbv)
{
- if (cu_nb->bDoTime)
+ if (nbv->cu_nbv && nbv->cu_nbv->bDoTime)
{
- init_timings(cu_nb->timings);
+ init_timings(nbv->cu_nbv->timings);
}
}
#include "types/interaction_const.h"
#include "types/nbnxn_cuda_types_ext.h"
#include "types/hw_info.h"
-#include "types/nb_verlet.h"
#ifdef GMX_GPU
#define FUNC_TERM ;
extern "C" {
#endif
-/*! Initializes the data structures related to CUDA nonbonded calculations. */
+struct nonbonded_verlet_group_t;
+struct nbnxn_pairlist_t;
+struct nbnxn_atomdata_t;
+
+/** Initializes the data structures related to CUDA nonbonded calculations. */
FUNC_QUALIFIER
void nbnxn_cuda_init(FILE gmx_unused *fplog,
nbnxn_cuda_ptr_t gmx_unused *p_cu_nb,
/* true of both local and non-local are don on GPU */
gmx_bool gmx_unused bLocalAndNonlocal) FUNC_TERM
-/*! Initializes simulation constant data. */
+/** Initializes simulation constant data. */
FUNC_QUALIFIER
-void nbnxn_cuda_init_const(nbnxn_cuda_ptr_t gmx_unused cu_nb,
- const interaction_const_t gmx_unused *ic,
- const nonbonded_verlet_group_t gmx_unused *nbv_group) FUNC_TERM
+void nbnxn_cuda_init_const(nbnxn_cuda_ptr_t gmx_unused cu_nb,
+ const interaction_const_t gmx_unused *ic,
+ const struct nonbonded_verlet_group_t gmx_unused *nbv_group) FUNC_TERM
-/*! Initializes pair-list data for GPU, called at every pair search step. */
+/** Initializes pair-list data for GPU, called at every pair search step. */
FUNC_QUALIFIER
-void nbnxn_cuda_init_pairlist(nbnxn_cuda_ptr_t gmx_unused cu_nb,
- const nbnxn_pairlist_t gmx_unused *h_nblist,
- int gmx_unused iloc) FUNC_TERM
+void nbnxn_cuda_init_pairlist(nbnxn_cuda_ptr_t gmx_unused cu_nb,
+ const struct nbnxn_pairlist_t gmx_unused *h_nblist,
+ int gmx_unused iloc) FUNC_TERM
-/*! Initializes atom-data on the GPU, called at every pair search step. */
+/** Initializes atom-data on the GPU, called at every pair search step. */
FUNC_QUALIFIER
-void nbnxn_cuda_init_atomdata(nbnxn_cuda_ptr_t gmx_unused cu_nb,
- const nbnxn_atomdata_t gmx_unused *atomdata) FUNC_TERM
+void nbnxn_cuda_init_atomdata(const nbnxn_cuda_ptr_t gmx_unused cu_nb,
+ const struct nbnxn_atomdata_t gmx_unused *atomdata) FUNC_TERM
/*! \brief Update parameters during PP-PME load balancing. */
FUNC_QUALIFIER
-void nbnxn_cuda_pme_loadbal_update_param(nbnxn_cuda_ptr_t gmx_unused cu_nb,
- const interaction_const_t gmx_unused *ic) FUNC_TERM
+void nbnxn_cuda_pme_loadbal_update_param(const struct nonbonded_verlet_t gmx_unused *nbv,
+ const interaction_const_t gmx_unused *ic) FUNC_TERM
-/*! Uploads shift vector to the GPU if the box is dynamic (otherwise just returns). */
+/** Uploads shift vector to the GPU if the box is dynamic (otherwise just returns). */
FUNC_QUALIFIER
-void nbnxn_cuda_upload_shiftvec(nbnxn_cuda_ptr_t gmx_unused cu_nb,
- const nbnxn_atomdata_t gmx_unused *nbatom) FUNC_TERM
+void nbnxn_cuda_upload_shiftvec(nbnxn_cuda_ptr_t gmx_unused cu_nb,
+ const struct nbnxn_atomdata_t gmx_unused *nbatom) FUNC_TERM
-/*! Clears GPU outputs: nonbonded force, shift force and energy. */
+/** Clears GPU outputs: nonbonded force, shift force and energy. */
FUNC_QUALIFIER
void nbnxn_cuda_clear_outputs(nbnxn_cuda_ptr_t gmx_unused cu_nb,
int gmx_unused flags) FUNC_TERM
-/*! Frees all GPU resources used for the nonbonded calculations. */
+/** Frees all GPU resources used for the nonbonded calculations. */
FUNC_QUALIFIER
void nbnxn_cuda_free(nbnxn_cuda_ptr_t gmx_unused cu_nb) FUNC_TERM
-/*! Returns the GPU timings structure or NULL if GPU is not used or timing is off. */
+/** Returns the GPU timings structure or NULL if GPU is not used or timing is off. */
FUNC_QUALIFIER
wallclock_gpu_t * nbnxn_cuda_get_timings(nbnxn_cuda_ptr_t gmx_unused cu_nb)
#ifdef GMX_GPU
}
#endif
-/*! Resets nonbonded GPU timings. */
+/** Resets nonbonded GPU timings. */
FUNC_QUALIFIER
-void nbnxn_cuda_reset_timings(nbnxn_cuda_ptr_t gmx_unused cu_nb) FUNC_TERM
+void nbnxn_cuda_reset_timings(struct nonbonded_verlet_t gmx_unused *nbv) FUNC_TERM
-/*! Calculates the minimum size of proximity lists to improve SM load balance
- with CUDA non-bonded kernels. */
+/** Calculates the minimum size of proximity lists to improve SM load balance
+ * with CUDA non-bonded kernels. */
FUNC_QUALIFIER
int nbnxn_cuda_min_ci_balanced(nbnxn_cuda_ptr_t gmx_unused cu_nb)
#ifdef GMX_GPU
}
#endif
-/*! Returns if analytical Ewald CUDA kernels are used. */
+/** Returns if analytical Ewald CUDA kernels are used. */
FUNC_QUALIFIER
gmx_bool nbnxn_cuda_is_kernel_ewald_analytical(const nbnxn_cuda_ptr_t gmx_unused cu_nb)
#ifdef GMX_GPU
*/
#include "gromacs/math/utilities.h"
+#include "gromacs/pbcutil/ishift.h"
/* Note that floating-point constants in CUDA code should be suffixed
* with f (e.g. 0.5f), to stop the compiler producing intermediate
* code that is in double precision.
#define NBNXN_CUDA_TYPES_H
#include "types/interaction_const.h"
-#include "types/nbnxn_pairlist.h"
+#include "gromacs/mdlib/nbnxn_pairlist.h"
#include "types/nbnxn_cuda_types_ext.h"
#include "../../gmxlib/cuda_tools/cudautils.cuh"
#include "nbnxn_simd.h"
#include "domdec.h"
#include "gromacs/timing/cyclecounter.h"
+#include "gromacs/mdlib/nbnxn_pairlist.h"
/* Bounding box calculations are (currently) always in single precision, so
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
+
+#include "gromacs/pbcutil/ishift.h"
#include "nbnxn_kernel_common.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
#define _nbnxn_kernel_common_h
#include "typedefs.h"
+#include "gromacs/mdlib/nbnxn_pairlist.h"
#ifdef __cplusplus
extern "C" {
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include "typedefs.h"
#include "../nbnxn_kernel_common.h"
#include "gmx_omp_nthreads.h"
#include "types/force_flags.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
/*! \brief Kinds of electrostatic treatments in SIMD Verlet kernels
*/
#else /* {0} */
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#endif /* {0} */
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "types/simple.h"
-#include "gromacs/math/utilities.h"
-#include "vec.h"
#include "typedefs.h"
#include "force.h"
+
+#include "gromacs/math/utilities.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/pbcutil/ishift.h"
+
#include "nbnxn_kernel_gpu_ref.h"
#include "../nbnxn_consts.h"
#include "nbnxn_kernel_common.h"
+#include "gromacs/mdlib/nb_verlet.h"
#define NCL_PER_SUPERCL (NBNXN_GPU_NCLUSTER_PER_SUPERCLUSTER)
#define CL_SIZE (NBNXN_GPU_CLUSTER_SIZE)
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
#define _nbnxn_kernel_gpu_ref_h
#include "typedefs.h"
+#include "gromacs/mdlib/nbnxn_pairlist.h"
#ifdef __cplusplus
extern "C" {
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include <assert.h>
#include "typedefs.h"
-#include "vec.h"
-#include "gromacs/utility/smalloc.h"
#include "force.h"
#include "gmx_omp_nthreads.h"
+
+#include "gromacs/math/vec.h"
+#include "gromacs/pbcutil/ishift.h"
+#include "gromacs/utility/smalloc.h"
+
#include "nbnxn_kernel_ref.h"
#include "../nbnxn_consts.h"
#include "nbnxn_kernel_common.h"
+#include "gromacs/mdlib/nb_verlet.h"
/*! \brief Typedefs for declaring lookup tables of kernel functions.
*/
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
#define _nbnxn_kernel_ref_h
#include "typedefs.h"
+#include "gromacs/mdlib/nbnxn_pairlist.h"
#ifdef __cplusplus
extern "C" {
#undef HALF_LJ
#undef CALC_COULOMB
}
- /* cppcheck-suppress duplicateBranch */
else if (do_coul)
{
#define CALC_COULOMB
#undef HALF_LJ
#undef CALC_COULOMB
}
- /* cppcheck-suppress duplicateBranch */
else if (do_coul)
{
#define CALC_COULOMB
* kernel type 2xnn.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include "typedefs.h"
+#include "gromacs/mdlib/nbnxn_pairlist.h"
#include "gromacs/mdlib/nbnxn_simd.h"
#ifdef GMX_NBNXN_SIMD_2XNN
#include "../nbnxn_kernel_common.h"
#include "gmx_omp_nthreads.h"
#include "types/force_flags.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
/*! \brief Kinds of electrostatic treatments in SIMD Verlet kernels
*/
#else /* GMX_NBNXN_SIMD_2XNN */
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#endif /* GMX_NBNXN_SIMD_2XNN */
#include "typedefs.h"
+#include "gromacs/mdlib/nb_verlet.h"
#include "gromacs/mdlib/nbnxn_simd.h"
#ifdef __cplusplus
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
+#include "gromacs/pbcutil/ishift.h"
#include "gromacs/simd/simd.h"
#include "gromacs/simd/simd_math.h"
#include "gromacs/simd/vector_operations.h"
* kernel type 4xn.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include "typedefs.h"
+#include "gromacs/mdlib/nb_verlet.h"
#include "gromacs/mdlib/nbnxn_simd.h"
#ifdef GMX_NBNXN_SIMD_4XN
#include "../nbnxn_kernel_common.h"
#include "gmx_omp_nthreads.h"
#include "types/force_flags.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
/*! \brief Kinds of electrostatic treatments in SIMD Verlet kernels
*/
#else /* GMX_NBNXN_SIMD_4XN */
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#endif /* GMX_NBNXN_SIMD_4XN */
#include "typedefs.h"
+#include "gromacs/mdlib/nbnxn_pairlist.h"
#include "gromacs/mdlib/nbnxn_simd.h"
#ifdef __cplusplus
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
+#include "gromacs/pbcutil/ishift.h"
#include "gromacs/simd/simd.h"
#include "gromacs/simd/simd_math.h"
#include "gromacs/simd/vector_operations.h"
#ifndef _nbnxn_pairlist_h
#define _nbnxn_pairlist_h
-#include "nblist.h"
+#include "thread_mpi/atomic.h"
+#include "types/nblist.h"
#ifdef __cplusplus
extern "C" {
*/
} nbnxn_excl_t;
-typedef struct {
+typedef struct nbnxn_pairlist_t {
gmx_cache_protect_t cp0;
nbnxn_alloc_t *alloc;
ljcrGEOM, ljcrLB, ljcrNONE, ljcrNR
};
-/* TODO: Remove need for forward declare */
-struct tMPI_Atomic;
-
-typedef struct {
+typedef struct nbnxn_atomdata_t {
nbnxn_alloc_t *alloc;
nbnxn_free_t *free;
int ntype; /* The number of different atom types */
gmx_bool bUseBufferFlags; /* Use the flags or operate on all atoms */
nbnxn_buffer_flags_t buffer_flags; /* Flags for buffer zeroing+reduc. */
gmx_bool bUseTreeReduce; /* Use tree for force reduction */
- struct tMPI_Atomic *syncStep; /* Synchronization step for tree reduce */
+ tMPI_Atomic_t *syncStep; /* Synchronization step for tree reduce */
} nbnxn_atomdata_t;
#ifdef __cplusplus
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include <string.h>
#include <assert.h>
-#include "sysstuff.h"
-#include "gromacs/utility/smalloc.h"
#include "types/commrec.h"
#include "macros.h"
#include "gromacs/math/utilities.h"
-#include "vec.h"
-#include "pbc.h"
+#include "gromacs/math/vec.h"
#include "nbnxn_consts.h"
/* nbnxn_internal.h included gromacs/simd/macros.h */
#include "nbnxn_internal.h"
#include "nrnb.h"
#include "ns.h"
-#include "gromacs/fileio/gmxfio.h"
+#include "gromacs/pbcutil/ishift.h"
+#include "gromacs/mdlib/nb_verlet.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/utility/smalloc.h"
#ifdef NBNXN_SEARCH_BB_SIMD4
/* Always use 4-wide SIMD for bounding box calculations */
int cxy_start, int cxy_end,
int *sort_work)
{
- int cxy;
- int cx, cy, cz = -1, c = -1, ncz;
- int na, ash, na_c, ind, a;
- int subdiv_z, sub_z, na_z, ash_z;
- int subdiv_y, sub_y, na_y, ash_y;
- int subdiv_x, sub_x, na_x, ash_x;
+ int cxy;
+ int cx, cy, cz = -1, c = -1, ncz;
+ int na, ash, na_c, ind, a;
+ int subdiv_z, sub_z, na_z, ash_z;
+ int subdiv_y, sub_y, na_y, ash_y;
+ int subdiv_x, sub_x, na_x, ash_x;
- /* cppcheck-suppress unassignedVariable */
nbnxn_bb_t bb_work_array[2], *bb_work_aligned;
bb_work_aligned = (nbnxn_bb_t *)(((size_t)(bb_work_array+1)) & (~((size_t)15)));
#define _nbnxn_search_h
#include "typedefs.h"
+#include "nbnxn_pairlist.h"
#ifdef __cplusplus
extern "C" {
float d2;
int xind_f, xind_l, cj;
+ /* cppcheck-suppress selfAssignment . selfAssignment for width 4.*/
cjf = CI_TO_CJ_SIMD_4XN(cjf);
cjl = CI_TO_CJ_SIMD_4XN(cjl+1) - 1;
#ifndef _nbnxn_simd_h
#define _nbnxn_simd_h
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include "typedefs.h"
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include "typedefs.h"
#include "types/nlistheuristics.h"
-#include "gmx_fatal.h"
-#include "vec.h"
+
+#include "gromacs/math/vec.h"
+#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/fatalerror.h"
void reset_nlistheuristics(gmx_nlheur_t *nlh, gmx_int64_t step)
{
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
+#include <stdlib.h>
#include <string.h>
-#include "sysstuff.h"
-#include "gromacs/utility/smalloc.h"
+
#include "macros.h"
#include "gromacs/math/utilities.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "types/commrec.h"
#include "network.h"
#include "nsgrid.h"
#include "force.h"
#include "nonbonded.h"
#include "ns.h"
-#include "pbc.h"
#include "names.h"
-#include "gmx_fatal.h"
#include "nrnb.h"
#include "txtdump.h"
-#include "mtop_util.h"
+#include "gromacs/topology/mtop_util.h"
#include "domdec.h"
#include "adress.h"
+#include "gromacs/pbcutil/ishift.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
/*
* E X C L U S I O N H A N D L I N G
gmx_ns_t *ns;
atom_id **nl_lr_ljc, **nl_lr_one, **nl_sr;
int *nlr_ljc, *nlr_one, *nsr;
- gmx_domdec_t *dd = NULL;
+ gmx_domdec_t *dd;
t_block *cgs = &(top->cgs);
int *cginfo = fr->cginfo;
/* atom_id *i_atoms,*cgsindex=cgs->index; */
ns = &fr->ns;
bDomDec = DOMAINDECOMP(cr);
- if (bDomDec)
- {
- dd = cr->dd;
- }
+ dd = cr->dd;
bTriclinicX = ((YY < grid->npbcdim &&
(!bDomDec || dd->nc[YY] == 1) && box[YY][XX] != 0) ||
* the research papers on the package. Check out http://www.gromacs.org.
*/
/* This file is completely threadsafe - keep it that way! */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdlib.h>
-#include "sysstuff.h"
#include "typedefs.h"
#include "types/commrec.h"
#include "macros.h"
#include "gromacs/utility/smalloc.h"
#include "nsgrid.h"
-#include "gmx_fatal.h"
-#include "vec.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/math/vec.h"
#include "network.h"
#include "domdec.h"
-#include "pbc.h"
+#include "gromacs/pbcutil/pbc.h"
#include <stdio.h>
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/fileio/pdbio.h"
/***********************************
*/
/* Determine the shift for the corners of the triclinic box */
add_tric = izones_size[j]*box[j][i]/box[j][j];
- if (dd && dd->ndim == 1 && j == ZZ)
+ if (dd->ndim == 1 && j == ZZ)
{
/* With 1D domain decomposition the cg's are not in
* the triclinic box, but trilinic x-y and rectangular y-z.
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
+#include "gromacs/math/vec.h"
+#include "gromacs/topology/topology.h"
+#include "gromacs/utility/fatalerror.h"
+
#include "perf_est.h"
-#include "physics.h"
-#include "vec.h"
-#include "mtop_util.h"
#include "types/commrec.h"
#include "nbnxn_search.h"
#include "nbnxn_consts.h"
-
/* Computational cost of bonded, non-bonded and PME calculations.
* This will be machine dependent.
* The numbers here are accurate for Intel Core2 and AMD Athlon 64
* /Erik 001109
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
+#include <assert.h>
+#include <math.h>
#include <stdio.h>
+#include <stdlib.h>
#include <string.h>
-#include <math.h>
-#include <assert.h>
+
#include "typedefs.h"
#include "txtdump.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "gromacs/utility/smalloc.h"
#include "coulomb.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "pme.h"
#include "network.h"
-#include "physics.h"
+#include "gromacs/math/units.h"
#include "nrnb.h"
#include "macros.h"
+#include "gromacs/legacyheaders/types/commrec.h"
#include "gromacs/fft/parallel_3dfft.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/fileio/pdbio.h"
#include "gromacs/math/gmxcomplex.h"
#include "gromacs/timing/cyclecounter.h"
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdio.h>
#include "typedefs.h"
#include "types/commrec.h"
#include "gromacs/utility/smalloc.h"
-#include "gmx_fatal.h"
-#include "vec.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/math/vec.h"
#include "pme.h"
#include "network.h"
#include "domdec.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#ifdef GMX_QMMM_GAMESS
#include <math.h>
-#include "sysstuff.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
#include "typedefs.h"
#include "macros.h"
#include "gromacs/utility/smalloc.h"
-#include "physics.h"
-#include "macros.h"
-#include "vec.h"
+#include "gromacs/math/units.h"
+#include "gromacs/math/vec.h"
#include "force.h"
-#include "invblock.h"
#include "gromacs/fileio/confio.h"
#include "names.h"
#include "network.h"
-#include "pbc.h"
#include "ns.h"
#include "nrnb.h"
#include "bondf.h"
-#include "mshift.h"
#include "txtdump.h"
#include "qmmm.h"
-#include <stdio.h>
-#include <string.h>
-#include "gmx_fatal.h"
-#include "typedefs.h"
-#include <stdlib.h>
+#include "gromacs/utility/fatalerror.h"
/* QMMM sub routines */
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#ifdef GMX_QMMM_GAUSSIAN
#include <math.h>
-#include "sysstuff.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
#include "typedefs.h"
#include "macros.h"
#include "gromacs/utility/smalloc.h"
-#include "physics.h"
-#include "macros.h"
-#include "vec.h"
+#include "gromacs/math/units.h"
+#include "gromacs/math/vec.h"
#include "force.h"
-#include "invblock.h"
#include "gromacs/fileio/confio.h"
#include "names.h"
#include "network.h"
-#include "pbc.h"
#include "ns.h"
#include "nrnb.h"
#include "bondf.h"
-#include "mshift.h"
#include "txtdump.h"
#include "qmmm.h"
-#include <stdio.h>
-#include <string.h>
-#include "gmx_fatal.h"
-#include "typedefs.h"
-#include <stdlib.h>
+#include "gromacs/utility/fatalerror.h"
/* TODO: this should be made thread-safe */
if (buf)
{
- qm->gauss_dir = strdup(buf);
+ qm->gauss_dir = gmx_strdup(buf);
}
else
{
buf = getenv("GMX_QM_GAUSS_EXE");
if (buf)
{
- qm->gauss_exe = strdup(buf);
+ qm->gauss_exe = gmx_strdup(buf);
}
else
{
buf = getenv("GMX_QM_MODIFIED_LINKS_DIR");
if (buf)
{
- qm->devel_dir = strdup (buf);
+ qm->devel_dir = gmx_strdup (buf);
}
else
{
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#ifdef GMX_QMMM_MOPAC
#include <math.h>
-#include "sysstuff.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
#include "typedefs.h"
#include "macros.h"
#include "gromacs/utility/smalloc.h"
-#include "physics.h"
-#include "macros.h"
-#include "vec.h"
+#include "gromacs/math/units.h"
+#include "gromacs/math/vec.h"
#include "force.h"
-#include "invblock.h"
#include "gromacs/fileio/confio.h"
#include "names.h"
#include "network.h"
-#include "pbc.h"
#include "ns.h"
#include "nrnb.h"
#include "bondf.h"
-#include "mshift.h"
#include "txtdump.h"
#include "qmmm.h"
-#include <stdio.h>
-#include <string.h>
-#include "gmx_fatal.h"
-#include "typedefs.h"
-#include <stdlib.h>
+#include "gromacs/utility/fatalerror.h"
/* mopac interface routines */
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
-#include "sysstuff.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
#include "typedefs.h"
#include "macros.h"
#include "gromacs/utility/smalloc.h"
-#include "physics.h"
-#include "macros.h"
-#include "vec.h"
+#include "gromacs/math/units.h"
+#include "gromacs/math/vec.h"
#include "force.h"
-#include "invblock.h"
#include "gromacs/fileio/confio.h"
#include "names.h"
#include "network.h"
-#include "pbc.h"
#include "ns.h"
#include "nrnb.h"
#include "bondf.h"
-#include "mshift.h"
#include "txtdump.h"
#include "qmmm.h"
-#include <stdio.h>
-#include <string.h>
-#include "gmx_fatal.h"
-#include "typedefs.h"
-#include <stdlib.h>
+#include "gromacs/utility/fatalerror.h"
/* ORCA interface routines */
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
-#include "sysstuff.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
#include "typedefs.h"
#include "types/commrec.h"
#include "macros.h"
-#include "gromacs/utility/smalloc.h"
-#include "physics.h"
+#include "gromacs/math/units.h"
#include "macros.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "force.h"
-#include "invblock.h"
#include "gromacs/fileio/confio.h"
#include "names.h"
#include "network.h"
-#include "pbc.h"
#include "ns.h"
#include "nrnb.h"
#include "bondf.h"
-#include "mshift.h"
#include "txtdump.h"
#include "qmmm.h"
-#include <stdio.h>
-#include <string.h>
-#include "gmx_fatal.h"
#include "typedefs.h"
-#include <stdlib.h>
-#include "mtop_util.h"
+#include "gromacs/topology/mtop_util.h"
+#include "gromacs/pbcutil/ishift.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
/* declarations of the interfaces to the QM packages. The _SH indicate
* the QM interfaces can be used for Surface Hopping simulations
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
-#include "sysstuff.h"
#include "typedefs.h"
#include "force.h"
#include "names.h"
-#include "vec.h"
-#include "physics.h"
#include "copyrite.h"
-#include "pbc.h"
+
+#include "gromacs/pbcutil/ishift.h"
+#include "gromacs/pbcutil/mshift.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/math/units.h"
+#include "gromacs/math/vec.h"
real RF_excl_correction(const t_forcerec *fr, t_graph *g,
const t_mdatoms *mdatoms, const t_blocka *excl,
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
-#include "sysstuff.h"
+
#include "typedefs.h"
#include "gromacs/utility/smalloc.h"
-#include "pbc.h"
#include "txtdump.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
#include "constr.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
+#include <stdlib.h>
#include <string.h>
+
#include "typedefs.h"
#include "types/commrec.h"
-#include "gromacs/utility/smalloc.h"
-#include "gmx_fatal.h"
-#include "vec.h"
#include "txtdump.h"
#include "force.h"
#include "mdrun.h"
#include "names.h"
#include "constr.h"
#include "domdec.h"
-#include "physics.h"
+#include "gromacs/math/units.h"
#include "shellfc.h"
-#include "mtop_util.h"
+#include "gromacs/topology/mtop_util.h"
#include "chargegroup.h"
#include "macros.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/pbcutil/mshift.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
typedef struct {
int nnucl;
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <assert.h>
#include <math.h>
#include "typedefs.h"
#include "gromacs/utility/cstringutil.h"
-#include "gromacs/utility/smalloc.h"
#include "names.h"
#include "txtdump.h"
-#include "pbc.h"
+#include "gromacs/pbcutil/pbc.h"
#include "chargegroup.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "nrnb.h"
-#include "mshift.h"
#include "mdrun.h"
#include "sim_util.h"
#include "update.h"
-#include "physics.h"
-#include "main.h"
+#include "gromacs/math/units.h"
#include "mdatoms.h"
#include "force.h"
#include "bondf.h"
#include "network.h"
#include "calcmu.h"
#include "constr.h"
-#include "xvgr.h"
#include "copyrite.h"
#include "domdec.h"
#include "genborn.h"
#include "../gmxlib/nonbonded/nb_kernel.h"
#include "../gmxlib/nonbonded/nb_free_energy.h"
+#include "gromacs/legacyheaders/types/commrec.h"
+#include "gromacs/mdlib/nbnxn_cuda/nbnxn_cuda_data_mgmt.h"
+#include "gromacs/pbcutil/ishift.h"
+#include "gromacs/pbcutil/mshift.h"
#include "gromacs/timing/wallcycle.h"
#include "gromacs/timing/walltime_accounting.h"
#include "gromacs/utility/gmxmpi.h"
+#include "gromacs/utility/smalloc.h"
#include "gromacs/essentialdynamics/edsam.h"
#include "gromacs/pulling/pull.h"
#include "gromacs/pulling/pull_rotation.h"
#include "gmx_omp_nthreads.h"
-#include "nbnxn_cuda_data_mgmt.h"
#include "nbnxn_cuda/nbnxn_cuda.h"
+#include "nb_verlet.h"
+
void print_time(FILE *out,
gmx_walltime_accounting_t walltime_accounting,
gmx_int64_t step,
wallcycle_sub_stop(wcycle, ewcsNONBONDED);
}
+gmx_bool use_GPU(const nonbonded_verlet_t *nbv)
+{
+ return nbv != NULL && nbv->bUseGPU;
+}
+
void do_force_cutsVERLET(FILE *fplog, t_commrec *cr,
t_inputrec *inputrec,
gmx_int64_t step, t_nrnb *nrnb, gmx_wallcycle_t wcycle,
t_inputrec *inputrec,
t_nrnb nrnb[], gmx_wallcycle_t wcycle,
gmx_walltime_accounting_t walltime_accounting,
- wallclock_gpu_t *gputimes,
+ nonbonded_verlet_t *nbv,
gmx_bool bWriteStat)
{
int i, j;
if (SIMMASTER(cr))
{
+ wallclock_gpu_t* gputimes = use_GPU(nbv) ?
+ nbnxn_cuda_get_timings(nbv->cu_nbv) : NULL;
wallcycle_print(fplog, cr->nnodes, cr->npmenodes,
elapsed_time_over_all_ranks,
wcycle, gputimes);
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <string.h>
#include <stdio.h>
#include "typedefs.h"
#include "types/commrec.h"
-#include "sysstuff.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "network.h"
#include "txtdump.h"
#include "names.h"
-#include "physics.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "gromacs/math/utilities.h"
-#include "main.h"
#include "force.h"
#include "vcm.h"
#include "gromacs/utility/smalloc.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
#include "network.h"
#include "rbin.h"
#include "tgroup.h"
#include "domdec.h"
#include "constr.h"
#include "checkpoint.h"
-#include "xvgr.h"
#include "md_support.h"
#include "mdrun.h"
#include "sim_util.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "gromacs/math/utilities.h"
#include "typedefs.h"
#include "names.h"
#include "gromacs/utility/smalloc.h"
-#include "gmx_fatal.h"
-#include "gromacs/fileio/futil.h"
-#include "xvgr.h"
-#include "vec.h"
-#include "main.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/futil.h"
+#include "gromacs/fileio/xvgr.h"
+#include "gromacs/math/vec.h"
#include "network.h"
-#include "physics.h"
+#include "gromacs/math/units.h"
#include "force.h"
#include "gromacs/fileio/gmxfio.h"
#include "macros.h"
* the research papers on the package. Check out http://www.gromacs.org.
*/
/* This file is completely threadsafe - keep it that way! */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "macros.h"
-#include "main.h"
#include "gromacs/utility/smalloc.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
#include "tgroup.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "network.h"
#include "update.h"
#include "rbin.h"
-#include "mtop_util.h"
+#include "gromacs/topology/mtop_util.h"
#include "gmx_omp_nthreads.h"
static void init_grptcstat(int ngtc, t_grp_tcstat tcstat[])
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
+#include <math.h>
+#include <stdlib.h>
#include <string.h>
#include <time.h>
-#include <math.h>
-#include "sysstuff.h"
+
#include "network.h"
#include "gromacs/utility/smalloc.h"
#include "nrnb.h"
-#include "main.h"
#include "chargegroup.h"
#include "force.h"
#include "macros.h"
#include "names.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "txtdump.h"
#include "typedefs.h"
#include "update.h"
#include "constr.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "tgroup.h"
#include "mdebin.h"
#include "vsite.h"
#include "mdrun.h"
#include "domdec.h"
#include "gromacs/random/random.h"
-#include "physics.h"
-#include "xvgr.h"
+#include "gromacs/math/units.h"
+#include "gromacs/fileio/xvgr.h"
#include "mdatoms.h"
#include "ns.h"
-#include "mtop_util.h"
+#include "gromacs/topology/mtop_util.h"
#include "pme.h"
#include "gromacs/gmxlib/conformation-utilities.h"
+#include "gromacs/legacyheaders/types/commrec.h"
#include "gromacs/fileio/confio.h"
#include "gromacs/fileio/gmxfio.h"
#include "gromacs/fileio/trxio.h"
snew(leg, 4+nener);
e = 0;
sprintf(str, "-kT log(<Ve\\S-\\betaU\\N>/<V>)");
- leg[e++] = strdup(str);
+ leg[e++] = gmx_strdup(str);
sprintf(str, "f. -kT log<e\\S-\\betaU\\N>");
- leg[e++] = strdup(str);
+ leg[e++] = gmx_strdup(str);
sprintf(str, "f. <e\\S-\\betaU\\N>");
- leg[e++] = strdup(str);
+ leg[e++] = gmx_strdup(str);
sprintf(str, "f. V");
- leg[e++] = strdup(str);
+ leg[e++] = gmx_strdup(str);
sprintf(str, "f. <Ue\\S-\\betaU\\N>");
- leg[e++] = strdup(str);
+ leg[e++] = gmx_strdup(str);
for (i = 0; i < ngid; i++)
{
sprintf(str, "f. <U\\sVdW %s\\Ne\\S-\\betaU\\N>",
*(groups->grpname[groups->grps[egcENER].nm_ind[i]]));
- leg[e++] = strdup(str);
+ leg[e++] = gmx_strdup(str);
}
if (bDispCorr)
{
sprintf(str, "f. <U\\sdisp c\\Ne\\S-\\betaU\\N>");
- leg[e++] = strdup(str);
+ leg[e++] = gmx_strdup(str);
}
if (bCharge)
{
{
sprintf(str, "f. <U\\sCoul %s\\Ne\\S-\\betaU\\N>",
*(groups->grpname[groups->grps[egcENER].nm_ind[i]]));
- leg[e++] = strdup(str);
+ leg[e++] = gmx_strdup(str);
}
if (bRFExcl)
{
sprintf(str, "f. <U\\sRF excl\\Ne\\S-\\betaU\\N>");
- leg[e++] = strdup(str);
+ leg[e++] = gmx_strdup(str);
}
if (EEL_FULL(fr->eeltype))
{
sprintf(str, "f. <U\\sCoul recip\\Ne\\S-\\betaU\\N>");
- leg[e++] = strdup(str);
+ leg[e++] = gmx_strdup(str);
}
}
xvgr_legend(fp_tpi, 4+nener, (const char**)leg, oenv);
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdio.h>
#include <math.h>
#include "types/commrec.h"
-#include "sysstuff.h"
-#include "gromacs/utility/smalloc.h"
#include "typedefs.h"
#include "nrnb.h"
-#include "physics.h"
+#include "gromacs/math/units.h"
#include "macros.h"
-#include "vec.h"
-#include "main.h"
+#include "gromacs/math/vec.h"
#include "update.h"
#include "gromacs/random/random.h"
-#include "mshift.h"
#include "tgroup.h"
#include "force.h"
#include "names.h"
#include "gmx_omp_nthreads.h"
#include "gromacs/fileio/confio.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/pbcutil/mshift.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/pulling/pull.h"
#include "gromacs/timing/wallcycle.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/utility/gmxomp.h"
-#include "gromacs/pulling/pull.h"
+#include "gromacs/utility/smalloc.h"
/*For debugging, start at v(-dt/2) for velolcity verlet -- uncomment next line */
/*#define STARTFROMDT2*/
* the research papers on the package. Check out http://www.gromacs.org.
*/
/* This file is completely threadsafe - keep it that way! */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include "macros.h"
#include "vcm.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "gromacs/utility/smalloc.h"
#include "names.h"
#include "txtdump.h"
#include "network.h"
-#include "pbc.h"
+#include "gromacs/pbcutil/pbc.h"
t_vcm *init_vcm(FILE *fp, gmx_groups_t *groups, t_inputrec *ir)
{
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdio.h>
+
#include "typedefs.h"
+#include "types/commrec.h"
#include "vsite.h"
#include "macros.h"
-#include "gromacs/utility/smalloc.h"
#include "nrnb.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "network.h"
-#include "mshift.h"
-#include "pbc.h"
#include "domdec.h"
-#include "mtop_util.h"
+#include "gromacs/topology/mtop_util.h"
#include "gmx_omp_nthreads.h"
+#include "gromacs/pbcutil/ishift.h"
+#include "gromacs/pbcutil/mshift.h"
+#include "gromacs/pbcutil/pbc.h"
#include "gromacs/utility/gmxomp.h"
+#include "gromacs/utility/smalloc.h"
/* Routines to send/recieve coordinates and force
* of constructing atoms.
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include <string.h>
-#include "gromacs/math/utilities.h"
-#include "sysstuff.h"
+
#include "typedefs.h"
#include "macros.h"
-#include "gromacs/utility/smalloc.h"
#include "force.h"
-#include "gromacs/fileio/filenm.h"
#include "nrnb.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
+
+#include "gromacs/fileio/filenm.h"
+#include "gromacs/math/utilities.h"
+#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/smalloc.h"
void make_wall_tables(FILE *fplog, const output_env_t oenv,
const t_inputrec *ir, const char *tabfn,
* the research papers on the package. Check out http://www.gromacs.org.
*/
/* This file is completely threadsafe - keep it that way! */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdio.h>
#include <string.h>
#include "types/commrec.h"
#include "ns.h"
#include "nrnb.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "macros.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
#include "names.h"
#include "domdec.h"
#include "gromacs/fileio/gmxfio.h"
+++ /dev/null
-/*
- * This file is part of the GROMACS molecular simulation package.
- *
- * Copyright (c) 2014, 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.
- *
- * GROMACS is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1
- * of the License, or (at your option) any later version.
- *
- * GROMACS is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with GROMACS; if not, see
- * http://www.gnu.org/licenses, or write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * If you want to redistribute modifications to GROMACS, 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 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.
- */
-/*! \defgroup module_onlinehelp Help Formatting for Online Help (onlinehelp)
- * \ingroup group_utilitymodules
- * \brief
- * Provides functionality for formatting help text for console and other
- * formats.
- *
- * This module provides helper functions and classes for formatting console
- * help, as well as man pages and HTML help from the source code. It should
- * not be necessary to call any methods in this module outside the \Gromacs
- * library.
- *
- * \author Teemu Murtola <teemu.murtola@gmail.com>
- */
-/*! \file
- * \brief
- * Public API convenience header for help formatting.
- *
- * This module does not provide any classes that are intended to be used
- * outside the library. It only contains some type declarations that are
- * necessary for implementation reasons in other public API headers.
- *
- * \author Teemu Murtola <teemu.murtola@gmail.com>
- * \inlibraryapi
- * \ingroup module_onlinehelp
- */
-#ifndef GMX_ONLINEHELP_H
-#define GMX_ONLINEHELP_H
-
-#include "onlinehelp/helptopicinterface.h"
-
-#endif
file(GLOB ONLINEHELP_SOURCES *.cpp)
set(LIBGROMACS_SOURCES ${LIBGROMACS_SOURCES} ${ONLINEHELP_SOURCES} PARENT_SCOPE)
-set(ONLINEHELP_PUBLIC_HEADERS
- helptopicinterface.h)
-gmx_install_headers(onlinehelp ${ONLINEHELP_PUBLIC_HEADERS})
-
if (BUILD_TESTING)
add_subdirectory(tests)
endif()
* 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
+/*! \libinternal \defgroup module_onlinehelp Help Formatting for Online Help (onlinehelp)
+ * \ingroup group_utilitymodules
+ * \brief
+ * Provides functionality for formatting help text for console and other
+ * formats.
+ *
+ * This module provides helper functions and classes for formatting console
+ * help, as well as man pages and HTML help from the source code. It should
+ * not be necessary to call any methods in this module outside the \Gromacs
+ * library.
+ *
+ * \author Teemu Murtola <teemu.murtola@gmail.com>
+ */
+/*! \libinternal \file
* \brief
* Declares gmx::HelpTopicInterface.
*
class HelpWriterContext;
-/*! \brief
+/*! \libinternal \brief
* Provides a single online help topic.
*
- * \if libapi
* Implementations of these methods should not throw, except that writeHelp()
* is allowed to throw on out-of-memory or I/O errors since those it cannot
* avoid.
*
* Header helptopic.h contains classes that implement this interface and make
* it simple to write concrete help topic classes.
- * \endif
- *
- * This class is in a public header, and exposed through HelpTopicPointer, but
- * it is not intended to be used outside the library. To access a help topic
- * with public API methods, use HelpManager.
*
* \inlibraryapi
* \ingroup module_onlinehelp
namespace
{
-//! \addtogroup module_onlinehelp
+//! \internal \addtogroup module_onlinehelp
//! \{
struct t_sandr
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2010,2011,2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2010,2011,2012,2013,2014, 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 "options/basicoptions.h"
#include "options/filenameoption.h"
+#include "options/filenameoptionmanager.h"
#include "options/options.h"
#endif
abstractoption.h
basicoptions.h
filenameoption.h
+ filenameoptionmanager.h
optionfiletype.h
optionflags.h
options.h
#include <vector>
#include "../utility/common.h"
-#include "../utility/uniqueptr.h"
#include "optionflags.h"
class AbstractOptionStorage;
template <typename T> class OptionStorageTemplate;
+class OptionManagerContainer;
class Options;
-//! Smart pointer for managing an AbstractOptionStorage object.
-typedef gmx_unique_ptr<AbstractOptionStorage>::type
- AbstractOptionStoragePointer;
-
/*! \brief
* Abstract base class for specifying option properties.
*
/*! \brief
* Creates a default storage object for the option.
*
- * \returns The created storage object.
- * \throws APIError if invalid option settings have been provided.
+ * \param[in] managers Manager container (unused if the option does
+ * not use a manager).
+ * \returns The created storage object.
+ * \throws APIError if invalid option settings have been provided.
*
* This method is called by Options::addOption() when initializing an
* option from the settings.
* They should also throw APIError if they detect problems.
*
* Should only be called by Options::addOption().
+ *
+ * The ownership of the return value is passed, but is not using a
+ * smart pointer to avoid introducing such a dependency in an installed
+ * header. The implementation will always consist of a single `new`
+ * call and returning that value, and the caller always immediately
+ * wraps the pointer in a smart pointer, so there is not exception
+ * safety issue.
*/
- virtual AbstractOptionStoragePointer createStorage() const = 0;
+ virtual AbstractOptionStorage *createStorage(
+ const OptionManagerContainer &managers) const = 0;
//! Sets the description for the option.
void setDescription(const char *descr) { descr_ = descr; }
* BooleanOption
*/
-AbstractOptionStoragePointer BooleanOption::createStorage() const
+AbstractOptionStorage *
+BooleanOption::createStorage(const OptionManagerContainer & /*managers*/) const
{
- return AbstractOptionStoragePointer(new BooleanOptionStorage(*this));
+ return new BooleanOptionStorage(*this);
}
* IntegerOption
*/
-AbstractOptionStoragePointer IntegerOption::createStorage() const
+AbstractOptionStorage *
+IntegerOption::createStorage(const OptionManagerContainer & /*managers*/) const
{
- return AbstractOptionStoragePointer(new IntegerOptionStorage(*this));
+ return new IntegerOptionStorage(*this);
}
* Int64Option
*/
-AbstractOptionStoragePointer Int64Option::createStorage() const
+AbstractOptionStorage *
+Int64Option::createStorage(const OptionManagerContainer & /*managers*/) const
{
- return AbstractOptionStoragePointer(new Int64OptionStorage(*this));
+ return new Int64OptionStorage(*this);
}
* DoubleOption
*/
-AbstractOptionStoragePointer DoubleOption::createStorage() const
+AbstractOptionStorage *
+DoubleOption::createStorage(const OptionManagerContainer & /*managers*/) const
{
- return AbstractOptionStoragePointer(new DoubleOptionStorage(*this));
+ return new DoubleOptionStorage(*this);
}
* FloatOption
*/
-AbstractOptionStoragePointer FloatOption::createStorage() const
+AbstractOptionStorage *
+FloatOption::createStorage(const OptionManagerContainer & /*managers*/) const
{
- return AbstractOptionStoragePointer(new FloatOptionStorage(*this));
+ return new FloatOptionStorage(*this);
}
* StringOption
*/
-AbstractOptionStoragePointer StringOption::createStorage() const
+AbstractOptionStorage *
+StringOption::createStorage(const OptionManagerContainer & /*managers*/) const
{
- return AbstractOptionStoragePointer(new StringOptionStorage(*this));
+ return new StringOptionStorage(*this);
}
} // namespace gmx
#include <string>
-#include "../legacyheaders/types/simple.h"
+#include "../utility/basedefinitions.h"
#include "../utility/gmxassert.h"
#include "abstractoption.h"
private:
//! Creates a BooleanOptionStorage object.
- virtual AbstractOptionStoragePointer createStorage() const;
+ virtual AbstractOptionStorage *createStorage(
+ const OptionManagerContainer &managers) const;
};
/*! \brief
private:
//! Creates an IntegerOptionStorage object.
- virtual AbstractOptionStoragePointer createStorage() const;
+ virtual AbstractOptionStorage *createStorage(
+ const OptionManagerContainer &managers) const;
/*! \brief
* Needed to initialize IntegerOptionStorage from this class without
private:
//! Creates an Int64OptionStorage object.
- virtual AbstractOptionStoragePointer createStorage() const;
+ virtual AbstractOptionStorage *createStorage(
+ const OptionManagerContainer &managers) const;
/*! \brief
* Needed to initialize Int64OptionStorage from this class without
private:
//! Creates a DoubleOptionStorage object.
- virtual AbstractOptionStoragePointer createStorage() const;
+ virtual AbstractOptionStorage *createStorage(
+ const OptionManagerContainer &managers) const;
bool bTime_;
private:
//! Creates a FloatOptionStorage object.
- virtual AbstractOptionStoragePointer createStorage() const;
+ virtual AbstractOptionStorage *createStorage(
+ const OptionManagerContainer &managers) const;
bool bTime_;
private:
//! Creates a StringOptionStorage object.
- virtual AbstractOptionStoragePointer createStorage() const;
+ virtual AbstractOptionStorage *createStorage(
+ const OptionManagerContainer &managers) const;
const char *const *enumValues_;
int enumValuesCount_;
#include "filenameoption.h"
#include "filenameoptionstorage.h"
+#include <cstring>
+
#include <string>
#include <vector>
#include "gromacs/fileio/filenm.h"
-
+#include "gromacs/options/filenameoptionmanager.h"
+#include "gromacs/options/optionmanagercontainer.h"
#include "gromacs/utility/arrayref.h"
-#include "gromacs/utility/file.h"
+#include "gromacs/utility/exceptions.h"
+#include "gromacs/utility/gmxassert.h"
#include "gromacs/utility/stringutil.h"
namespace gmx
namespace
{
-class FileTypeRegistry;
-
//! \addtogroup module_options
//! \{
-//! Shorthand for a list of file extensions.
-typedef std::vector<const char *> ExtensionList;
+/*! \brief
+ * Mapping from OptionFileType to a file type in filenm.h.
+ */
+struct FileTypeMapping
+{
+ //! OptionFileType value to map.
+ OptionFileType optionType;
+ //! Corresponding file type from filenm.h.
+ int fileType;
+};
+
+//! Mappings from OptionFileType to file types in filenm.h.
+const FileTypeMapping c_fileTypeMapping[] =
+{
+ { eftTopology, efTPS },
+ { eftTrajectory, efTRX },
+ { eftPDB, efPDB },
+ { eftIndex, efNDX },
+ { eftPlot, efXVG },
+ { eftGenericData, efDAT }
+};
/********************************************************************
* FileTypeHandler
*/
-/*! \internal \brief
+/*! \internal
+ * \brief
* Handles a single file type known to FileNameOptionStorage.
+ *
+ * Methods in this class do not throw, except for a possible std::bad_alloc
+ * when constructing std::string return values.
*/
class FileTypeHandler
{
public:
- //! Returns the list of extensions for this file type.
- const ExtensionList &extensions() const { return extensions_; }
-
- //! Returns whether \p filename has a valid extension for this type.
- bool hasKnownExtension(const std::string &filename) const;
- //! Adds a default extension for this type to \p filename.
- std::string addExtension(const std::string &filename) const;
/*! \brief
- * Adds an extension to \p filename if it results in an existing file.
+ * Returns a handler for a single file type.
*
- * Tries to add each extension for this file type to \p filename and
- * checks whether this results in an existing file.
- * The first match is returned.
- * Returns an empty string if no existing file is found.
+ * \param[in] fileType File type (from filenm.h) to use.
*/
- std::string findFileWithExtension(const std::string &filename) const;
+ explicit FileTypeHandler(int fileType);
- private:
- //! Possible extensions for this file type.
- ExtensionList extensions_;
+ //! Returns the number of acceptable extensions for this file type.
+ int extensionCount() const;
+ //! Returns the extension with the given index.
+ const char *extension(int i) const;
+ //! Returns whether \p fileType (from filenm.h) is accepted for this type.
+ bool isValidType(int fileType) const;
+
+ private:
/*! \brief
- * Needed for initialization; all initialization is handled by
- * FileTypeRegistry.
+ * File type (from filenm.h) represented by this handler.
+ *
+ * -1 represents an unknown file type.
+ */
+ int fileType_;
+ //! Number of different extensions this type supports.
+ int extensionCount_;
+ /*! \brief
+ * List of simple file types that are included in this type.
+ *
+ * If `fileType_` represents a generic type in filenm.h, i.e., a type
+ * that accepts multiple different types of files, then this is an
+ * array of `extensionCount_` elements, each element specifying one
+ * non-generic file type that this option accepts.
+ * `NULL` for single-extension types.
*/
- friend class FileTypeRegistry;
+ const int *genericTypes_;
};
-bool
-FileTypeHandler::hasKnownExtension(const std::string &filename) const
+FileTypeHandler::FileTypeHandler(int fileType)
+ : fileType_(fileType), extensionCount_(0), genericTypes_(NULL)
{
- for (size_t i = 0; i < extensions_.size(); ++i)
+ if (fileType_ >= 0)
{
- if (endsWith(filename, extensions_[i]))
+ const int genericTypeCount = ftp2generic_count(fileType_);
+ if (genericTypeCount > 0)
{
- return true;
+ extensionCount_ = genericTypeCount;
+ genericTypes_ = ftp2generic_list(fileType_);
}
- }
- return false;
-}
-
-std::string
-FileTypeHandler::addExtension(const std::string &filename) const
-{
- if (extensions_.empty())
- {
- return filename;
- }
- return filename + extensions_[0];
-}
-
-std::string
-FileTypeHandler::findFileWithExtension(const std::string &filename) const
-{
- for (size_t i = 0; i < extensions_.size(); ++i)
- {
- std::string testFilename(filename + extensions_[i]);
- if (File::exists(testFilename))
+ else if (ftp2ext_with_dot(fileType_)[0] != '\0')
{
- return testFilename;
+ extensionCount_ = 1;
}
}
- return std::string();
}
-/********************************************************************
- * FileTypeRegistry
- */
-
-/*! \internal \brief
- * Singleton for managing static file type info for FileNameOptionStorage.
- */
-class FileTypeRegistry
-{
- public:
- //! Returns a singleton instance of this class.
- static const FileTypeRegistry &instance();
- //! Returns a handler for a single file type.
- const FileTypeHandler &
- handlerForType(OptionFileType type, int legacyType) const;
-
- private:
- //! Initializes the file type registry.
- FileTypeRegistry();
-
- //! Registers a file type that corresponds to a ftp in filenm.h.
- void registerType(int type, int ftp);
- //! Registers a file type with a single extension.
- void registerType(int type, const char *extension);
-
- std::vector<FileTypeHandler> filetypes_;
-};
-
-// static
-const FileTypeRegistry &
-FileTypeRegistry::instance()
-{
- static FileTypeRegistry singleton;
- return singleton;
-}
-
-const FileTypeHandler &
-FileTypeRegistry::handlerForType(OptionFileType type, int legacyType) const
+int FileTypeHandler::extensionCount() const
{
- int index = type;
- if (type == eftUnknown && legacyType >= 0)
- {
- index = eftOptionFileType_NR + legacyType;
- }
- GMX_RELEASE_ASSERT(index >= 0 && static_cast<size_t>(index) < filetypes_.size(),
- "Invalid file type");
- return filetypes_[index];
+ return extensionCount_;
}
-FileTypeRegistry::FileTypeRegistry()
+const char *FileTypeHandler::extension(int i) const
{
- filetypes_.resize(eftOptionFileType_NR + efNR);
- registerType(eftTopology, efTPS);
- registerType(eftTrajectory, efTRX);
- registerType(eftPDB, efPDB);
- registerType(eftIndex, efNDX);
- registerType(eftPlot, efXVG);
- registerType(eftGenericData, efDAT);
- for (int i = 0; i < efNR; ++i)
+ GMX_ASSERT(i >= 0 && i < extensionCount_, "Invalid extension index");
+ if (genericTypes_ != NULL)
{
- registerType(eftOptionFileType_NR + i, i);
+ return ftp2ext_with_dot(genericTypes_[i]);
}
+ return ftp2ext_with_dot(fileType_);
}
-void FileTypeRegistry::registerType(int type, int ftp)
+bool
+FileTypeHandler::isValidType(int fileType) const
{
- GMX_RELEASE_ASSERT(type >= 0 && static_cast<size_t>(type) < filetypes_.size(),
- "Invalid file type");
- const int genericTypeCount = ftp2generic_count(ftp);
- if (genericTypeCount > 0)
+ if (genericTypes_ != NULL)
{
- const int *const genericTypes = ftp2generic_list(ftp);
- filetypes_[type].extensions_.clear();
- filetypes_[type].extensions_.reserve(genericTypeCount);
- for (int i = 0; i < genericTypeCount; ++i)
+ for (int i = 0; i < extensionCount(); ++i)
{
- filetypes_[type].extensions_.push_back(ftp2ext_with_dot(genericTypes[i]));
+ if (fileType == genericTypes_[i])
+ {
+ return true;
+ }
}
+ return false;
}
else
{
- registerType(type, ftp2ext_with_dot(ftp));
+ return fileType == fileType_;
}
}
-void FileTypeRegistry::registerType(int type, const char *extension)
-{
- GMX_RELEASE_ASSERT(type >= 0 && static_cast<size_t>(type) < filetypes_.size(),
- "Invalid file type");
- filetypes_[type].extensions_.assign(1, extension);
-}
-
-/*! \brief
- * Helper method to complete a file name provided to a file name option.
- *
- * \param[in] value Value provided to the file name option.
- * \param[in] filetype File type for the option.
- * \param[in] legacyType If \p filetype is eftUnknown, this gives the type as
- * an enum value from filenm.h.
- * \param[in] bCompleteToExisting
- * Whether to check existing files when completing the extension.
- * \returns \p value with possible extension added.
- */
-std::string completeFileName(const std::string &value, OptionFileType filetype,
- int legacyType, bool bCompleteToExisting)
-{
- if (bCompleteToExisting && File::exists(value))
- {
- // TODO: This may not work as expected if the value is passed to a
- // function that uses fn2ftp() to determine the file type and the input
- // file has an unrecognized extension.
- return value;
- }
- const FileTypeRegistry ®istry = FileTypeRegistry::instance();
- const FileTypeHandler &typeHandler = registry.handlerForType(filetype, legacyType);
- if (typeHandler.hasKnownExtension(value))
- {
- return value;
- }
- if (bCompleteToExisting)
- {
- std::string newValue = typeHandler.findFileWithExtension(value);
- if (!newValue.empty())
- {
- return newValue;
- }
- }
- return typeHandler.addExtension(value);
-}
-
//! \}
} // namespace
* FileNameOptionStorage
*/
-FileNameOptionStorage::FileNameOptionStorage(const FileNameOption &settings)
- : MyBase(settings), info_(this), filetype_(settings.filetype_),
- legacyType_(settings.legacyType_),
+FileNameOptionStorage::FileNameOptionStorage(const FileNameOption &settings,
+ FileNameOptionManager *manager)
+ : MyBase(settings), info_(this), manager_(manager), fileType_(-1),
bRead_(settings.bRead_), bWrite_(settings.bWrite_),
bLibrary_(settings.bLibrary_)
{
+ GMX_RELEASE_ASSERT(!hasFlag(efOption_MultipleTimes),
+ "allowMultiple() is not supported for file name options");
+ if (settings.optionType_ == eftUnknown && settings.legacyType_ >= 0)
+ {
+ fileType_ = settings.legacyType_;
+ }
+ else
+ {
+ ConstArrayRef<FileTypeMapping> map(c_fileTypeMapping);
+ ConstArrayRef<FileTypeMapping>::const_iterator i;
+ for (i = map.begin(); i != map.end(); ++i)
+ {
+ if (i->optionType == settings.optionType_)
+ {
+ fileType_ = i->fileType;
+ break;
+ }
+ }
+ }
if (settings.defaultBasename_ != NULL)
{
- std::string defaultValue =
- completeFileName(settings.defaultBasename_, filetype_,
- legacyType_, false);
+ std::string defaultValue(settings.defaultBasename_);
+ defaultValue.append(defaultExtension());
setDefaultValueIfSet(defaultValue);
- if (isRequired())
+ if (isRequired() || settings.bLegacyOptionalBehavior_)
{
setDefaultValue(defaultValue);
}
std::string FileNameOptionStorage::typeString() const
{
- const FileTypeRegistry ®istry = FileTypeRegistry::instance();
- const FileTypeHandler &typeHandler = registry.handlerForType(filetype_, legacyType_);
- const ExtensionList &extensions = typeHandler.extensions();
- std::string result;
- ExtensionList::const_iterator i;
- int count = 0;
- for (i = extensions.begin(); count < 2 && i != extensions.end(); ++i, ++count)
+ FileTypeHandler typeHandler(fileType_);
+ std::string result;
+ int count;
+ for (count = 0; count < 2 && count < typeHandler.extensionCount(); ++count)
{
- if (i != extensions.begin())
+ if (count > 0)
{
result.append("/");
}
- result.append(*i);
+ result.append(typeHandler.extension(count));
}
- if (i != extensions.end())
+ if (count < typeHandler.extensionCount())
{
result.append("/...");
}
if (result.empty())
{
- if (legacyType_ == efRND)
+ if (isDirectoryOption())
{
result = "dir";
}
std::string FileNameOptionStorage::formatExtraDescription() const
{
- const FileTypeRegistry ®istry = FileTypeRegistry::instance();
- const FileTypeHandler &typeHandler = registry.handlerForType(filetype_, legacyType_);
- const ExtensionList &extensions = typeHandler.extensions();
- std::string result;
- if (extensions.size() > 2)
+ FileTypeHandler typeHandler(fileType_);
+ std::string result;
+ if (typeHandler.extensionCount() > 2)
{
result.append(":");
- ExtensionList::const_iterator i;
- for (i = extensions.begin(); i != extensions.end(); ++i)
+ for (int i = 0; i < typeHandler.extensionCount(); ++i)
{
result.append(" ");
- result.append((*i) + 1);
+ // Skip the dot.
+ result.append(typeHandler.extension(i) + 1);
}
}
return result;
void FileNameOptionStorage::convertValue(const std::string &value)
{
- bool bInput = isInputFile() || isInputOutputFile();
- addValue(completeFileName(value, filetype_, legacyType_, bInput));
+ if (manager_ != NULL)
+ {
+ std::string processedValue = manager_->completeFileName(value, info_);
+ if (!processedValue.empty())
+ {
+ // If the manager returns a value, use it without further checks,
+ // except for sanity checking.
+ if (!isDirectoryOption())
+ {
+ const int fileType = fn2ftp(processedValue.c_str());
+ if (fileType == efNR)
+ {
+ // If the manager returned an invalid file name, assume
+ // that it knows what it is doing. But assert that it
+ // only does that for the only case that it is currently
+ // required for: VMD plugins.
+ GMX_ASSERT(isInputFile() && isTrajectoryOption(),
+ "Manager returned an invalid file name");
+ }
+ else
+ {
+ GMX_ASSERT(isValidType(fileType),
+ "Manager returned an invalid file name");
+ }
+ }
+ addValue(processedValue);
+ return;
+ }
+ }
+ // Currently, directory options are simple, and don't need any
+ // special processing.
+ // TODO: Consider splitting them into a separate DirectoryOption.
+ if (isDirectoryOption())
+ {
+ addValue(value);
+ return;
+ }
+ const int fileType = fn2ftp(value.c_str());
+ if (fileType == efNR)
+ {
+ std::string message
+ = formatString("File '%s' cannot be used by GROMACS because it "
+ "does not have a recognizable extension.\n"
+ "The following extensions are possible for this option:\n %s",
+ value.c_str(), joinStrings(extensions(), ", ").c_str());
+ GMX_THROW(InvalidInputError(message));
+ }
+ else if (!isValidType(fileType))
+ {
+ std::string message
+ = formatString("File name '%s' cannot be used for this option.\n"
+ "Only the following extensions are possible:\n %s",
+ value.c_str(), joinStrings(extensions(), ", ").c_str());
+ GMX_THROW(InvalidInputError(message));
+ }
+ addValue(value);
+}
+
+void FileNameOptionStorage::processAll()
+{
+ if (manager_ != NULL && hasFlag(efOption_HasDefaultValue))
+ {
+ ValueList &valueList = values();
+ GMX_RELEASE_ASSERT(valueList.size() == 1,
+ "There should be only one default value");
+ if (!valueList[0].empty())
+ {
+ const std::string &oldValue = valueList[0];
+ GMX_ASSERT(endsWith(oldValue, defaultExtension()),
+ "Default value does not have the expected extension");
+ const std::string prefix
+ = stripSuffixIfPresent(oldValue, defaultExtension());
+ const std::string newValue
+ = manager_->completeDefaultFileName(prefix, info_);
+ if (!newValue.empty() && newValue != oldValue)
+ {
+ GMX_ASSERT(isValidType(fn2ftp(newValue.c_str())),
+ "Manager returned an invalid default value");
+ valueList[0] = newValue;
+ refreshValues();
+ }
+ }
+ }
}
bool FileNameOptionStorage::isDirectoryOption() const
{
- return legacyType_ == efRND;
+ return fileType_ == efRND;
+}
+
+bool FileNameOptionStorage::isTrajectoryOption() const
+{
+ return fileType_ == efTRX;
}
-ConstArrayRef<const char *> FileNameOptionStorage::extensions() const
+const char *FileNameOptionStorage::defaultExtension() const
{
- const FileTypeRegistry ®istry = FileTypeRegistry::instance();
- const FileTypeHandler &typeHandler = registry.handlerForType(filetype_, legacyType_);
- const ExtensionList &extensions = typeHandler.extensions();
- return constArrayRefFromVector<const char *>(extensions.begin(), extensions.end());
+ FileTypeHandler typeHandler(fileType_);
+ if (typeHandler.extensionCount() == 0)
+ {
+ return "";
+ }
+ return typeHandler.extension(0);
+}
+
+std::vector<const char *> FileNameOptionStorage::extensions() const
+{
+ FileTypeHandler typeHandler(fileType_);
+ std::vector<const char *> result;
+ result.reserve(typeHandler.extensionCount());
+ for (int i = 0; i < typeHandler.extensionCount(); ++i)
+ {
+ result.push_back(typeHandler.extension(i));
+ }
+ return result;
+}
+
+bool FileNameOptionStorage::isValidType(int fileType) const
+{
+ FileTypeHandler typeHandler(fileType_);
+ return typeHandler.isValidType(fileType);
+}
+
+ConstArrayRef<int> FileNameOptionStorage::fileTypes() const
+{
+ if (fileType_ < 0)
+ {
+ return ConstArrayRef<int>();
+ }
+ const int genericTypeCount = ftp2generic_count(fileType_);
+ if (genericTypeCount > 0)
+ {
+ return constArrayRefFromArray<int>(ftp2generic_list(fileType_), genericTypeCount);
+ }
+ return constArrayRefFromArray<int>(&fileType_, 1);
}
/********************************************************************
return option().isDirectoryOption();
}
+bool FileNameOptionInfo::isTrajectoryOption() const
+{
+ return option().isTrajectoryOption();
+}
+
+const char *FileNameOptionInfo::defaultExtension() const
+{
+ return option().defaultExtension();
+}
+
FileNameOptionInfo::ExtensionList FileNameOptionInfo::extensions() const
{
return option().extensions();
}
+bool FileNameOptionInfo::isValidType(int fileType) const
+{
+ return option().isValidType(fileType);
+}
+
+ConstArrayRef<int> FileNameOptionInfo::fileTypes() const
+{
+ return option().fileTypes();
+}
+
/********************************************************************
* FileNameOption
*/
-AbstractOptionStoragePointer FileNameOption::createStorage() const
+AbstractOptionStorage *
+FileNameOption::createStorage(const OptionManagerContainer &managers) const
{
- return AbstractOptionStoragePointer(new FileNameOptionStorage(*this));
+ return new FileNameOptionStorage(*this, managers.get<FileNameOptionManager>());
}
} // namespace gmx
#define GMX_OPTIONS_FILENAMEOPTION_H
#include <string>
+#include <vector>
#include "abstractoption.h"
#include "optionfiletype.h"
template <typename T> class ConstArrayRef;
class FileNameOptionInfo;
+class FileNameOptionManager;
class FileNameOptionStorage;
/*! \brief
//! Initializes an option with the given name.
explicit FileNameOption(const char *name)
- : MyBase(name), filetype_(eftUnknown), legacyType_(-1),
- defaultBasename_(NULL),
+ : MyBase(name), optionType_(eftUnknown), legacyType_(-1),
+ defaultBasename_(NULL), bLegacyOptionalBehavior_(false),
bRead_(false), bWrite_(false), bLibrary_(false)
{
}
* Either this attribute or legacyType() must be provided.
*/
MyClass &filetype(OptionFileType type)
- { filetype_ = type; return me(); }
+ { optionType_ = type; return me(); }
/*! \brief
* Sets the type of the file from an enum in filenm.h.
*
*/
MyClass &legacyType(int type)
{ legacyType_ = type; return me(); }
+ /*! \brief
+ * Changes the behavior of optional options to match old t_filenm.
+ *
+ * If this is not set, optional options return an empty string if not
+ * set. If this is set, a non-empty value is always returned.
+ * In the latter case, whether the option is set only affects the
+ * return value of OptionInfo::isSet() and Options::isSet().
+ */
+ MyClass &legacyOptionalBehavior()
+ { bLegacyOptionalBehavior_ = true; return me(); }
//! Tells that the file provided by this option is used for input only.
MyClass &inputFile()
{ bRead_ = true; bWrite_ = false; return me(); }
* required, the value given to defaultBasename() is treated as for
* both defaultValue() and defaultValueIfSet(), otherwise it is treated
* as for defaultValueIfSet().
+ *
+ * For input files that accept multiple extensions, the extension is
+ * completed to the default extension on creation of the option or at
+ * time of parsing an option without a value.
+ * The extension may change during Options::finish(), as this is the
+ * time when the default names are checked against the file system to
+ * provide an extension that matches an existing file if that is
+ * possible.
+ *
+ * If FileNameOptionManager is used, and
+ * FileNameOptionManager::addDefaultFileNameOption() is used, and the
+ * user provides a global default file name using that option, then the
+ * global default takes precedence over defaultBasename().
*/
MyClass &defaultBasename(const char *basename)
{ defaultBasename_ = basename; return me(); }
using MyBase::defaultValueIfSet;
//! Creates a FileNameOptionStorage object.
- virtual AbstractOptionStoragePointer createStorage() const;
+ virtual AbstractOptionStorage *createStorage(
+ const OptionManagerContainer &managers) const;
- OptionFileType filetype_;
+ OptionFileType optionType_;
int legacyType_;
const char *defaultBasename_;
+ bool bLegacyOptionalBehavior_;
bool bRead_;
bool bWrite_;
bool bLibrary_;
{
public:
//! Shorthand for a list of extensions.
- typedef ConstArrayRef<const char *> ExtensionList;
+ typedef std::vector<const char *> ExtensionList;
//! Creates an option info object for the given option.
explicit FileNameOptionInfo(FileNameOptionStorage *option);
//! Whether the option specifies directories.
bool isDirectoryOption() const;
+ //! Whether the option specifies a generic trajectory file.
+ bool isTrajectoryOption() const;
+ //! Returns the default extension for this option.
+ const char *defaultExtension() const;
//! Returns the list of extensions this option accepts.
ExtensionList extensions() const;
+ //! Returns whether \p fileType (from filenm.h) is accepted for this option.
+ bool isValidType(int fileType) const;
+ //! Returns the list of file types this option accepts.
+ ConstArrayRef<int> fileTypes() const;
private:
const FileNameOptionStorage &option() const;
--- /dev/null
+/*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+ * Copyright (c) 2014, 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.
+ *
+ * GROMACS is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1
+ * of the License, or (at your option) any later version.
+ *
+ * GROMACS is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with GROMACS; if not, see
+ * http://www.gnu.org/licenses, or write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * If you want to redistribute modifications to GROMACS, 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 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.
+ */
+/*! \internal \file
+ * \brief
+ * Implements gmx::FileNameOptionManager.
+ *
+ * \author Teemu Murtola <teemu.murtola@gmail.com>
+ * \ingroup module_options
+ */
+#include "filenameoptionmanager.h"
+
+#include <cstring>
+
+#include <string>
+
+#include "gromacs/fileio/filenm.h"
+#include "gromacs/options/basicoptions.h"
+#include "gromacs/options/filenameoption.h"
+#include "gromacs/options/options.h"
+#include "gromacs/utility/arrayref.h"
+#include "gromacs/utility/exceptions.h"
+#include "gromacs/utility/file.h"
+#include "gromacs/utility/path.h"
+#include "gromacs/utility/stringutil.h"
+
+namespace gmx
+{
+
+namespace
+{
+
+//! Extensions that are recognized as compressed files.
+const char *const c_compressedExtensions[] =
+{ ".gz", ".Z" };
+
+/********************************************************************
+ * Helper functions
+ */
+
+/*! \brief
+ * Adds an extension to \p prefix if it results in an existing file.
+ *
+ * Tries to add each extension for this file type to \p prefix and
+ * checks whether this results in an existing file.
+ * The first match is returned.
+ * Returns an empty string if no existing file is found.
+ */
+std::string findExistingExtension(const std::string &prefix,
+ const FileNameOptionInfo &option)
+{
+ ConstArrayRef<int> types = option.fileTypes();
+ ConstArrayRef<int>::const_iterator i;
+ for (i = types.begin(); i != types.end(); ++i)
+ {
+ std::string testFilename(prefix + ftp2ext_with_dot(*i));
+ if (File::exists(testFilename))
+ {
+ return testFilename;
+ }
+ }
+ return std::string();
+}
+
+} // namespace
+
+/********************************************************************
+ * FileNameOptionManager::Impl
+ */
+
+/*! \internal \brief
+ * Private implemention class for FileNameOptionManager.
+ *
+ * \ingroup module_options
+ */
+class FileNameOptionManager::Impl
+{
+ public:
+ Impl() : bInputCheckingDisabled_(false) {}
+
+ //! Global default file name, if set.
+ std::string defaultFileName_;
+ //! Whether input option processing has been disabled.
+ bool bInputCheckingDisabled_;
+};
+
+/********************************************************************
+ * FileNameOptionManager
+ */
+
+FileNameOptionManager::FileNameOptionManager()
+ : impl_(new Impl())
+{
+}
+
+FileNameOptionManager::~FileNameOptionManager()
+{
+}
+
+void FileNameOptionManager::disableInputOptionChecking(bool bDisable)
+{
+ impl_->bInputCheckingDisabled_ = bDisable;
+}
+
+void FileNameOptionManager::addDefaultFileNameOption(
+ Options *options, const char *name)
+{
+ options->addOption(
+ StringOption(name).store(&impl_->defaultFileName_)
+ .description("Set the default filename for all file options"));
+}
+
+std::string FileNameOptionManager::completeFileName(
+ const std::string &value, const FileNameOptionInfo &option)
+{
+ const bool bInput = option.isInputFile() || option.isInputOutputFile();
+ // Currently, directory options are simple, and don't need any
+ // special processing.
+ // TODO: Consider splitting them into a separate DirectoryOption.
+ if (option.isDirectoryOption())
+ {
+ if (!impl_->bInputCheckingDisabled_ && bInput && !Directory::exists(value))
+ {
+ std::string message
+ = formatString("Directory '%s' does not exist or is not accessible.",
+ value.c_str());
+ // TODO: Get actual errno value from the attempt to open the file
+ // to provide better feedback to the user.
+ GMX_THROW(InvalidInputError(message));
+ }
+ return value;
+ }
+ const int fileType = fn2ftp(value.c_str());
+ if (bInput && !impl_->bInputCheckingDisabled_)
+ {
+ if (fileType == efNR && File::exists(value))
+ {
+ ConstArrayRef<const char *> compressedExtensions(c_compressedExtensions);
+ ConstArrayRef<const char *>::const_iterator ext;
+ for (ext = compressedExtensions.begin(); ext != compressedExtensions.end(); ++ext)
+ {
+ if (endsWith(value, *ext))
+ {
+ std::string newValue = value.substr(0, value.length() - std::strlen(*ext));
+ if (option.isValidType(fn2ftp(newValue.c_str())))
+ {
+ return newValue;
+ }
+ else
+ {
+ return std::string();
+ }
+ }
+ }
+ // VMD plugins may be able to read the file.
+ if (option.isInputFile() && option.isTrajectoryOption())
+ {
+ return value;
+ }
+ }
+ else if (fileType == efNR)
+ {
+ std::string processedValue = findExistingExtension(value, option);
+ if (!processedValue.empty())
+ {
+ return processedValue;
+ }
+ if (option.isLibraryFile())
+ {
+ // TODO: Treat also library files here.
+ return value + option.defaultExtension();
+ }
+ else
+ {
+ std::string message
+ = formatString("File '%s' does not exist or is not accessible.\n"
+ "The following extensions were tried to complete the file name:\n %s",
+ value.c_str(), joinStrings(option.extensions(), ", ").c_str());
+ GMX_THROW(InvalidInputError(message));
+ }
+ }
+ else if (option.isValidType(fileType))
+ {
+ if (option.isLibraryFile())
+ {
+ // TODO: Treat also library files.
+ }
+ else if (!File::exists(value))
+ {
+ std::string message
+ = formatString("File '%s' does not exist or is not accessible.",
+ value.c_str());
+ // TODO: Get actual errno value from the attempt to open the file
+ // to provide better feedback to the user.
+ GMX_THROW(InvalidInputError(message));
+ }
+ return value;
+ }
+ }
+ else // Not an input file
+ {
+ if (fileType == efNR)
+ {
+ return value + option.defaultExtension();
+ }
+ else if (option.isValidType(fileType))
+ {
+ return value;
+ }
+ }
+ return std::string();
+}
+
+std::string FileNameOptionManager::completeDefaultFileName(
+ const std::string &prefix, const FileNameOptionInfo &option)
+{
+ if (option.isDirectoryOption() || impl_->bInputCheckingDisabled_)
+ {
+ return std::string();
+ }
+ const bool bInput = option.isInputFile() || option.isInputOutputFile();
+ const std::string realPrefix
+ = !impl_->defaultFileName_.empty() ? impl_->defaultFileName_ : prefix;
+ if (bInput)
+ {
+ std::string completedName = findExistingExtension(realPrefix, option);
+ if (!completedName.empty())
+ {
+ return completedName;
+ }
+ if (option.isLibraryFile())
+ {
+ // TODO: Treat also library files here.
+ return realPrefix + option.defaultExtension();
+ }
+ else if (option.isSet())
+ {
+ std::string message
+ = formatString("No file name was provided, and the default file "
+ "'%s' does not exist or is not accessible.\n"
+ "The following extensions were tried to complete the file name:\n %s",
+ prefix.c_str(), joinStrings(option.extensions(), ", ").c_str());
+ GMX_THROW(InvalidInputError(message));
+ }
+ else if (option.isRequired())
+ {
+ std::string message
+ = formatString("Required option was not provided, and the default file "
+ "'%s' does not exist or is not accessible.\n"
+ "The following extensions were tried to complete the file name:\n %s",
+ prefix.c_str(), joinStrings(option.extensions(), ", ").c_str());
+ GMX_THROW(InvalidInputError(message));
+ }
+ // We get here with the legacy optional behavior.
+ }
+ return realPrefix + option.defaultExtension();
+}
+
+} // namespace gmx
--- /dev/null
+/*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+ * Copyright (c) 2014, 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.
+ *
+ * GROMACS is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1
+ * of the License, or (at your option) any later version.
+ *
+ * GROMACS is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with GROMACS; if not, see
+ * http://www.gnu.org/licenses, or write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * If you want to redistribute modifications to GROMACS, 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 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
+ * \brief
+ * Declares gmx::FileNameOptionManager.
+ *
+ * \author Teemu Murtola <teemu.murtola@gmail.com>
+ * \inpublicapi
+ * \ingroup module_options
+ */
+#ifndef GMX_OPTIONS_FILENAMEOPTIONMANAGER_H
+#define GMX_OPTIONS_FILENAMEOPTIONMANAGER_H
+
+#include <string>
+
+#include "options.h"
+
+#include "../utility/common.h"
+
+namespace gmx
+{
+
+class FileNameOptionInfo;
+class Options;
+
+/*! \brief
+ * Handles interaction of file name options with global options.
+ *
+ * This class contains all logic that completes file names based on user input
+ * and file system contents. Additionally, this class implements support for a
+ * global default file name that overrides any option-specific default, as well
+ * as additional control over how the completion is done.
+ *
+ * \todo
+ * Most of the functionality in this class is specific to command line parsing,
+ * so it would be cleaner to replace this with an interface, and have the
+ * actual code in the `commandline` module.
+ *
+ * Adding a FileNameOptionManager for an Options object is optional, even if
+ * the Options contains FileNameOption options. Features from the manager are
+ * not available if the manager is not created, but otherwise the options work:
+ * the values provided to FileNameOption are used as they are, and exceptions
+ * are thrown if they are no valid instead of attempting to complete them.
+ *
+ * \see Options::addManager()
+ *
+ * \inpublicapi
+ * \ingroup module_selection
+ */
+class FileNameOptionManager : public OptionManagerInterface
+{
+ public:
+ FileNameOptionManager();
+ virtual ~FileNameOptionManager();
+
+ /*! \brief
+ * Disables special input file option handling.
+ *
+ * If disabled, this removes all file system calls from the file
+ * name option parsing.
+ * The values returned by FileNameOption for input and input/output
+ * files are handled with the same simple rule as for output files:
+ * the default extension is added if the file does not end in a
+ * recognized extension, and no other checking is done.
+ *
+ * This changes the following behavior:
+ * - Providing non-existent files does not trigger errors.
+ * - Extensions for input files are not completed to an existing file.
+ * - Compressed input files do not work.
+ */
+ void disableInputOptionChecking(bool bDisable);
+
+ /*! \brief
+ * Adds an option for setting the default global file name.
+ *
+ * \param options Options to add the option to.
+ * \param[in] name Name of the option to add.
+ *
+ * If the user sets the option, it affects all file name options that
+ * would normally return a default value: the basename for the returned
+ * value is taken from the value of the default file name option,
+ * instead from an option-specific default
+ * (FileNameOption::defaultBaseName()).
+ */
+ void addDefaultFileNameOption(Options *options, const char *name);
+
+ /*! \brief
+ * Completes file name option values.
+ *
+ * \param[in] value Value provided by the user.
+ * \param[in] option Option for which the value should be completed.
+ * \returns Value for the file name option.
+ * \throws std::bad_alloc if out of memory.
+ * \throws InvalidInputError if the value is not valid for this
+ * option.
+ *
+ * This method is called for each value that the user provides to
+ * a FileNameOption. The return value (if non-empty) is used as the
+ * value of the option instead of the user-provided one.
+ */
+ std::string completeFileName(const std::string &value,
+ const FileNameOptionInfo &option);
+ /*! \brief
+ * Completes default values for file name options.
+ *
+ * \param[in] prefix Default prefix for the file name.
+ * \param[in] option Option for which the value should be completed.
+ * \returns Value for the file name option.
+ * \throws std::bad_alloc if out of memory.
+ * \throws InvalidInputError if the value is not valid for this
+ * option.
+ *
+ * This method is called for each FileNameOption that has a default
+ * value (either a standard default value, or if the user provided the
+ * option without an explicit value). \p prefix is the default value
+ * without the default extension for the option.
+ * If the return value is non-empty, it is used as the default value
+ * for the option instead of \p prefix + default extension.
+ */
+ std::string completeDefaultFileName(const std::string &prefix,
+ const FileNameOptionInfo &option);
+
+ private:
+ class Impl;
+
+ PrivateImplPointer<Impl> impl_;
+};
+
+} // namespace gmx
+
+#endif
#define GMX_OPTIONS_FILENAMEOPTIONSTORAGE_H
#include <string>
+#include <vector>
#include "filenameoption.h"
#include "optionfiletype.h"
{
class FileNameOption;
+class FileNameOptionManager;
/*! \internal \brief
* Converts, validates, and stores file names.
class FileNameOptionStorage : public OptionStorageTemplate<std::string>
{
public:
- //! \copydoc StringOptionStorage::StringOptionStorage()
- explicit FileNameOptionStorage(const FileNameOption &settings);
+ /*! \brief
+ * Initializes the storage from option settings.
+ *
+ * \param[in] settings Storage settings.
+ * \param manager Manager for this object (can be NULL).
+ */
+ FileNameOptionStorage(const FileNameOption &settings,
+ FileNameOptionManager *manager);
virtual OptionInfo &optionInfo() { return info_; }
virtual std::string typeString() const;
//! \copydoc FileNameOptionInfo::isDirectoryOption()
bool isDirectoryOption() const;
+ //! \copydoc FileNameOptionInfo::isTrajectoryOption()
+ bool isTrajectoryOption() const;
+ //! \copydoc FileNameOptionInfo::defaultExtension()
+ const char *defaultExtension() const;
//! \copydoc FileNameOptionInfo::extensions()
- ConstArrayRef<const char *> extensions() const;
+ std::vector<const char *> extensions() const;
+ //! \copydoc FileNameOptionInfo::isValidType()
+ bool isValidType(int fileType) const;
+ //! \copydoc FileNameOptionInfo::fileTypes()
+ ConstArrayRef<int> fileTypes() const;
private:
virtual void convertValue(const std::string &value);
+ virtual void processAll();
FileNameOptionInfo info_;
- OptionFileType filetype_;
- int legacyType_;
+ FileNameOptionManager *manager_;
+ int fileType_;
bool bRead_;
bool bWrite_;
bool bLibrary_;
--- /dev/null
+/*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+ * Copyright (c) 2014, 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.
+ *
+ * GROMACS is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1
+ * of the License, or (at your option) any later version.
+ *
+ * GROMACS is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with GROMACS; if not, see
+ * http://www.gnu.org/licenses, or write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * If you want to redistribute modifications to GROMACS, 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 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.
+ */
+/*! \libinternal \file
+ * \brief
+ * Declares gmx::OptionManagerContainer.
+ *
+ * \author Teemu Murtola <teemu.murtola@gmail.com>
+ * \inlibraryapi
+ * \ingroup module_options
+ */
+#ifndef GMX_OPTIONS_OPTIONMANAGERCONTAINER_H
+#define GMX_OPTIONS_OPTIONMANAGERCONTAINER_H
+
+#include <vector>
+
+#include "gromacs/utility/common.h"
+#include "gromacs/utility/gmxassert.h"
+
+namespace gmx
+{
+
+class OptionManagerInterface;
+
+/*! \libinternal
+ * \brief
+ * Container to keep managers added with Options::addManager() and pass them
+ * to options.
+ *
+ * Consistency of the managers (e.g., that there is at most one manager of a
+ * certain type) is only checked when the managers are accessed.
+ *
+ * \inlibraryapi
+ * \ingroup module_options
+ */
+class OptionManagerContainer
+{
+ public:
+ OptionManagerContainer()
+ {
+ }
+
+ //! Returns `true` if there are no managers.
+ bool empty() const { return list_.empty(); }
+
+ //! Adds a manager to the container.
+ void add(OptionManagerInterface *manager)
+ {
+ list_.push_back(manager);
+ }
+ /*! \brief
+ * Retrieves a manager of a certain type.
+ *
+ * \tparam ManagerType Type of manager to retrieve
+ * (should derive from OptionManagerInterface).
+ * \returns The manager, or `NULL` if there is none.
+ *
+ * This method is used in AbstractOption::createStorage() to retrieve
+ * a manager of a certain type for options that use a manager.
+ *
+ * The return value is `NULL` if there is no manager of the given type.
+ * The caller needs to handle this (either by asserting, or by handling
+ * the manager as optional).
+ */
+ template <class ManagerType>
+ ManagerType *get() const
+ {
+ ManagerType *result = NULL;
+ for (ListType::const_iterator i = list_.begin(); i != list_.end(); ++i)
+ {
+ ManagerType *curr = dynamic_cast<ManagerType *>(*i);
+ if (curr != NULL)
+ {
+ GMX_RELEASE_ASSERT(result == NULL,
+ "More than one applicable option manager is set");
+ result = curr;
+ }
+ }
+ return result;
+ }
+
+ private:
+ //! Shorthand for the internal container type.
+ typedef std::vector<OptionManagerInterface *> ListType;
+
+ ListType list_;
+
+ GMX_DISALLOW_COPY_AND_ASSIGN(OptionManagerContainer);
+};
+
+} // namespace gmx
+
+#endif
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2010,2011,2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2010,2011,2012,2013,2014, 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 <vector>
#include "abstractoption.h"
+#include "optionmanagercontainer.h"
#include "options.h"
+#include "gromacs/utility/uniqueptr.h"
namespace gmx
{
class Options::Impl
{
public:
+ //! Smart pointer for managing an AbstractOptionStorage object.
+ typedef gmx_unique_ptr<AbstractOptionStorage>::type
+ AbstractOptionStoragePointer;
//! Convenience type for list of sections.
typedef std::vector<Options *> SubSectionList;
//! Convenience type for list of options.
std::string title_;
//! Full description for the Options object.
std::string description_;
+ /*! \brief
+ * Option managers set for this collection.
+ *
+ * This is non-empty only for the top-level Options object.
+ */
+ OptionManagerContainer managers_;
/*! \brief
* List of subsections, in insertion order.
*
namespace gmx
{
+/********************************************************************
+ * OptionManagerInterface
+ */
+
+OptionManagerInterface::~OptionManagerInterface()
+{
+}
+
/********************************************************************
* Options::Impl
*/
impl_->description_ = concatenateStrings(descArray.data(), descArray.size());
}
+void Options::addManager(OptionManagerInterface *manager)
+{
+ GMX_RELEASE_ASSERT(impl_->parent_ == NULL,
+ "Can only add a manager in a top-level Options object");
+ // This ensures that all options see the same set of managers.
+ GMX_RELEASE_ASSERT(impl_->options_.empty(),
+ "Can only add a manager before options");
+ // This check could be relaxed if we instead checked that the subsections
+ // do not have options.
+ GMX_RELEASE_ASSERT(impl_->subSections_.empty(),
+ "Can only add a manager before subsections");
+ impl_->managers_.add(manager);
+}
+
void Options::addSubSection(Options *section)
{
+ // This is required, because managers are used from the root Options
+ // object, so they are only seen after the subsection has been added.
+ GMX_RELEASE_ASSERT(section->impl_->options_.empty(),
+ "Can only add a subsection before it has any options");
+ GMX_RELEASE_ASSERT(section->impl_->managers_.empty(),
+ "Can only have managers in a top-level Options object");
// Make sure that section is not already inserted somewhere.
GMX_RELEASE_ASSERT(section->impl_->parent_ == NULL,
"Cannot add as subsection twice");
OptionInfo *Options::addOption(const AbstractOption &settings)
{
- AbstractOptionStoragePointer option(settings.createStorage());
+ Options::Impl *root = impl_.get();
+ while (root->parent_ != NULL)
+ {
+ root = root->parent_->impl_.get();
+ }
+ Impl::AbstractOptionStoragePointer option(settings.createStorage(root->managers_));
if (impl_->findOption(option->name().c_str()) != NULL)
{
GMX_THROW(APIError("Duplicate option: " + option->name()));
class OptionsAssigner;
class OptionsIterator;
+/*! \brief
+ * Base class for option managers.
+ *
+ * This class is used as a marker for all classes that are used with
+ * Options::addManager(). It doesn't provide any methods, but only supports
+ * transporting these classes through the Options collection into the
+ * individual option implementation classes.
+ *
+ * The virtual destructor is present to make this class polymorphic, such that
+ * `dynamic_cast` can be used when retrieving a manager of a certain type for
+ * the individual options.
+ *
+ * \inlibraryapi
+ * \ingroup module_options
+ */
+class OptionManagerInterface
+{
+ protected:
+ virtual ~OptionManagerInterface();
+};
+
/*! \brief
* Collection of options.
*
*/
void setDescription(const ConstArrayRef<const char *> &descArray);
+ /*! \brief
+ * Adds an option manager.
+ *
+ * \param manager Manager to add.
+ * \throws std::bad_alloc if out of memory.
+ *
+ * Option managers are used by some types of options that require
+ * interaction between different option instances (e.g., selection
+ * options), or need to support globally set properties (e.g., a global
+ * default file prefix). Option objects can retrieve the pointer to
+ * their manager when they are created, and the caller can alter the
+ * behavior of the options through the manager.
+ * See the individual managers for details.
+ *
+ * Caller is responsible for memory management of \p manager.
+ * The Options object (and its contained options) only stores a
+ * reference to the object.
+ *
+ * This method cannot be called after adding options or subsections.
+ */
+ void addManager(OptionManagerInterface *manager);
+
/*! \brief
* Adds an option collection as a subsection of this collection.
*
* subsection. If an attempt is made to add two different subsections
* with the same name, this function asserts.
*
- * For certain functionality to work properly, no options should
- * be added to the subsection after it has been added to another
- * collection.
+ * \p section should not have any options added at the point this
+ * method is called.
*
* Only a pointer to the provided object is stored. The caller is
* responsible that the object exists for the lifetime of the
#
# This file is part of the GROMACS molecular simulation package.
#
-# Copyright (c) 2010,2011,2012, by the GROMACS development team, led by
+# Copyright (c) 2010,2011,2012,2014, 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.
gmx_add_unit_test(OptionsUnitTests options-test
abstractoptionstorage.cpp
filenameoption.cpp
+ filenameoptionmanager.cpp
option.cpp
optionsassigner.cpp
timeunitmanager.cpp)
}
private:
- virtual gmx::AbstractOptionStoragePointer createStorage() const
+ virtual gmx::AbstractOptionStorage *createStorage(
+ const gmx::OptionManagerContainer & /*managers*/) const
{
- return gmx::AbstractOptionStoragePointer(new MockOptionStorage(*this));
+ return new MockOptionStorage(*this);
}
};
*/
/*! \internal \file
* \brief
- * Tests file name option implementation.
+ * Tests basic file name option implementation.
*
* \author Teemu Murtola <teemu.murtola@gmail.com>
* \ingroup module_options
*/
-#include <vector>
+#include "gromacs/options/filenameoption.h"
#include <gtest/gtest.h>
-#include "gromacs/options/filenameoption.h"
#include "gromacs/options/options.h"
#include "gromacs/options/optionsassigner.h"
#include "gromacs/utility/exceptions.h"
-#include "gromacs/utility/file.h"
#include "testutils/testasserts.h"
-#include "testutils/testfilemanager.h"
namespace
{
using gmx::FileNameOption;
-using gmx::test::TestFileManager;
-TEST(FileNameOptionTest, AddsMissingExtension)
+TEST(FileNameOptionTest, HandlesRequiredDefaultValueWithoutExtension)
{
gmx::Options options(NULL, NULL);
std::string value;
ASSERT_NO_THROW_GMX(options.addOption(
- FileNameOption("f").store(&value)
- .filetype(gmx::eftTrajectory).outputFile()));
+ FileNameOption("f").store(&value).required()
+ .filetype(gmx::eftGenericData).outputFile()
+ .defaultBasename("testfile")));
+ EXPECT_EQ("testfile.dat", value);
gmx::OptionsAssigner assigner(&options);
EXPECT_NO_THROW_GMX(assigner.start());
- EXPECT_NO_THROW_GMX(assigner.startOption("f"));
- EXPECT_NO_THROW_GMX(assigner.appendValue("testfile"));
- EXPECT_NO_THROW_GMX(assigner.finishOption());
EXPECT_NO_THROW_GMX(assigner.finish());
EXPECT_NO_THROW_GMX(options.finish());
- EXPECT_EQ("testfile.xtc", value);
+ EXPECT_EQ("testfile.dat", value);
}
-TEST(FileNameOptionTest, HandlesRequiredDefaultValueWithoutExtension)
+TEST(FileNameOptionTest, HandlesRequiredOptionWithoutValue)
{
gmx::Options options(NULL, NULL);
std::string value;
gmx::OptionsAssigner assigner(&options);
EXPECT_NO_THROW_GMX(assigner.start());
+ EXPECT_NO_THROW_GMX(assigner.startOption("f"));
+ EXPECT_NO_THROW_GMX(assigner.finishOption());
EXPECT_NO_THROW_GMX(assigner.finish());
EXPECT_NO_THROW_GMX(options.finish());
EXPECT_EQ("testfile.dat", value);
}
-TEST(FileNameOptionTest, HandlesRequiredOptionWithoutValue)
+TEST(FileNameOptionTest, HandlesOptionalUnsetOption)
{
gmx::Options options(NULL, NULL);
std::string value;
ASSERT_NO_THROW_GMX(options.addOption(
- FileNameOption("f").store(&value).required()
- .filetype(gmx::eftGenericData).outputFile()
+ FileNameOption("f").store(&value)
+ .filetype(gmx::eftTrajectory).outputFile()
.defaultBasename("testfile")));
+ EXPECT_TRUE(value.empty());
gmx::OptionsAssigner assigner(&options);
EXPECT_NO_THROW_GMX(assigner.start());
- EXPECT_NO_THROW_GMX(assigner.startOption("f"));
- EXPECT_NO_THROW_GMX(assigner.finishOption());
EXPECT_NO_THROW_GMX(assigner.finish());
EXPECT_NO_THROW_GMX(options.finish());
- EXPECT_EQ("testfile.dat", value);
+ EXPECT_TRUE(value.empty());
}
TEST(FileNameOptionTest, HandlesOptionalDefaultValueWithoutExtension)
EXPECT_EQ("testfile.ndx", value);
}
-TEST(FileNameOptionTest, AddsMissingExtensionBasedOnExistingFile)
+TEST(FileNameOptionTest, GivesErrorOnUnknownFileSuffix)
+{
+ gmx::Options options(NULL, NULL);
+ std::string value;
+ ASSERT_NO_THROW_GMX(options.addOption(
+ FileNameOption("f").store(&value)
+ .filetype(gmx::eftIndex).outputFile()));
+ EXPECT_TRUE(value.empty());
+
+ gmx::OptionsAssigner assigner(&options);
+ EXPECT_NO_THROW_GMX(assigner.start());
+ EXPECT_NO_THROW_GMX(assigner.startOption("f"));
+ EXPECT_THROW_GMX(assigner.appendValue("testfile.foo"), gmx::InvalidInputError);
+ EXPECT_NO_THROW_GMX(assigner.finishOption());
+ EXPECT_NO_THROW_GMX(assigner.finish());
+ EXPECT_NO_THROW_GMX(options.finish());
+
+ EXPECT_TRUE(value.empty());
+}
+
+TEST(FileNameOptionTest, GivesErrorOnInvalidFileSuffix)
{
gmx::Options options(NULL, NULL);
std::string value;
ASSERT_NO_THROW_GMX(options.addOption(
FileNameOption("f").store(&value)
- .filetype(gmx::eftTrajectory).inputFile()));
- TestFileManager tempFiles;
- std::string filename(tempFiles.getTemporaryFilePath(".trr"));
- gmx::File::writeFileFromString(filename, "Dummy trajectory file");
- std::string inputValue(filename.substr(0, filename.length() - 4));
+ .filetype(gmx::eftTrajectory).outputFile()));
+ EXPECT_TRUE(value.empty());
gmx::OptionsAssigner assigner(&options);
EXPECT_NO_THROW_GMX(assigner.start());
EXPECT_NO_THROW_GMX(assigner.startOption("f"));
- EXPECT_NO_THROW_GMX(assigner.appendValue(inputValue));
+ EXPECT_THROW_GMX(assigner.appendValue("testfile.dat"), gmx::InvalidInputError);
EXPECT_NO_THROW_GMX(assigner.finishOption());
EXPECT_NO_THROW_GMX(assigner.finish());
EXPECT_NO_THROW_GMX(options.finish());
- EXPECT_EQ(filename, value);
+ EXPECT_TRUE(value.empty());
}
} // namespace
--- /dev/null
+/*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+ * Copyright (c) 2014, 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.
+ *
+ * GROMACS is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1
+ * of the License, or (at your option) any later version.
+ *
+ * GROMACS is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with GROMACS; if not, see
+ * http://www.gnu.org/licenses, or write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * If you want to redistribute modifications to GROMACS, 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 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.
+ */
+/*! \internal \file
+ * \brief
+ * Tests file name option implementation dependent on gmx::FileNameOptionManager.
+ *
+ * \author Teemu Murtola <teemu.murtola@gmail.com>
+ * \ingroup module_options
+ */
+#include "gromacs/options/filenameoptionmanager.h"
+
+#include <gtest/gtest.h>
+
+#include "gromacs/options/filenameoption.h"
+#include "gromacs/options/options.h"
+#include "gromacs/options/optionsassigner.h"
+#include "gromacs/utility/exceptions.h"
+#include "gromacs/utility/file.h"
+#include "gromacs/utility/path.h"
+
+#include "testutils/testasserts.h"
+#include "testutils/testfilemanager.h"
+
+namespace
+{
+
+using gmx::FileNameOption;
+
+class FileNameOptionManagerTest : public ::testing::Test
+{
+ public:
+ FileNameOptionManagerTest()
+ : options_(NULL, NULL)
+ {
+ options_.addManager(&manager_);
+ }
+
+ std::string createDummyFile(const char *suffix)
+ {
+ std::string filename(tempFiles_.getTemporaryFilePath(suffix));
+ gmx::File::writeFileFromString(filename, "Dummy file");
+ return filename;
+ }
+
+ gmx::FileNameOptionManager manager_;
+ gmx::Options options_;
+ gmx::test::TestFileManager tempFiles_;
+};
+
+/********************************************************************
+ * Actual tests
+ */
+
+TEST_F(FileNameOptionManagerTest, AddsMissingExtension)
+{
+ std::string value;
+ ASSERT_NO_THROW_GMX(options_.addOption(
+ FileNameOption("f").store(&value)
+ .filetype(gmx::eftTrajectory).outputFile()));
+
+ gmx::OptionsAssigner assigner(&options_);
+ EXPECT_NO_THROW_GMX(assigner.start());
+ EXPECT_NO_THROW_GMX(assigner.startOption("f"));
+ EXPECT_NO_THROW_GMX(assigner.appendValue("testfile"));
+ EXPECT_NO_THROW_GMX(assigner.finishOption());
+ EXPECT_NO_THROW_GMX(assigner.finish());
+ EXPECT_NO_THROW_GMX(options_.finish());
+
+ EXPECT_EQ("testfile.xtc", value);
+}
+
+TEST_F(FileNameOptionManagerTest, GivesErrorOnMissingInputFile)
+{
+ std::string value;
+ ASSERT_NO_THROW_GMX(options_.addOption(
+ FileNameOption("f").store(&value)
+ .filetype(gmx::eftIndex).inputFile()));
+ EXPECT_TRUE(value.empty());
+
+ gmx::OptionsAssigner assigner(&options_);
+ EXPECT_NO_THROW_GMX(assigner.start());
+ EXPECT_NO_THROW_GMX(assigner.startOption("f"));
+ EXPECT_THROW_GMX(assigner.appendValue("missing.ndx"), gmx::InvalidInputError);
+ EXPECT_NO_THROW_GMX(assigner.finishOption());
+ EXPECT_NO_THROW_GMX(assigner.finish());
+ EXPECT_NO_THROW_GMX(options_.finish());
+
+ EXPECT_TRUE(value.empty());
+}
+
+TEST_F(FileNameOptionManagerTest, GivesErrorOnMissingGenericInputFile)
+{
+ std::string value;
+ ASSERT_NO_THROW_GMX(options_.addOption(
+ FileNameOption("f").store(&value)
+ .filetype(gmx::eftTrajectory).inputFile()));
+ EXPECT_TRUE(value.empty());
+
+ gmx::OptionsAssigner assigner(&options_);
+ EXPECT_NO_THROW_GMX(assigner.start());
+ EXPECT_NO_THROW_GMX(assigner.startOption("f"));
+ EXPECT_THROW_GMX(assigner.appendValue("missing.trr"), gmx::InvalidInputError);
+ EXPECT_NO_THROW_GMX(assigner.finishOption());
+ EXPECT_NO_THROW_GMX(assigner.finish());
+ EXPECT_NO_THROW_GMX(options_.finish());
+
+ EXPECT_TRUE(value.empty());
+}
+
+TEST_F(FileNameOptionManagerTest, GivesErrorOnMissingDefaultInputFile)
+{
+ std::string value;
+ ASSERT_NO_THROW_GMX(options_.addOption(
+ FileNameOption("f").store(&value)
+ .filetype(gmx::eftIndex).inputFile()
+ .defaultBasename("missing")));
+
+ gmx::OptionsAssigner assigner(&options_);
+ EXPECT_NO_THROW_GMX(assigner.start());
+ EXPECT_NO_THROW_GMX(assigner.startOption("f"));
+ EXPECT_NO_THROW_GMX(assigner.finishOption());
+ EXPECT_NO_THROW_GMX(assigner.finish());
+ EXPECT_THROW_GMX(options_.finish(), gmx::InvalidInputError);
+}
+
+TEST_F(FileNameOptionManagerTest, GivesErrorOnMissingRequiredInputFile)
+{
+ std::string value;
+ ASSERT_NO_THROW_GMX(options_.addOption(
+ FileNameOption("f").store(&value).required()
+ .filetype(gmx::eftIndex).inputFile()
+ .defaultBasename("missing")));
+ EXPECT_EQ("missing.ndx", value);
+
+ gmx::OptionsAssigner assigner(&options_);
+ EXPECT_NO_THROW_GMX(assigner.start());
+ EXPECT_NO_THROW_GMX(assigner.finish());
+ EXPECT_THROW_GMX(options_.finish(), gmx::InvalidInputError);
+}
+
+TEST_F(FileNameOptionManagerTest, AddsMissingExtensionBasedOnExistingFile)
+{
+ std::string filename(createDummyFile(".trr"));
+ std::string inputValue(gmx::Path::stripExtension(filename));
+
+ std::string value;
+ ASSERT_NO_THROW_GMX(options_.addOption(
+ FileNameOption("f").store(&value)
+ .filetype(gmx::eftTrajectory).inputFile()));
+
+ gmx::OptionsAssigner assigner(&options_);
+ EXPECT_NO_THROW_GMX(assigner.start());
+ EXPECT_NO_THROW_GMX(assigner.startOption("f"));
+ EXPECT_NO_THROW_GMX(assigner.appendValue(inputValue));
+ EXPECT_NO_THROW_GMX(assigner.finishOption());
+ EXPECT_NO_THROW_GMX(assigner.finish());
+ EXPECT_NO_THROW_GMX(options_.finish());
+
+ EXPECT_EQ(filename, value);
+}
+
+TEST_F(FileNameOptionManagerTest,
+ AddsMissingExtensionForRequiredDefaultNameBasedOnExistingFile)
+{
+ std::string filename(createDummyFile(".trr"));
+ std::string inputValue(gmx::Path::stripExtension(filename));
+
+ std::string value;
+ ASSERT_NO_THROW_GMX(options_.addOption(
+ FileNameOption("f").store(&value).required()
+ .filetype(gmx::eftTrajectory).inputFile()
+ .defaultBasename(inputValue.c_str())));
+ EXPECT_EQ(inputValue + ".xtc", value);
+
+ gmx::OptionsAssigner assigner(&options_);
+ EXPECT_NO_THROW_GMX(assigner.start());
+ EXPECT_NO_THROW_GMX(assigner.startOption("f"));
+ EXPECT_NO_THROW_GMX(assigner.finishOption());
+ EXPECT_NO_THROW_GMX(assigner.finish());
+ EXPECT_NO_THROW_GMX(options_.finish());
+
+ EXPECT_EQ(filename, value);
+}
+
+TEST_F(FileNameOptionManagerTest,
+ AddsMissingExtensionForOptionalDefaultNameBasedOnExistingFile)
+{
+ std::string filename(createDummyFile(".trr"));
+ std::string inputValue(gmx::Path::stripExtension(filename));
+
+ std::string value;
+ ASSERT_NO_THROW_GMX(options_.addOption(
+ FileNameOption("f").store(&value)
+ .filetype(gmx::eftTrajectory).inputFile()
+ .defaultBasename(inputValue.c_str())));
+
+ gmx::OptionsAssigner assigner(&options_);
+ EXPECT_NO_THROW_GMX(assigner.start());
+ EXPECT_NO_THROW_GMX(assigner.startOption("f"));
+ EXPECT_NO_THROW_GMX(assigner.finishOption());
+ EXPECT_NO_THROW_GMX(assigner.finish());
+ EXPECT_NO_THROW_GMX(options_.finish());
+
+ EXPECT_EQ(filename, value);
+}
+
+TEST_F(FileNameOptionManagerTest,
+ AddsMissingExtensionForRequiredFromDefaultNameOptionBasedOnExistingFile)
+{
+ std::string filename(createDummyFile(".trr"));
+ std::string inputValue(gmx::Path::stripExtension(filename));
+
+ std::string value;
+ ASSERT_NO_THROW_GMX(options_.addOption(
+ FileNameOption("f").store(&value).required()
+ .filetype(gmx::eftTrajectory).inputFile()
+ .defaultBasename("foo")));
+ ASSERT_NO_THROW_GMX(manager_.addDefaultFileNameOption(&options_, "deffnm"));
+ EXPECT_EQ("foo.xtc", value);
+
+ gmx::OptionsAssigner assigner(&options_);
+ EXPECT_NO_THROW_GMX(assigner.start());
+ EXPECT_NO_THROW_GMX(assigner.startOption("deffnm"));
+ EXPECT_NO_THROW_GMX(assigner.appendValue(inputValue));
+ EXPECT_NO_THROW_GMX(assigner.finishOption());
+ EXPECT_NO_THROW_GMX(assigner.finish());
+ EXPECT_NO_THROW_GMX(options_.finish());
+
+ EXPECT_EQ(filename, value);
+}
+
+TEST_F(FileNameOptionManagerTest,
+ AddsMissingExtensionForOptionalFromDefaultNameOptionBasedOnExistingFile)
+{
+ std::string filename(createDummyFile(".trr"));
+ std::string inputValue(gmx::Path::stripExtension(filename));
+
+ std::string value;
+ ASSERT_NO_THROW_GMX(options_.addOption(
+ FileNameOption("f").store(&value)
+ .filetype(gmx::eftTrajectory).inputFile()
+ .defaultBasename("foo")));
+ ASSERT_NO_THROW_GMX(manager_.addDefaultFileNameOption(&options_, "deffnm"));
+
+ gmx::OptionsAssigner assigner(&options_);
+ EXPECT_NO_THROW_GMX(assigner.start());
+ EXPECT_NO_THROW_GMX(assigner.startOption("deffnm"));
+ EXPECT_NO_THROW_GMX(assigner.appendValue(inputValue));
+ EXPECT_NO_THROW_GMX(assigner.finishOption());
+ EXPECT_NO_THROW_GMX(assigner.startOption("f"));
+ EXPECT_NO_THROW_GMX(assigner.finishOption());
+ EXPECT_NO_THROW_GMX(assigner.finish());
+ EXPECT_NO_THROW_GMX(options_.finish());
+
+ EXPECT_EQ(filename, value);
+}
+
+} // namespace
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2010,2011,2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2010,2011,2012,2013,2014, 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.
int value1 = 1;
int value2 = 2;
using gmx::IntegerOption;
+ ASSERT_NO_THROW(options.addSubSection(&sub1));
+ ASSERT_NO_THROW(options.addSubSection(&sub2));
ASSERT_NO_THROW(options.addOption(IntegerOption("p").store(&value)));
ASSERT_NO_THROW(sub1.addOption(IntegerOption("p").store(&value1)));
ASSERT_NO_THROW(sub2.addOption(IntegerOption("p").store(&value2)));
- ASSERT_NO_THROW(options.addSubSection(&sub1));
- ASSERT_NO_THROW(options.addSubSection(&sub2));
gmx::OptionsAssigner assigner(&options);
EXPECT_NO_THROW(assigner.start());
int pvalue2 = 2;
int rvalue = 5;
using gmx::IntegerOption;
+ ASSERT_NO_THROW(options.addSubSection(&sub1));
+ ASSERT_NO_THROW(options.addSubSection(&sub2));
ASSERT_NO_THROW(options.addOption(IntegerOption("p").store(&pvalue)));
ASSERT_NO_THROW(sub1.addOption(IntegerOption("p").store(&pvalue1)));
ASSERT_NO_THROW(sub1.addOption(IntegerOption("q").store(&qvalue)));
ASSERT_NO_THROW(sub2.addOption(IntegerOption("p").store(&pvalue2)));
ASSERT_NO_THROW(sub2.addOption(IntegerOption("r").store(&rvalue)));
- ASSERT_NO_THROW(options.addSubSection(&sub1));
- ASSERT_NO_THROW(options.addSubSection(&sub2));
gmx::OptionsAssigner assigner(&options);
assigner.setNoStrictSectioning(true);
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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 "gromacs/options/timeunitmanager.h"
+#include <cstdlib>
+
+#include <algorithm>
+
#include "gromacs/options/basicoptions.h"
#include "gromacs/options/options.h"
#include "gromacs/options/optionsvisitor.h"
+#include "gromacs/utility/arrayref.h"
+#include "gromacs/utility/exceptions.h"
#include "gromacs/utility/gmxassert.h"
+#include "gromacs/utility/stringutil.h"
namespace
{
return 1.0 / timeScaleFactor();
}
+void TimeUnitManager::setTimeUnitFromEnvironment()
+{
+ const char *const value = std::getenv("GMXTIMEUNIT");
+ if (value != NULL)
+ {
+ ConstArrayRef<const char *> timeUnits(g_timeUnits);
+ ConstArrayRef<const char *>::const_iterator i =
+ std::find(timeUnits.begin(), timeUnits.end(), std::string(value));
+ if (i == timeUnits.end())
+ {
+ std::string message = formatString(
+ "Time unit provided with environment variable GMXTIMEUNIT=%s "
+ "is not recognized as a valid time unit.\n"
+ "Possible values are: %s",
+ value, joinStrings(timeUnits, ", ").c_str());
+ GMX_THROW(InvalidInputError(message));
+ }
+ timeUnit_ = i - timeUnits.begin();
+ }
+}
+
void TimeUnitManager::addTimeUnitOption(Options *options, const char *name)
{
options->addOption(StringOption(name).enumValue(g_timeUnits)
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012, by the GROMACS development team, led by
+ * Copyright (c) 2012,2014, 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.
//! Returns the scaling factor to convert times from ps.
double inverseTimeScaleFactor() const;
+ /*! \brief
+ * Sets the time unit in this manager from an environment variable.
+ */
+ void setTimeUnitFromEnvironment();
/*! \brief
* Adds a common option for selecting the time unit.
*
--- /dev/null
+#
+# This file is part of the GROMACS molecular simulation package.
+#
+# Copyright (c) 2014, 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.
+#
+# GROMACS is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public License
+# as published by the Free Software Foundation; either version 2.1
+# of the License, or (at your option) any later version.
+#
+# GROMACS is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with GROMACS; if not, see
+# http://www.gnu.org/licenses, or write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# If you want to redistribute modifications to GROMACS, 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 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 PBCUTIL_SOURCES *.cpp *.c)
+set(LIBGROMACS_SOURCES ${LIBGROMACS_SOURCES} ${PBCUTIL_SOURCES} PARENT_SCOPE)
+
+set(PBCUTIL_PUBLIC_HEADERS
+ ishift.h
+ pbc.h
+ rmpbc.h)
+
+gmx_install_headers(pbcutil ${PBCUTIL_PUBLIC_HEADERS})
+
+if (BUILD_TESTING)
+# add_subdirectory(tests)
+endif()
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2010, by the GROMACS development team, led by
+ * Copyright (c) 2010,2014, 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.
*/
-
-
-/* not really neccesary, right now: */
-#ifdef __cplusplus
-extern "C" {
-#endif
-
+#ifndef GMX_PBCUTIL_ISHIFT_H
+#define GMX_PBCUTIL_ISHIFT_H
#define D_BOX_Z 1
#define D_BOX_Y 1
#define IS2Y(iv) ((((iv) / N_BOX_X) % N_BOX_Y) - D_BOX_Y)
#define IS2Z(iv) ((iv) / (N_BOX_X*N_BOX_Y) - D_BOX_Z)
-
-#ifdef __cplusplus
-}
#endif
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "gromacs/pbcutil/mshift.h"
+
+#include "config.h"
#include <string.h>
+
+#include <algorithm>
+
+#include "gromacs/legacyheaders/types/ifunc.h"
+
+#include "gromacs/math/vec.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/smalloc.h"
-#include "gmx_fatal.h"
-#include "macros.h"
-#include "vec.h"
-#include "gromacs/fileio/futil.h"
-#include "mshift.h"
-#include "main.h"
-#include "pbc.h"
/************************************************************
*
nbond[iaa] += 2;
nbond[ia[2]] += 1;
nbond[ia[3]] += 1;
- g->at_start = min(g->at_start, iaa);
- g->at_end = max(g->at_end, iaa+2+1);
+ g->at_start = std::min(g->at_start, iaa);
+ g->at_end = std::max(g->at_end, iaa+2+1);
}
}
else
iaa = ia[k];
if (iaa >= at_start && iaa < at_end)
{
- g->at_start = min(g->at_start, iaa);
- g->at_end = max(g->at_end, iaa+1);
+ g->at_start = std::min(g->at_start, iaa);
+ g->at_end = std::max(g->at_end, iaa+1);
/* When making the graph we (might) link all atoms in an interaction
* sequentially. Therefore the end atoms add 1 to the count,
* the middle atoms 2.
for (i = g->at_start; (i < g->at_end); i++)
{
nbtot += nbond[i];
- nnb = max(nnb, nbond[i]);
+ nnb = std::max(nnb, nbond[i]);
}
if (fplog)
{
static void compact_graph(FILE *fplog, t_graph *g)
{
int i, j, n, max_nedge;
- atom_id *e;
max_nedge = 0;
n = 0;
{
g->edge[0][n++] = g->edge[i][j];
}
- max_nedge = max(max_nedge, g->nedge[i]);
+ max_nedge = std::max(max_nedge, g->nedge[i]);
}
srenew(g->edge[0], n);
/* set pointers after srenew because edge[0] might move */
void done_graph(t_graph *g)
{
- int i;
-
GCHECK(g);
if (g->nnodes > 0)
{
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2013, by the GROMACS development team, led by
+ * Copyright (c) 2013,2014, 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.
*/
+#ifndef GMX_PBCUTIL_MSHIFT_H
+#define GMX_PBCUTIL_MSHIFT_H
-#ifndef _mshift_h
-#define _mshift_h
+#include <stdio.h>
-#include "typedefs.h"
+#include "gromacs/legacyheaders/types/simple.h"
+#include "gromacs/math/vectypes.h"
+#include "gromacs/utility/basedefinitions.h"
#ifdef __cplusplus
extern "C" {
#endif
+struct t_idef;
+struct t_ilist;
+
+typedef enum {
+ egcolWhite, egcolGrey, egcolBlack, egcolNR
+} egCol;
+
+typedef struct t_graph {
+ int at0; /* The first atom the graph was constructed for */
+ int at1; /* The last atom the graph was constructed for */
+ int nnodes; /* The number of nodes, nnodes=at_end-at_start */
+ int nbound; /* The number of nodes with edges */
+ int at_start; /* The first connected atom in this graph */
+ int at_end; /* The last+1 connected atom in this graph */
+ int *nedge; /* For each node the number of edges */
+ atom_id **edge; /* For each node, the actual edges (bidirect.) */
+ gmx_bool bScrewPBC; /* Screw boundary conditions */
+ ivec *ishift; /* Shift for each particle */
+ int negc;
+ egCol *egc; /* color of each node */
+} t_graph;
+
+#define SHIFT_IVEC(g, i) ((g)->ishift[i])
+
t_graph *mk_graph(FILE *fplog,
- t_idef *idef, int at_start, int at_end,
+ struct t_idef *idef, int at_start, int at_end,
gmx_bool bShakeOnly, gmx_bool bSettle);
/* Build a graph from an idef description. The graph can be used
* to generate mol-shift indices.
*/
void mk_graph_ilist(FILE *fplog,
- t_ilist *ilist, int at_start, int at_end,
+ struct t_ilist *ilist, int at_start, int at_end,
gmx_bool bShakeOnly, gmx_bool bSettle,
t_graph *g);
/* As mk_graph, but takes t_ilist iso t_idef and does not allocate g */
}
#endif
-#endif /* _mshift_h */
+#endif
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "gromacs/pbcutil/pbc.h"
+
+#include "config.h"
-#include <math.h>
#include <assert.h>
+#include <math.h>
-#include "sysstuff.h"
-#include "typedefs.h"
+#include "gromacs/legacyheaders/types/inputrec.h"
#include "types/commrec.h"
-#include "vec.h"
-#include "gromacs/math/utilities.h"
-#include "main.h"
-#include "pbc.h"
-#include "gromacs/utility/smalloc.h"
#include "txtdump.h"
-#include "gmx_fatal.h"
#include "names.h"
#include "macros.h"
#include "gmx_omp_nthreads.h"
+#include "gromacs/math/utilities.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/pbcutil/ishift.h"
+#include "gromacs/pbcutil/mshift.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
+
/* Skip 0 so we have more chance of detecting if we forgot to call set_pbc. */
enum {
epbcdxRECTANGULAR = 1, epbcdxTRICLINIC,
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
+#ifndef GMX_PBCUTIL_PBC_H
+#define GMX_PBCUTIL_PBC_H
-#ifndef _types_pbc_h
-#define _types_pbc_h
+#include <stdio.h>
-#include "sysstuff.h"
-#include "typedefs.h"
+#include "../legacyheaders/types/commrec_fwd.h"
+#include "../legacyheaders/types/inputrec.h"
+#include "../math/vectypes.h"
+#include "../utility/basedefinitions.h"
+#include "../utility/real.h"
#ifdef __cplusplus
extern "C" {
#endif
+/* Maximum number of combinations of single triclinic box vectors
+ * required to shift atoms that are within a brick of the size of
+ * the diagonal of the box to within the maximum cut-off distance.
+ */
+#define MAX_NTRICVEC 12
+
+typedef struct t_pbc {
+ int ePBC;
+ int ndim_ePBC;
+ int ePBCDX;
+ int dim;
+ matrix box;
+ rvec fbox_diag;
+ rvec hbox_diag;
+ rvec mhbox_diag;
+ real max_cutoff2;
+ gmx_bool bLimitDistance;
+ real limit_distance2;
+ int ntric_vec;
+ ivec tric_shift[MAX_NTRICVEC];
+ rvec tric_vec[MAX_NTRICVEC];
+} t_pbc;
+
#define TRICLINIC(box) (box[YY][XX] != 0 || box[ZZ][XX] != 0 || box[ZZ][YY] != 0)
#define NTRICIMG 14
ecenterDEF = ecenterTRIC
};
+struct t_graph;
+
int ePBC2npbcdim(int ePBC);
/* Returns the number of dimensions that use pbc, starting at X */
int guess_ePBC(matrix box);
/* Guesses the type of periodic boundary conditions using the box */
-gmx_bool correct_box(FILE *fplog, int step, tensor box, t_graph *graph);
+gmx_bool correct_box(FILE *fplog, int step, tensor box, struct t_graph *graph);
/* Checks for un-allowed box angles and corrects the box
* and the integer shift vectors in the graph (if graph!=NULL) if necessary.
* Returns TRUE when the box was corrected.
}
#endif
-#endif /* _pbc_h */
+#endif
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "sysstuff.h"
-#include "typedefs.h"
-#include "mshift.h"
-#include "pbc.h"
-#include "rmpbc.h"
-#include "vec.h"
-
-#include "gromacs/fileio/futil.h"
-#include "gmx_fatal.h"
+#include "gromacs/pbcutil/rmpbc.h"
+
+#include "config.h"
+
+#include "gromacs/fileio/trx.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/pbcutil/mshift.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/topology/atoms.h"
+#include "gromacs/topology/idef.h"
+#include "gromacs/utility/futil.h"
+#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/smalloc.h"
typedef struct {
t_graph *gr;
} rmpbc_graph_t;
-typedef struct gmx_rmpbc {
+struct gmx_rmpbc {
t_idef *idef;
int natoms_init;
int ePBC;
int ngraph;
rmpbc_graph_t *graph;
-} koeiepoep;
+};
static t_graph *gmx_rmpbc_get_graph(gmx_rmpbc_t gpbc, int ePBC, int natoms)
{
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2013, by the GROMACS development team, led by
+ * Copyright (c) 2013,2014, 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.
*/
+#ifndef GMX_PBCUTIL_RMPBC_H
+#define GMX_PBCUTIL_RMPBC_H
-#ifndef _rmpbc_h
-#define _rmpbc_h
-
-#include "typedefs.h"
+#include "../math/vectypes.h"
#ifdef __cplusplus
extern "C" {
#endif
+struct t_atoms;
+struct t_idef;
+struct t_trxframe;
+
typedef struct gmx_rmpbc *gmx_rmpbc_t;
-gmx_rmpbc_t gmx_rmpbc_init(t_idef *idef, int ePBC, int natoms);
+gmx_rmpbc_t gmx_rmpbc_init(struct t_idef *idef, int ePBC, int natoms);
void gmx_rmpbc_done(gmx_rmpbc_t gpbc);
rvec x_s[]);
/* As gmx_rmpbc, but outputs in x_s and does not modify x. */
-void gmx_rmpbc_trxfr(gmx_rmpbc_t gpbc, t_trxframe *fr);
+void gmx_rmpbc_trxfr(gmx_rmpbc_t gpbc, struct t_trxframe *fr);
/* As gmx_rmpbc but operates on a t_trxframe data structure. */
-/*void rm_pbc(t_idef *idef,int ePBC,int natoms,
- matrix box,rvec x[],rvec x_s[]);*/
-/* Convenience function that still holds a static variable. */
-
-void rm_gropbc(t_atoms *atoms, rvec x[], matrix box);
+void rm_gropbc(struct t_atoms *atoms, rvec x[], matrix box);
/* Simple routine for use in analysis tools that just have a pdb or
* similar file.
*/
}
#endif
-#endif /* _rmpbc_h */
+#endif
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
+#include "config.h"
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
-#include "gromacs/fileio/futil.h"
-#include "index.h"
-#include "gromacs/fileio/gmxfio.h"
-#include "vec.h"
+#include <string.h>
+
+#include "gromacs/utility/futil.h"
#include "typedefs.h"
#include "types/commrec.h"
#include "network.h"
-#include "gromacs/fileio/filenm.h"
-#include <string.h>
-#include "gromacs/utility/smalloc.h"
#include "pull.h"
-#include "xvgr.h"
#include "names.h"
-#include "pbc.h"
-#include "mtop_util.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/topology/mtop_util.h"
#include "mdrun.h"
#include "gmx_ga2la.h"
#include "copyrite.h"
#include "macros.h"
-#include "vec.h"
+
+#include "gromacs/fileio/filenm.h"
+#include "gromacs/fileio/gmxfio.h"
+#include "gromacs/fileio/xvgr.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/utility/smalloc.h"
static void pull_print_group_x(FILE *out, ivec dim, const t_pull_group *pgrp)
{
if (pull->dim[m])
{
sprintf(buf, "%d %s%c", c+1, "c", 'X'+m);
- setname[nsets] = strdup(buf);
+ setname[nsets] = gmx_strdup(buf);
nsets++;
}
}
if (pull->dim[m])
{
sprintf(buf, "%d %s%c", c+1, "d", 'X'+m);
- setname[nsets] = strdup(buf);
+ setname[nsets] = gmx_strdup(buf);
nsets++;
}
}
else
{
sprintf(buf, "%d", c+1);
- setname[nsets] = strdup(buf);
+ setname[nsets] = gmx_strdup(buf);
nsets++;
}
}
extern "C" {
#endif
+struct t_pbc;
/*! \brief Get the distance to the reference and deviation for pull coord coord_ind.
*
*/
void get_pull_coord_distance(const t_pull *pull,
int coord_ind,
- const t_pbc *pbc, double t,
+ const struct t_pbc *pbc, double t,
dvec dr, double *dev);
*
* \returns The pull potential energy.
*/
-real pull_potential(int ePull, t_pull *pull, t_mdatoms *md, t_pbc *pbc,
+real pull_potential(int ePull, t_pull *pull, t_mdatoms *md, struct t_pbc *pbc,
t_commrec *cr, double t, real lambda,
rvec *x, rvec *f, tensor vir, real *dvdlambda);
* \param[in,out] v Velocities, which may get a pull correction.
* \param[in,out] vir The virial, which, if != NULL, gets a pull correction.
*/
-void pull_constraint(t_pull *pull, t_mdatoms *md, t_pbc *pbc,
+void pull_constraint(t_pull *pull, t_mdatoms *md, struct t_pbc *pbc,
t_commrec *cr, double dt, double t,
rvec *x, rvec *xp, rvec *v, tensor vir);
* \param[in,out] xp Updated x, can be NULL.
*
*/
-void pull_calc_coms(t_commrec *cr,
- t_pull *pull,
- t_mdatoms *md,
- t_pbc *pbc,
- double t,
- rvec x[],
- rvec *xp);
+void pull_calc_coms(t_commrec *cr,
+ t_pull *pull,
+ t_mdatoms *md,
+ struct t_pbc *pbc,
+ double t,
+ rvec x[],
+ rvec *xp);
#ifdef __cplusplus
}
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdio.h>
#include <stdlib.h>
#include "domdec.h"
#include "gromacs/utility/smalloc.h"
#include "network.h"
-#include "pbc.h"
+#include "gromacs/pbcutil/pbc.h"
#include "mdrun.h"
#include "txtdump.h"
#include "names.h"
-#include "mtop_util.h"
+#include "gromacs/topology/mtop_util.h"
#include "names.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "gmx_ga2la.h"
-#include "xvgr.h"
+#include "gromacs/fileio/xvgr.h"
#include "copyrite.h"
#include "macros.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/fileio/gmxfio.h"
#include "gromacs/fileio/trnio.h"
#include "gromacs/linearalgebra/nrjac.h"
add_to_string_aligned(&LegendStr, buf);
sprintf(buf2, "%s (degrees)", buf);
- setname[nsets] = strdup(buf2);
+ setname[nsets] = gmx_strdup(buf2);
nsets++;
}
for (g = 0; g < rot->ngrp; g++)
}
add_to_string_aligned(&LegendStr, buf);
sprintf(buf2, "%s (degrees)", buf);
- setname[nsets] = strdup(buf2);
+ setname[nsets] = gmx_strdup(buf2);
nsets++;
sprintf(buf, "tau%d", g);
add_to_string_aligned(&LegendStr, buf);
sprintf(buf2, "%s (kJ/mol)", buf);
- setname[nsets] = strdup(buf2);
+ setname[nsets] = gmx_strdup(buf2);
nsets++;
sprintf(buf, "energy%d", g);
add_to_string_aligned(&LegendStr, buf);
sprintf(buf2, "%s (kJ/mol)", buf);
- setname[nsets] = strdup(buf2);
+ setname[nsets] = gmx_strdup(buf2);
nsets++;
}
fprintf(fp, "#\n");
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdlib.h>
-#include "sysstuff.h"
-#include "princ.h"
-#include "gromacs/fileio/futil.h"
-#include "vec.h"
+#include "gromacs/utility/futil.h"
+#include "gromacs/math/vec.h"
#include "gromacs/utility/smalloc.h"
#include "typedefs.h"
#include "types/commrec.h"
#include "names.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "macros.h"
-#include "symtab.h"
-#include "index.h"
#include "gromacs/fileio/confio.h"
#include "network.h"
-#include "pbc.h"
+#include "gromacs/pbcutil/pbc.h"
#include "pull.h"
#include "gmx_ga2la.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include "random.h"
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifndef _GMX_RANDOM_H_
-#define _GMX_RANDOM_H_
+#ifndef GMX_RANDOM_RANDOM_H
+#define GMX_RANDOM_RANDOM_H
-#include <stdio.h>
-#include "types/simple.h"
+#include "gromacs/utility/basedefinitions.h"
+#include "gromacs/utility/real.h"
#ifdef __cplusplus
extern "C" {
#endif
/*! Fixed random number seeds for different types of RNG */
-#define RND_SEED_UPDATE 1 /*!< For coordinate update (sd, bd, ..) */
-#define RND_SEED_REPLEX 2 /*!< For replica exchange */
-#define RND_SEED_VRESCALE 3 /*!< For V-rescale thermostat */
-#define RND_SEED_ANDERSEN 4 /*!< For Andersen thermostat */
-#define RND_SEED_TPI 5 /*!< For test particle insertion */
-#define RND_SEED_EXPANDED 6 /*!< For expanded emseble methods */
+#define RND_SEED_UPDATE 1 /**< For coordinate update (sd, bd, ..) */
+#define RND_SEED_REPLEX 2 /**< For replica exchange */
+#define RND_SEED_VRESCALE 3 /**< For V-rescale thermostat */
+#define RND_SEED_ANDERSEN 4 /**< For Andersen thermostat */
+#define RND_SEED_TPI 5 /**< For test particle insertion */
+#define RND_SEED_EXPANDED 6 /**< For expanded emseble methods */
/*! \brief Abstract datatype for a random number generator
*
}
#endif
-#endif /* _GMX_RANDOM_H_ */
+#endif
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2009,2010,2011,2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2009,2010,2011,2012,2013,2014, 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 "gromacs/selection/centerofmass.h"
-#include "gromacs/legacyheaders/typedefs.h"
-#include "gromacs/legacyheaders/pbc.h"
-#include "gromacs/legacyheaders/vec.h"
+#include <errno.h>
+
+#include "gromacs/math/vec.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/topology/block.h"
+#include "gromacs/topology/topology.h"
int
gmx_calc_cog(t_topology * /* top */, rvec x[], int nrefat, atom_id index[], rvec xout)
#ifndef GMX_SELECTION_CENTEROFMASS_H
#define GMX_SELECTION_CENTEROFMASS_H
-#include "../legacyheaders/typedefs.h"
+#include "../legacyheaders/types/simple.h"
+#include "../math/vectypes.h"
+
+struct t_block;
+struct t_blocka;
+struct t_pbc;
+struct t_topology;
/*! \brief
* Calculate a single center of geometry.
#include <math.h>
#include <stdarg.h>
-#include "gromacs/legacyheaders/vec.h"
-
+#include "gromacs/math/vec.h"
#include "gromacs/selection/indexutil.h"
#include "gromacs/selection/poscalc.h"
#include "gromacs/selection/selection.h"
* \param[in,out] sc Selection collection data.
*
* The evaluation group of each \ref SEL_ROOT element corresponding to a
- * selection in \p sc is set to NULL. The evaluation grop for \ref SEL_ROOT
+ * selection in \p sc is set to NULL. The evaluation group for \ref SEL_ROOT
* elements corresponding to subexpressions that need full evaluation is set
* to \c sc->gall.
*/
{
child->cdata->evaluate = &_gmx_sel_evaluate_static;
/* The cgrp has only been allocated if it originated from an
- * external index group. In that case, we need special handling
- * to preserve the name of the group and to not leak memory.
+ * external index group.
* If cgrp has been set in make_static(), it is not allocated,
* and hence we can overwrite it safely. */
if (child->u.cgrp.nalloc_index > 0)
}
+/********************************************************************
+ * REQUIRED ATOMS ANALYSIS
+ ********************************************************************/
+
+/*! \brief
+ * Finds the highest atom index required to evaluate a selection subtree.
+ *
+ * \param[in] sel Root of the selection subtree to process.
+ * \param[in,out] maxAtomIndex The highest atom index required to evaluate the
+ * subtree. The existing value is never decreased, so multiple calls with
+ * the same parameter will compute the maximum over several subtrees.
+ *
+ * For evaluation that starts from a \ref SEL_ROOT element with a fixed group,
+ * children will never extend the evaluation group except for method parameter
+ * evaluation (which have their own root element), so it is sufficient to check
+ * the root. However, children of \ref SEL_EXPRESSION elements (i.e., the
+ * method parameters) may have been independently evaluated to a static group
+ * that no longer has a separate root, so those need to be checked as well.
+ *
+ * Position calculations are not considered here, but are analyzed through the
+ * position calculation collection in the main compilation method.
+ */
+static void
+init_required_atoms(const SelectionTreeElementPointer &sel, int *maxAtomIndex)
+{
+ // Process children.
+ if (sel->type != SEL_SUBEXPRREF)
+ {
+ SelectionTreeElementPointer child = sel->child;
+ while (child)
+ {
+ init_required_atoms(child, maxAtomIndex);
+ child = child->next;
+ }
+ }
+
+ if (sel->type == SEL_ROOT
+ || (sel->type == SEL_CONST && sel->v.type == GROUP_VALUE))
+ {
+ if (sel->u.cgrp.isize > 0)
+ {
+ *maxAtomIndex =
+ std::max(*maxAtomIndex, gmx_ana_index_get_max_index(&sel->u.cgrp));
+ }
+ }
+}
+
+
/********************************************************************
* FINAL SUBEXPRESSION OPTIMIZATION
********************************************************************/
coll->printTree(stderr, false);
}
- /* Initialize evaluation groups, position calculations for methods, perform
- * some final optimization, and free the memory allocated for the
- * compilation. */
+ // Initialize evaluation groups, maximum atom index needed for evaluation,
+ // position calculations for methods, perform some final optimization, and
+ // free the memory allocated for the compilation.
+ coll->impl_->maxAtomIndex_ = 0;
/* By default, use whole residues/molecules. */
flags = POS_COMPLWHOLE;
PositionCalculationCollection::typeFromEnum(coll->impl_->rpost_.c_str(),
{
init_root_item(item, &sc->gall);
postprocess_item_subexpressions(item);
+ init_required_atoms(item, &coll->impl_->maxAtomIndex_);
init_item_comg(item, &sc->pcc, post, flags);
free_item_compilerdata(item);
item = item->next;
}
+ coll->impl_->maxAtomIndex_ =
+ std::max(coll->impl_->maxAtomIndex_,
+ sc->pcc.getHighestRequiredAtomIndex());
/* Allocate memory for the evaluation memory pool. */
_gmx_sel_mempool_reserve(sc->mempool, 0);
*/
#include <string.h>
-#include "gromacs/legacyheaders/vec.h"
-
#include "gromacs/math/utilities.h"
+#include "gromacs/math/vec.h"
#include "gromacs/selection/indexutil.h"
#include "gromacs/selection/poscalc.h"
#include "gromacs/selection/selection.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2009,2010,2011,2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2009,2010,2011,2012,2013,2014, 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.
#ifndef GMX_SELECTION_EVALUATE_H
#define GMX_SELECTION_EVALUATE_H
-#include "gromacs/legacyheaders/typedefs.h"
-
-#include "gromacs/selection/indexutil.h"
-
#include "selelem.h"
+struct gmx_ana_index_t;
struct gmx_sel_mempool_t;
+struct t_pbc;
+struct t_topology;
+struct t_trxframe;
/*! \internal \brief
* Data structure for passing information required during evaluation.
*/
-typedef struct gmx_sel_evaluate_t
+struct gmx_sel_evaluate_t
{
/** Memory pool for intermediate values. */
- struct gmx_sel_mempool_t *mp;
+ gmx_sel_mempool_t *mp;
/** Index group that contains all the atoms. */
gmx_ana_index_t *gall;
/** Topology information. */
t_trxframe *fr;
/** PBC data. */
t_pbc *pbc;
-} gmx_sel_evaluate_t;
+};
/*! \name Utility functions
*/
/** Initializes an evaluation data structure. */
void
_gmx_sel_evaluate_init(gmx_sel_evaluate_t *data,
- struct gmx_sel_mempool_t *mp, gmx_ana_index_t *gall,
+ gmx_sel_mempool_t *mp, gmx_ana_index_t *gall,
t_topology *top, t_trxframe *fr, t_pbc *pbc);
/** Evaluates the children of a general selection element. */
void
*/
#include "gromacs/selection/indexutil.h"
+#include <cstdlib>
#include <cstring>
+#include <algorithm>
#include <string>
#include <vector>
-#include "gromacs/legacyheaders/index.h"
-#include "gromacs/legacyheaders/gmx_fatal.h"
-#include "gromacs/legacyheaders/typedefs.h"
-
+#include "gromacs/topology/block.h"
+#include "gromacs/topology/index.h"
+#include "gromacs/topology/topology.h"
+#include "gromacs/utility/gmxassert.h"
#include "gromacs/utility/smalloc.h"
/********************************************************************
int n = find_group(const_cast<char *>(name), src->nr,
const_cast<char **>(names));
sfree(names);
- if (n == NOTSET)
+ if (n < 0)
{
dest->isize = 0;
return false;
fprintf(fp, "\n");
}
+int
+gmx_ana_index_get_max_index(gmx_ana_index_t *g)
+{
+ if (g->isize == 0)
+ {
+ return 0;
+ }
+ else
+ {
+ return *std::max_element(g->index, g->index + g->isize);
+ }
+}
+
/*!
* \param[in] g Index group to check.
* \returns true if the index group is sorted and has no duplicates,
return true;
}
+bool
+gmx_ana_index_check_range(gmx_ana_index_t *g, int natoms)
+{
+ for (int i = 0; i < g->isize; ++i)
+ {
+ if (g->index[i] < 0 || g->index[i] >= natoms)
+ {
+ return false;
+ }
+ }
+ return true;
+}
+
/********************************************************************
* Set operations
********************************************************************/
void
gmx_ana_index_sort(gmx_ana_index_t *g)
{
- qsort(g->index, g->isize, sizeof(*g->index), cmp_atomid);
+ std::qsort(g->index, g->isize, sizeof(*g->index), cmp_atomid);
}
/*!
break;
default: /* Should not be reached */
- gmx_bug("internal error");
+ GMX_RELEASE_ASSERT(false, "Unreachable code was reached");
break;
}
}
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2009,2010,2011,2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2009,2010,2011,2012,2013,2014, 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.
#ifndef GMX_SELECTION_INDEXUTIL_H
#define GMX_SELECTION_INDEXUTIL_H
+#include <cstdio>
+
#include <string>
-#include "../legacyheaders/typedefs.h"
+#include "../legacyheaders/types/simple.h"
+#include "../topology/block.h"
+
+struct t_topology;
/** Stores a set of index groups. */
-typedef struct gmx_ana_indexgrps_t gmx_ana_indexgrps_t;
+struct gmx_ana_indexgrps_t;
/*! \brief
* Specifies the type of index partition or index mapping in several contexts.
/*! \brief
* Stores a single index group.
*/
-typedef struct gmx_ana_index_t
+struct gmx_ana_index_t
{
/** Number of atoms. */
int isize;
atom_id *index;
/** Number of items allocated for \p index. */
int nalloc_index;
-} gmx_ana_index_t;
+};
/*! \brief
* Data structure for calculating index group mappings.
*/
-typedef struct gmx_ana_indexmap_t
+struct gmx_ana_indexmap_t
{
/** Type of the mapping. */
e_index_t type;
* actually static.
*/
bool bStatic;
-} gmx_ana_indexmap_t;
+};
/*! \name Functions for handling gmx_ana_indexgrps_t
void
gmx_ana_index_dump(FILE *fp, gmx_ana_index_t *g, int maxn);
+/*! \brief
+ * Returns maximum atom index that appears in an index group.
+ *
+ * \param[in] g Index group to query.
+ * \returns Largest atom index that appears in \p g, or zero if \p g is empty.
+ */
+int
+gmx_ana_index_get_max_index(gmx_ana_index_t *g);
/** Checks whether an index group is sorted. */
bool
gmx_ana_index_check_sorted(gmx_ana_index_t *g);
+/*! \brief
+ * Checks whether an index group has atoms from a defined range.
+ *
+ * \param[in] g Index group to check.
+ * \param[in] natoms Largest atom number allowed.
+ * \returns true if all atoms in the index group are in the
+ * range 0 to \p natoms (i.e., no atoms over \p natoms are referenced).
+ */
+bool
+gmx_ana_index_check_range(gmx_ana_index_t *g, int natoms);
/*@}*/
/*! \name Functions for set operations on gmx_ana_index_t
*/
#include "gromacs/selection/nbsearch.h"
-#include <math.h>
+#include <cmath>
+#include <cstring>
#include <algorithm>
#include <vector>
#include "thread_mpi/mutex.h"
-#include "gromacs/legacyheaders/typedefs.h"
-#include "gromacs/legacyheaders/pbc.h"
-#include "gromacs/legacyheaders/vec.h"
+#include "gromacs/legacyheaders/names.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/pbcutil/pbc.h"
#include "gromacs/selection/position.h"
+#include "gromacs/topology/block.h"
#include "gromacs/utility/arrayref.h"
+#include "gromacs/utility/exceptions.h"
#include "gromacs/utility/gmxassert.h"
#include "gromacs/utility/smalloc.h"
+#include "gromacs/utility/stringutil.h"
namespace gmx
{
* Initializes the search with a given box and reference positions.
*
* \param[in] mode Search mode to use.
+ * \param[in] bXY Whether to use 2D searching.
+ * \param[in] excls Exclusions.
* \param[in] pbc PBC information.
* \param[in] positions Set of reference positions.
*/
void init(AnalysisNeighborhood::SearchMode mode,
+ bool bXY,
+ const t_blocka *excls,
const t_pbc *pbc,
const AnalysisNeighborhoodPositions &positions);
PairSearchImplPointer getPairSearch();
* \param[in] pbc Information about the box.
* \returns false if grid search is not suitable.
*/
- bool initGridCells(const t_pbc *pbc);
+ bool initGridCells(const t_pbc &pbc);
/*! \brief
* Sets ua a search grid for a given box.
*
* \param[in] pbc Information about the box.
* \returns false if grid search is not suitable.
*/
- bool initGrid(const t_pbc *pbc);
+ bool initGrid(const t_pbc &pbc);
/*! \brief
* Maps a point into a grid cell.
*
real cutoff_;
//! The cutoff squared.
real cutoff2_;
+ //! Whether to do searching in XY plane only.
+ bool bXY_;
//! Number of reference points for the current frame.
int nref_;
//! Reference point positions.
const rvec *xref_;
- //! Reference position ids (NULL if not available).
- const int *refid_;
+ //! Reference position exclusion IDs.
+ const int *refExclusionIds_;
+ //! Exclusions.
+ const t_blocka *excls_;
//! PBC data.
- t_pbc *pbc_;
-
- //! Number of excluded reference positions for current test particle.
- int nexcl_;
- //! Exclusions for current test particle.
- int *excl_;
+ t_pbc pbc_;
//! Whether grid searching is actually used for the current positions.
bool bGrid_;
explicit AnalysisNeighborhoodPairSearchImpl(const AnalysisNeighborhoodSearchImpl &search)
: search_(search)
{
+ testExclusionIds_ = NULL;
+ nexcl_ = 0;
+ excl_ = NULL;
clear_rvec(xtest_);
clear_ivec(testcell_);
reset(-1);
const AnalysisNeighborhoodSearchImpl &search_;
//! Reference to the test positions.
ConstArrayRef<rvec> testPositions_;
+ //! Reference to the test exclusion indices.
+ const int *testExclusionIds_;
+ //! Number of excluded reference positions for current test particle.
+ int nexcl_;
+ //! Exclusions for current test particle.
+ const int *excl_;
//! Index of the currently active test position in \p testPositions_.
int testIndex_;
//! Stores test position during a pair loop.
rvec xtest_;
//! Stores the previous returned position during a pair loop.
int previ_;
+ //! Stores the pair distance corresponding to previ_;
+ real prevr2_;
//! Stores the current exclusion index during loops.
int exclind_;
//! Stores the test particle cell index during loops.
bTryGrid_ = false;
}
cutoff2_ = sqr(cutoff_);
+ bXY_ = false;
- nref_ = 0;
- xref_ = NULL;
- refid_ = NULL;
- pbc_ = NULL;
-
- nexcl_ = 0;
- excl_ = NULL;
+ nref_ = 0;
+ xref_ = NULL;
+ refExclusionIds_ = NULL;
+ std::memset(&pbc_, 0, sizeof(pbc_));
bGrid_ = false;
}
}
-bool AnalysisNeighborhoodSearchImpl::initGridCells(const t_pbc *pbc)
+bool AnalysisNeighborhoodSearchImpl::initGridCells(const t_pbc &pbc)
{
const real targetsize =
- pow(pbc->box[XX][XX] * pbc->box[YY][YY] * pbc->box[ZZ][ZZ]
+ pow(pbc.box[XX][XX] * pbc.box[YY][YY] * pbc.box[ZZ][ZZ]
* 10 / nref_, static_cast<real>(1./3.));
int cellCount = 1;
for (int dd = 0; dd < DIM; ++dd)
{
- ncelldim_[dd] = static_cast<int>(pbc->box[dd][dd] / targetsize);
+ ncelldim_[dd] = static_cast<int>(pbc.box[dd][dd] / targetsize);
cellCount *= ncelldim_[dd];
if (ncelldim_[dd] < 3)
{
return true;
}
-bool AnalysisNeighborhoodSearchImpl::initGrid(const t_pbc *pbc)
+bool AnalysisNeighborhoodSearchImpl::initGrid(const t_pbc &pbc)
{
/* TODO: This check could be improved. */
- if (0.5*pbc->max_cutoff2 < cutoff2_)
+ if (0.5*pbc.max_cutoff2 < cutoff2_)
{
return false;
}
return false;
}
- bTric_ = TRICLINIC(pbc->box);
+ bTric_ = TRICLINIC(pbc.box);
if (bTric_)
{
for (int dd = 0; dd < DIM; ++dd)
{
- svmul(1.0 / ncelldim_[dd], pbc->box[dd], cellbox_[dd]);
+ svmul(1.0 / ncelldim_[dd], pbc.box[dd], cellbox_[dd]);
}
m_inv_ur0(cellbox_, recipcell_);
}
{
for (int dd = 0; dd < DIM; ++dd)
{
- cellbox_[dd][dd] = pbc->box[dd][dd] / ncelldim_[dd];
+ cellbox_[dd][dd] = pbc.box[dd][dd] / ncelldim_[dd];
recipcell_[dd][dd] = 1.0 / cellbox_[dd][dd];
}
}
void AnalysisNeighborhoodSearchImpl::init(
AnalysisNeighborhood::SearchMode mode,
+ bool bXY,
+ const t_blocka *excls,
const t_pbc *pbc,
const AnalysisNeighborhoodPositions &positions)
{
GMX_RELEASE_ASSERT(positions.index_ == -1,
"Individual indexed positions not supported as reference");
- pbc_ = const_cast<t_pbc *>(pbc);
+ bXY_ = bXY;
+ if (bXY_ && pbc->ePBC != epbcNONE)
+ {
+ if (pbc->ePBC != epbcXY && pbc->ePBC != epbcXYZ)
+ {
+ std::string message =
+ formatString("Computations in the XY plane are not supported with PBC type '%s'",
+ EPBC(pbc->ePBC));
+ GMX_THROW(NotImplementedError(message));
+ }
+ if (std::fabs(pbc->box[ZZ][XX]) > GMX_REAL_EPS*pbc->box[ZZ][ZZ] ||
+ std::fabs(pbc->box[ZZ][YY]) > GMX_REAL_EPS*pbc->box[ZZ][ZZ])
+ {
+ GMX_THROW(NotImplementedError("Computations in the XY plane are not supported when the last box vector is not parallel to the Z axis"));
+ }
+ set_pbc(&pbc_, epbcXY, const_cast<rvec *>(pbc->box));
+ }
+ else if (pbc != NULL)
+ {
+ pbc_ = *pbc;
+ }
+ else
+ {
+ pbc_.ePBC = epbcNONE;
+ }
nref_ = positions.count_;
// TODO: Consider whether it would be possible to support grid searching in
// more cases.
if (mode == AnalysisNeighborhood::eSearchMode_Simple
- || pbc_ == NULL || pbc_->ePBC != epbcXYZ)
+ || pbc_.ePBC != epbcXYZ)
{
bGrid_ = false;
}
{
copy_rvec(positions.x_[i], xref_alloc_[i]);
}
- put_atoms_in_triclinic_unitcell(ecenterTRIC, pbc_->box,
+ put_atoms_in_triclinic_unitcell(ecenterTRIC, pbc_.box,
nref_, xref_alloc_);
for (int i = 0; i < nref_; ++i)
{
{
xref_ = positions.x_;
}
- // TODO: Once exclusions are supported, this may need to be initialized.
- refid_ = NULL;
-}
-
-#if 0
-/*! \brief
- * Sets the exclusions for the next neighborhood search.
- *
- * \param[in,out] d Neighborhood search data structure.
- * \param[in] nexcl Number of reference positions to exclude from next
- * search.
- * \param[in] excl Indices of reference positions to exclude.
- *
- * The set exclusions remain in effect until the next call of this function.
- */
-void
-gmx_ana_nbsearch_set_excl(gmx_ana_nbsearch_t *d, int nexcl, int excl[])
-{
-
- d->nexcl = nexcl;
- d->excl = excl;
+ excls_ = excls;
+ refExclusionIds_ = NULL;
+ if (excls != NULL)
+ {
+ // TODO: Check that the IDs are ascending, or remove the limitation.
+ refExclusionIds_ = positions.exclusionIds_;
+ GMX_RELEASE_ASSERT(refExclusionIds_ != NULL,
+ "Exclusion IDs must be set for reference positions "
+ "when exclusions are enabled");
+ }
}
-#endif
/********************************************************************
* AnalysisNeighborhoodPairSearchImpl
copy_rvec(testPositions_[testIndex_], xtest_);
if (search_.bGrid_)
{
- put_atoms_in_triclinic_unitcell(ecenterTRIC, search_.pbc_->box,
+ put_atoms_in_triclinic_unitcell(ecenterTRIC,
+ const_cast<rvec *>(search_.pbc_.box),
1, &xtest_);
search_.mapPointToGridCell(xtest_, testcell_);
}
+ if (search_.excls_ != NULL)
+ {
+ const int exclIndex = testExclusionIds_[testIndex];
+ if (exclIndex < search_.excls_->nr)
+ {
+ const int startIndex = search_.excls_->index[exclIndex];
+ nexcl_ = search_.excls_->index[exclIndex + 1] - startIndex;
+ excl_ = &search_.excls_->a[startIndex];
+ }
+ else
+ {
+ nexcl_ = 0;
+ excl_ = NULL;
+ }
+ }
}
previ_ = -1;
+ prevr2_ = 0.0;
exclind_ = 0;
prevnbi_ = 0;
prevcai_ = -1;
bool AnalysisNeighborhoodPairSearchImpl::isExcluded(int j)
{
- if (exclind_ < search_.nexcl_)
+ if (exclind_ < nexcl_)
{
- if (search_.refid_)
+ const int refId = search_.refExclusionIds_[j];
+ while (exclind_ < nexcl_ && excl_[exclind_] < refId)
{
- while (exclind_ < search_.nexcl_
- && search_.excl_[exclind_] < search_.refid_[j])
- {
- ++exclind_;
- }
- if (exclind_ < search_.nexcl_
- && search_.refid_[j] == search_.excl_[exclind_])
- {
- ++exclind_;
- return true;
- }
+ ++exclind_;
}
- else
+ if (exclind_ < nexcl_ && refId == excl_[exclind_])
{
- while (search_.bGrid_ && exclind_ < search_.nexcl_
- && search_.excl_[exclind_] < j)
- {
- ++exclind_;
- }
- if (search_.excl_[exclind_] == j)
- {
- ++exclind_;
- return true;
- }
+ ++exclind_;
+ return true;
}
}
return false;
void AnalysisNeighborhoodPairSearchImpl::startSearch(
const AnalysisNeighborhoodPositions &positions)
{
+ testExclusionIds_ = positions.exclusionIds_;
+ GMX_RELEASE_ASSERT(search_.excls_ == NULL || testExclusionIds_ != NULL,
+ "Exclusion IDs must be set when exclusions are enabled");
if (positions.index_ < 0)
{
testPositions_ = constArrayRefFromArray<rvec>(positions.x_, positions.count_);
{
if (search_.bGrid_)
{
+ GMX_RELEASE_ASSERT(!search_.bXY_, "Grid-based XY searches not implemented");
+
int nbi = prevnbi_;
int cai = prevcai_ + 1;
continue;
}
rvec dx;
- pbc_dx_aiuc(search_.pbc_, xtest_, search_.xref_[i], dx);
+ pbc_dx_aiuc(&search_.pbc_, xtest_, search_.xref_[i], dx);
const real r2 = norm2(dx);
if (r2 <= search_.cutoff2_)
{
prevnbi_ = nbi;
prevcai_ = cai;
previ_ = i;
+ prevr2_ = r2;
return true;
}
}
continue;
}
rvec dx;
- if (search_.pbc_)
+ if (search_.pbc_.ePBC != epbcNONE)
{
- pbc_dx(search_.pbc_, xtest_, search_.xref_[i], dx);
+ pbc_dx(&search_.pbc_, xtest_, search_.xref_[i], dx);
}
else
{
rvec_sub(xtest_, search_.xref_[i], dx);
}
- const real r2 = norm2(dx);
+ const real r2
+ = search_.bXY_
+ ? dx[XX]*dx[XX] + dx[YY]*dx[YY]
+ : norm2(dx);
if (r2 <= search_.cutoff2_)
{
if (action(i, r2))
{
- previ_ = i;
+ previ_ = i;
+ prevr2_ = r2;
return true;
}
}
}
else
{
- *pair = AnalysisNeighborhoodPair(previ_, testIndex_);
+ *pair = AnalysisNeighborhoodPair(previ_, testIndex_, prevr2_);
}
}
typedef AnalysisNeighborhoodSearch::ImplPointer SearchImplPointer;
typedef std::vector<SearchImplPointer> SearchList;
- Impl() : cutoff_(0), mode_(eSearchMode_Automatic)
+ Impl() : cutoff_(0), excls_(NULL), mode_(eSearchMode_Automatic), bXY_(false)
{
}
~Impl()
tMPI::mutex createSearchMutex_;
SearchList searchList_;
real cutoff_;
+ const t_blocka *excls_;
SearchMode mode_;
+ bool bXY_;
};
AnalysisNeighborhood::Impl::SearchImplPointer
impl_->cutoff_ = cutoff;
}
+void AnalysisNeighborhood::setXYMode(bool bXY)
+{
+ impl_->bXY_ = bXY;
+}
+
+void AnalysisNeighborhood::setTopologyExclusions(const t_blocka *excls)
+{
+ GMX_RELEASE_ASSERT(impl_->searchList_.empty(),
+ "Changing the exclusions after initSearch() not currently supported");
+ impl_->excls_ = excls;
+}
+
void AnalysisNeighborhood::setMode(SearchMode mode)
{
impl_->mode_ = mode;
const AnalysisNeighborhoodPositions &positions)
{
Impl::SearchImplPointer search(impl_->getSearch());
- search->init(mode(), pbc, positions);
+ search->init(mode(), impl_->bXY_, impl_->excls_, pbc, positions);
return AnalysisNeighborhoodSearch(search);
}
int closestPoint = -1;
MindistAction action(&closestPoint, &minDist2);
(void)pairSearch.searchNext(action);
- return AnalysisNeighborhoodPair(closestPoint, 0);
+ return AnalysisNeighborhoodPair(closestPoint, 0, minDist2);
}
AnalysisNeighborhoodPairSearch
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2009,2010,2011,2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2009,2010,2011,2012,2013,2014, 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 <boost/shared_ptr.hpp>
-#include "../legacyheaders/typedefs.h"
+#include "../math/vectypes.h"
+#include "../utility/arrayref.h"
#include "../utility/common.h"
#include "../utility/gmxassert.h"
+#include "../utility/real.h"
-#include "indexutil.h"
-
-struct gmx_ana_pos_t;
+struct t_blocka;
+struct t_pbc;
namespace gmx
{
* to methods that accept positions.
*/
AnalysisNeighborhoodPositions(const rvec &x)
- : count_(1), index_(-1), x_(&x)
+ : count_(1), index_(-1), x_(&x), exclusionIds_(NULL)
{
}
/*! \brief
* Initializes positions from an array of position vectors.
*/
AnalysisNeighborhoodPositions(const rvec x[], int count)
- : count_(count), index_(-1), x_(x)
+ : count_(count), index_(-1), x_(x), exclusionIds_(NULL)
+ {
+ }
+
+ /*! \brief
+ * Sets indices to use for mapping exclusions to these positions.
+ *
+ * The exclusion IDs can always be set, but they are ignored unless
+ * actual exclusions have been set with
+ * AnalysisNeighborhood::setTopologyExclusions().
+ */
+ AnalysisNeighborhoodPositions &
+ exclusionIds(ConstArrayRef<int> ids)
{
+ GMX_ASSERT(static_cast<int>(ids.size()) == count_,
+ "Exclusion id array should match the number of positions");
+ exclusionIds_ = ids.data();
+ return *this;
}
/*! \brief
int count_;
int index_;
const rvec *x_;
+ const int *exclusionIds_;
//! To access the positions for initialization.
friend class internal::AnalysisNeighborhoodSearchImpl;
* a single thread.
*
* \todo
- * Support for exclusions.
- * The 4.5/4.6 C API had very low-level support for exclusions, which was not
- * very convenient to use, and hadn't been tested much. The internal code that
- * it used to do the exclusion during the search itself is still there, but it
- * needs more thought on what would be a convenient way to initialize it.
- * Can be implemented once there is need for it in some calling code.
+ * Generalize the exclusion machinery to make it easier to use for other cases
+ * than atom-atom exclusions from the topology.
*
* \inpublicapi
* \ingroup module_selection
~AnalysisNeighborhood();
/*! \brief
- * Set cutoff distance for the neighborhood searching.
+ * Sets cutoff distance for the neighborhood searching.
*
* \param[in] cutoff Cutoff distance for the search
* (<=0 stands for no cutoff).
* Does not throw.
*/
void setCutoff(real cutoff);
+ /*! \brief
+ * Sets the search to only happen in the XY plane.
+ *
+ * Z component of the coordinates is not used in the searching,
+ * and returned distances are computed in the XY plane.
+ * Only boxes with the third box vector parallel to the Z axis are
+ * currently implemented.
+ *
+ * Does not throw.
+ */
+ void setXYMode(bool bXY);
+ /*! \brief
+ * Sets atom exclusions from a topology.
+ *
+ * The \p excls structure specifies the exclusions from test positions
+ * to reference positions, i.e., a block starting at `excls->index[i]`
+ * specifies the exclusions for test position `i`, and the indices in
+ * `excls->a` are indices of the reference positions. If `excls->nr`
+ * is smaller than a test position id, then such test positions do not
+ * have any exclusions.
+ * It is assumed that the indices within a block of indices in
+ * `excls->a` is ascending.
+ *
+ * Does not throw.
+ *
+ * \see AnalysisNeighborhoodPositions::exclusionIds()
+ */
+ void setTopologyExclusions(const t_blocka *excls);
/*! \brief
* Sets the algorithm to use for searching.
*
{
public:
//! Initializes an invalid pair.
- AnalysisNeighborhoodPair() : refIndex_(-1), testIndex_(0) {}
+ AnalysisNeighborhoodPair() : refIndex_(-1), testIndex_(0), distance2_(0.0) {}
//! Initializes a pair object with the given data.
- AnalysisNeighborhoodPair(int refIndex, int testIndex)
- : refIndex_(refIndex), testIndex_(testIndex)
+ AnalysisNeighborhoodPair(int refIndex, int testIndex, real distance2)
+ : refIndex_(refIndex), testIndex_(testIndex), distance2_(distance2)
{
}
GMX_ASSERT(isValid(), "Accessing invalid object");
return testIndex_;
}
+ /*! \brief
+ * Returns the squared distance between the pair of positions.
+ */
+ real distance2() const
+ {
+ GMX_ASSERT(isValid(), "Accessing invalid object");
+ return distance2_;
+ }
private:
int refIndex_;
int testIndex_;
+ real distance2_;
};
/*! \brief
#include <algorithm>
#include <string>
-#include "gromacs/legacyheaders/vec.h"
-
+#include "gromacs/math/vec.h"
#include "gromacs/selection/position.h"
#include "gromacs/selection/selmethod.h"
#include "gromacs/selection/selparam.h"
+#include "gromacs/utility/cstringutil.h"
#include "gromacs/utility/exceptions.h"
#include "gromacs/utility/gmxassert.h"
#include "gromacs/utility/messagestringcollector.h"
param->val.u.r[i++] = value->u.r.r1;
break;
case STR_VALUE:
- param->val.u.s[i++] = strdup(value->stringValue().c_str());
+ param->val.u.s[i++] = gmx_strdup(value->stringValue().c_str());
break;
case POS_VALUE: copy_rvec(value->u.x, param->val.u.p->x[i++]); break;
default: /* Should not be reached */
param->val.u.r[i] = value->u.r.r1;
break;
case STR_VALUE:
- param->val.u.s[i] = strdup(value->stringValue().c_str());
+ param->val.u.s[i] = gmx_strdup(value->stringValue().c_str());
break;
case POS_VALUE:
gmx_ana_pos_init_const(¶m->val.u.p[i], value->u.x);
#include <boost/exception_ptr.hpp>
#include <boost/shared_ptr.hpp>
-#include "gromacs/fileio/futil.h"
#include "gromacs/selection/poscalc.h"
#include "gromacs/selection/selection.h"
#include "gromacs/selection/selmethod.h"
+#include "gromacs/utility/cstringutil.h"
#include "gromacs/utility/exceptions.h"
#include "gromacs/utility/file.h"
#include "gromacs/utility/messagestringcollector.h"
buf[0] = op;
buf[1] = 0;
sel->setName(buf);
- sel->u.arith.opstr = strdup(buf);
+ sel->u.arith.opstr = gmx_strdup(buf);
sel->child = left;
sel->child->next = right;
return sel;
SelectionTreeElementPointer sel(new SelectionTreeElement(SEL_GROUPREF));
_gmx_selelem_set_vtype(sel, GROUP_VALUE);
sel->setName(gmx::formatString("group \"%s\"", name));
- sel->u.gref.name = strdup(name);
+ sel->u.gref.name = gmx_strdup(name);
sel->u.gref.id = -1;
if (_gmx_sel_lexer_has_groups_set(scanner))
{
- gmx_ana_indexgrps_t *grps = _gmx_sel_lexer_indexgrps(scanner);
- sel->resolveIndexGroupReference(grps);
+ gmx_ana_indexgrps_t *grps = _gmx_sel_lexer_indexgrps(scanner);
+ gmx_ana_selcollection_t *sc = _gmx_sel_lexer_selcollection(scanner);
+ sel->resolveIndexGroupReference(grps, sc->gall.isize);
}
return sel;
if (_gmx_sel_lexer_has_groups_set(scanner))
{
- gmx_ana_indexgrps_t *grps = _gmx_sel_lexer_indexgrps(scanner);
- sel->resolveIndexGroupReference(grps);
+ gmx_ana_indexgrps_t *grps = _gmx_sel_lexer_indexgrps(scanner);
+ gmx_ana_selcollection_t *sc = _gmx_sel_lexer_selcollection(scanner);
+ sel->resolveIndexGroupReference(grps, sc->gall.isize);
}
return sel;
sc->symtab->addVariable(name, root->child);
}
srenew(sc->varstrs, sc->nvars + 1);
- sc->varstrs[sc->nvars] = strdup(pselstr);
+ sc->varstrs[sc->nvars] = gmx_strdup(pselstr);
++sc->nvars;
if (_gmx_sel_is_lexer_interactive(scanner))
{
#include <list>
#include <string>
-#include "gromacs/legacyheaders/types/simple.h"
-#include "gromacs/legacyheaders/vec.h"
-
+#include "gromacs/math/vec.h"
+#include "gromacs/math/vectypes.h"
#include "gromacs/utility/gmxassert.h"
+#include "gromacs/utility/real.h"
#include "gromacs/utility/uniqueptr.h"
#include "selelem.h"
*/
#include <string.h>
-#include "gromacs/legacyheaders/typedefs.h"
-#include "gromacs/legacyheaders/pbc.h"
-#include "gromacs/legacyheaders/vec.h"
+#include <algorithm>
+#include "gromacs/fileio/trx.h"
+#include "gromacs/math/vec.h"
#include "gromacs/selection/centerofmass.h"
#include "gromacs/selection/indexutil.h"
#include "gromacs/selection/poscalc.h"
* already been calculated in \p sbase.
* The structure pointed by \p sbase is always a static calculation.
*/
- struct gmx_ana_poscalc_t *sbase;
+ gmx_ana_poscalc_t *sbase;
/** Next structure in the linked list of calculations. */
- struct gmx_ana_poscalc_t *next;
+ gmx_ana_poscalc_t *next;
/** Previous structure in the linked list of calculations. */
- struct gmx_ana_poscalc_t *prev;
+ gmx_ana_poscalc_t *prev;
/** Number of references to this structure. */
int refcount;
/** Collection this calculation belongs to. */
return impl_->createCalculation(type, cflags);
}
+int PositionCalculationCollection::getHighestRequiredAtomIndex() const
+{
+ int result = 0;
+ gmx_ana_poscalc_t *pc = impl_->first_;
+ while (pc)
+ {
+ // Calculations with a base just copy positions from the base, so
+ // those do not need to be considered in the check.
+ if (!pc->sbase)
+ {
+ gmx_ana_index_t g;
+ gmx_ana_index_set(&g, pc->b.nra, pc->b.a, 0);
+ result = std::max(result, gmx_ana_index_get_max_index(&g));
+ }
+ pc = pc->next;
+ }
+ return result;
+}
+
void PositionCalculationCollection::initEvaluation()
{
if (impl_->bInit_)
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2009,2010,2011,2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2009,2010,2011,2012,2013,2014, 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.
#ifndef GMX_SELECTION_POSCALC_H
#define GMX_SELECTION_POSCALC_H
-#include "../legacyheaders/typedefs.h"
+#include <cstdio>
#include "../utility/common.h"
} e_poscalc_t;
/** Data structure for position calculation. */
-typedef struct gmx_ana_poscalc_t gmx_ana_poscalc_t;
+struct gmx_ana_poscalc_t;
struct gmx_ana_index_t;
struct gmx_ana_pos_t;
+struct t_pbc;
+struct t_topology;
+struct t_trxframe;
namespace gmx
{
*/
gmx_ana_poscalc_t *createCalculationFromEnum(const char *post, int flags);
+ /*! \brief
+ * Computes the highest atom index required to evaluate this collection.
+ *
+ * Does not throw.
+ */
+ int getHighestRequiredAtomIndex() const;
+
/*! \brief
* Initializes evaluation for a position calculation collection.
*
gmx_ana_poscalc_set_flags(gmx_ana_poscalc_t *pc, int flags);
/** Sets the maximum possible input index group for position calculation. */
void
-gmx_ana_poscalc_set_maxindex(gmx_ana_poscalc_t *pc, struct gmx_ana_index_t *g);
+gmx_ana_poscalc_set_maxindex(gmx_ana_poscalc_t *pc, gmx_ana_index_t *g);
/** Initializes positions for position calculation output. */
void
-gmx_ana_poscalc_init_pos(gmx_ana_poscalc_t *pc, struct gmx_ana_pos_t *p);
+gmx_ana_poscalc_init_pos(gmx_ana_poscalc_t *pc, gmx_ana_pos_t *p);
/** Frees the memory allocated for position calculation. */
void
gmx_ana_poscalc_free(gmx_ana_poscalc_t *pc);
/** Updates a single COM/COG structure for a frame. */
void
gmx_ana_poscalc_update(gmx_ana_poscalc_t *pc,
- struct gmx_ana_pos_t *p, struct gmx_ana_index_t *g,
+ gmx_ana_pos_t *p, gmx_ana_index_t *g,
t_trxframe *fr, t_pbc *pbc);
#endif
#include <string.h>
-#include "gromacs/legacyheaders/typedefs.h"
-#include "gromacs/legacyheaders/vec.h"
-
+#include "gromacs/math/vec.h"
#include "gromacs/selection/indexutil.h"
#include "gromacs/utility/gmxassert.h"
#include "gromacs/utility/smalloc.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2009,2010,2011,2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2009,2010,2011,2012,2013,2014, 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.
#ifndef GMX_SELECTION_POSITION_H
#define GMX_SELECTION_POSITION_H
-#include "../legacyheaders/types/simple.h"
+#include "../math/vectypes.h"
#include "indexutil.h"
// Required before flex definitions, since it includes <stdint.h>.
// Otherwise, compilers not strictly C99 get macro redefinition errors,
// since flex defines INT32_MAX etc. in such cases.
-#include "gromacs/legacyheaders/types/simple.h"
+#include "gromacs/utility/basedefinitions.h"
// Required before flex definitions, since it includes <stdint.h>.
// Otherwise, compilers not strictly C99 get macro redefinition errors,
// since flex defines INT32_MAX etc. in such cases.
-#include "gromacs/legacyheaders/types/simple.h"
+#include "gromacs/utility/basedefinitions.h"
}
%{
#include "gromacs/utility/cstringutil.h"
// Required before flex definitions, since it includes <stdint.h>.
// Otherwise, compilers not strictly C99 get macro redefinition errors,
// since flex defines INT32_MAX etc. in such cases.
-#include "gromacs/legacyheaders/types/simple.h"
+#include "gromacs/utility/basedefinitions.h"
#include <string>
-#include "gromacs/legacyheaders/typedefs.h"
-
#include "gromacs/utility/cstringutil.h"
#include "gromacs/utility/exceptions.h"
#include "gromacs/utility/gmxassert.h"
}
else
{
- yylval->str = param->name ? strdup(param->name) : NULL;
+ yylval->str = param->name ? gmx_strdup(param->name) : NULL;
}
return PARAM;
}
if (symtype == gmx::SelectionParserSymbol::PositionSymbol)
{
state->bMatchOf = true;
- yylval->str = strdup(symbol->name().c_str());
+ yylval->str = gmx_strdup(symbol->name().c_str());
state->prev_pos_kw = 2;
return KEYWORD_POS;
}
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2009,2010,2011,2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2009,2010,2011,2012,2013,2014, 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 "selection.h"
+#include "gromacs/topology/topology.h"
+
#include "nbsearch.h"
#include "position.h"
#include "selelem.h"
Selection::operator AnalysisNeighborhoodPositions() const
{
- return AnalysisNeighborhoodPositions(data().rawPositions_.x,
- data().rawPositions_.count());
+ AnalysisNeighborhoodPositions pos(data().rawPositions_.x,
+ data().rawPositions_.count());
+ if (hasOnlyAtoms())
+ {
+ pos.exclusionIds(atomIndices());
+ }
+ return pos;
}
SelectionPosition::operator AnalysisNeighborhoodPositions() const
{
- return AnalysisNeighborhoodPositions(sel_->rawPositions_.x,
- sel_->rawPositions_.count())
- .selectSingleFromArray(i_);
+ AnalysisNeighborhoodPositions pos(sel_->rawPositions_.x,
+ sel_->rawPositions_.count());
+ if (sel_->hasOnlyAtoms())
+ {
+ // TODO: Move atomIndices() such that it can be reused here as well.
+ pos.exclusionIds(constArrayRefFromArray<int>(sel_->rawPositions_.m.mapb.a,
+ sel_->rawPositions_.m.mapb.nra));
+ }
+ return pos.selectSingleFromArray(i_);
}
} // namespace gmx
#include <string>
#include <vector>
-#include "../legacyheaders/typedefs.h"
-
#include "../utility/arrayref.h"
#include "../utility/common.h"
#include "../utility/gmxassert.h"
#include "position.h"
-#include "indexutil.h"
#include "selectionenums.h"
+struct t_topology;
+
namespace gmx
{
bool isDynamic() const { return bDynamic_; }
//! Returns the type of positions in the selection.
e_index_t type() const { return rawPositions_.m.type; }
+ //! Returns true if the selection only contains positions with a single atom each.
+ bool hasOnlyAtoms() const { return type() == INDEX_ATOM; }
//! Number of positions in the selection.
int posCount() const { return rawPositions_.count(); }
bool isDynamic() const { return data().isDynamic(); }
//! Returns the type of positions in the selection.
e_index_t type() const { return data().type(); }
+ //! Returns true if the selection only contains positions with a single atom each.
+ bool hasOnlyAtoms() const { return data().hasOnlyAtoms(); }
//! Total number of atoms in the selection.
int atomCount() const
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2009,2010,2011,2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2009,2010,2011,2012,2013,2014, 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 <boost/scoped_ptr.hpp>
-#include "../legacyheaders/typedefs.h"
-
#include "../onlinehelp/helptopicinterface.h"
#include "../utility/uniqueptr.h"
#include "indexutil.h"
#include "selectioncollection.h"
#include "selelem.h"
+struct gmx_sel_mempool_t;
+struct t_pbc;
+struct t_topology;
+struct t_trxframe;
+
namespace gmx
{
/** Topology for the collection. */
t_topology *top;
/** Index group that contains all the atoms. */
- struct gmx_ana_index_t gall;
+ gmx_ana_index_t gall;
/** Memory pool used for selection evaluation. */
- struct gmx_sel_mempool_t *mempool;
+ gmx_sel_mempool_t *mempool;
//! Parser symbol table.
boost::scoped_ptr<gmx::SelectionParserSymbolTable> symtab;
//! Root of help topic tree (NULL is no help yet requested).
std::string rpost_;
//! Default output position type for selections.
std::string spost_;
+ //! Largest atom index needed by the selections for evaluation.
+ int maxAtomIndex_;
/*! \brief
* Debugging level for the collection.
*
#include <boost/shared_ptr.hpp>
#include "gromacs/legacyheaders/oenv.h"
-#include "gromacs/legacyheaders/xvgr.h"
+#include "gromacs/fileio/trx.h"
#include "gromacs/onlinehelp/helpmanager.h"
#include "gromacs/onlinehelp/helpwritercontext.h"
#include "gromacs/options/basicoptions.h"
#include "gromacs/options/options.h"
#include "gromacs/selection/selection.h"
+#include "gromacs/topology/topology.h"
#include "gromacs/utility/exceptions.h"
#include "gromacs/utility/file.h"
#include "gromacs/utility/gmxassert.h"
*/
SelectionCollection::Impl::Impl()
- : debugLevel_(0), bExternalGroupsSet_(false), grps_(NULL)
+ : maxAtomIndex_(0), debugLevel_(0), bExternalGroupsSet_(false), grps_(NULL)
{
sc_.nvars = 0;
sc_.varstrs = NULL;
return result;
}
+/*! \brief
+ * Checks that index groups have valid atom indices.
+ *
+ * \param[in] root Root of selection tree to process.
+ * \param[in] natoms Maximum number of atoms that the selections are set
+ * to evaluate.
+ * \param errors Object for reporting any error messages.
+ * \throws std::bad_alloc if out of memory.
+ *
+ * Recursively checks the selection tree for index groups.
+ * Each found group is checked that it only contains atom indices that match
+ * the topology/maximum number of atoms set for the selection collection.
+ * Any issues are reported to \p errors.
+ */
+void checkExternalGroups(const SelectionTreeElementPointer &root,
+ int natoms,
+ ExceptionInitializer *errors)
+{
+ if (root->type == SEL_CONST && root->v.type == GROUP_VALUE)
+ {
+ try
+ {
+ root->checkIndexGroup(natoms);
+ }
+ catch (const UserInputError &)
+ {
+ errors->addCurrentExceptionAsNested();
+ }
+ }
+
+ SelectionTreeElementPointer child = root->child;
+ while (child)
+ {
+ checkExternalGroups(child, natoms, errors);
+ child = child->next;
+ }
+}
+
} // namespace
{
try
{
- root->resolveIndexGroupReference(grps_);
+ root->resolveIndexGroupReference(grps_, sc_.gall.isize);
}
catch (const UserInputError &)
{
{
natoms = top->atoms.nr;
}
+ if (impl_->bExternalGroupsSet_)
+ {
+ ExceptionInitializer errors("Invalid index group references encountered");
+ SelectionTreeElementPointer root = impl_->sc_.root;
+ while (root)
+ {
+ checkExternalGroups(root, natoms, &errors);
+ root = root->next;
+ }
+ if (errors.hasNestedExceptions())
+ {
+ GMX_THROW(InconsistentInputError(errors));
+ }
+ }
gmx_ana_selcollection_t *sc = &impl_->sc_;
// Do this first, as it allocates memory, while the others don't throw.
gmx_ana_index_init_simple(&sc->gall, natoms);
const internal::SelectionData &sel = **iter;
if (sel.hasFlag(efSelection_OnlyAtoms))
{
- if (sel.type() != INDEX_ATOM)
+ if (!sel.hasOnlyAtoms())
{
std::string message = formatString(
"Selection '%s' does not evaluate to individual atoms. "
void
SelectionCollection::evaluate(t_trxframe *fr, t_pbc *pbc)
{
+ if (fr->natoms <= impl_->maxAtomIndex_)
+ {
+ std::string message = formatString(
+ "Trajectory has less atoms (%d) than what is required for "
+ "evaluating the provided selections (atoms up to index %d "
+ "are required).", fr->natoms, impl_->maxAtomIndex_ + 1);
+ GMX_THROW(InconsistentInputError(message));
+ }
impl_->sc_.pcc.initFrame();
SelectionEvaluator evaluator;
}
}
-// static
-HelpTopicPointer
-SelectionCollection::createDefaultHelpTopic()
-{
- return createSelectionHelpTopic();
-}
-
} // namespace gmx
#ifndef GMX_SELECTION_SELECTIONCOLLECTION_H
#define GMX_SELECTION_SELECTIONCOLLECTION_H
+#include <cstdio>
+
#include <string>
#include <vector>
-#include "../legacyheaders/typedefs.h"
+#include "../legacyheaders/types/oenv.h"
-#include "../onlinehelp/helptopicinterface.h"
#include "../utility/common.h"
#include "selection.h" // For gmx::SelectionList
struct gmx_ana_indexgrps_t;
+struct t_pbc;
+struct t_topology;
+struct t_trxframe;
namespace gmx
{
class SelectionCollection
{
public:
- /*! \brief
- * Creates a help tree for selections.
- *
- * \throws std::bad_alloc if out of memory.
- * \returns Root topic of the created selection tree.
- */
- static HelpTopicPointer createDefaultHelpTopic();
-
/*! \brief
* Creates an empty selection collection.
*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012, by the GROMACS development team, led by
+ * Copyright (c) 2012,2014, 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.
explicit SelectionFileOption(const char *name);
private:
- virtual AbstractOptionStoragePointer createStorage() const;
+ virtual AbstractOptionStorage *createStorage(
+ const OptionManagerContainer &managers) const;
};
/*! \libinternal \brief
* Does not throw.
*/
explicit SelectionFileOptionInfo(SelectionFileOptionStorage *option);
-
- //! \copydoc SelectionOptionInfo::setManager()
- void setManager(SelectionOptionManager *manager);
-
- private:
- SelectionFileOptionStorage &option();
- const SelectionFileOptionStorage &option() const;
};
} // namespace gmx
* Initializes the storage from option settings.
*
* \param[in] settings Storage settings.
+ * \param manager Manager for this object.
*/
- SelectionFileOptionStorage(const SelectionFileOption &settings);
+ SelectionFileOptionStorage(const SelectionFileOption &settings,
+ SelectionOptionManager *manager);
virtual OptionInfo &optionInfo() { return info_; }
virtual std::string typeString() const { return "file"; }
virtual int valueCount() const { return 0; }
virtual std::string formatValue(int /*i*/) const { return ""; }
- //! \copydoc SelectionFileOptionInfo::setManager()
- void setManager(SelectionOptionManager *manager)
- {
- manager_ = manager;
- }
-
private:
virtual void clearSet();
virtual void convertValue(const std::string &value);
virtual void processSet();
virtual void processAll() {}
- SelectionFileOptionInfo info_;
- SelectionOptionManager *manager_;
- bool bValueParsed_;
+ SelectionFileOptionInfo info_;
+ SelectionOptionManager &manager_;
+ bool bValueParsed_;
};
} // namespace gmx
#include <string>
+#include "gromacs/options/optionmanagercontainer.h"
#include "gromacs/selection/selection.h"
#include "gromacs/selection/selectionoptionmanager.h"
#include "gromacs/utility/exceptions.h"
* SelectionOptionStorage
*/
-SelectionOptionStorage::SelectionOptionStorage(const SelectionOption &settings)
+SelectionOptionStorage::SelectionOptionStorage(const SelectionOption &settings,
+ SelectionOptionManager *manager)
: MyBase(settings, OptionFlags() | efOption_NoDefaultValue
| efOption_DontCheckMinimumCount),
- info_(this), manager_(NULL), defaultText_(settings.defaultText_),
+ info_(this), manager_(*manager), defaultText_(settings.defaultText_),
selectionFlags_(settings.selectionFlags_)
{
+ GMX_RELEASE_ASSERT(manager != NULL,
+ "SelectionOptionManager must be added before SelectionOption");
GMX_RELEASE_ASSERT(!hasFlag(efOption_MultipleTimes),
"allowMultiple() is not supported for selection options");
-}
-
-
-void SelectionOptionStorage::setManager(SelectionOptionManager *manager)
-{
- GMX_RELEASE_ASSERT(manager_ == NULL || manager_ == manager,
- "Manager cannot be changed once set");
- if (manager_ == NULL)
- {
- manager->registerOption(this);
- manager_ = manager;
- }
+ manager_.registerOption(this);
}
void SelectionOptionStorage::convertValue(const std::string &value)
{
- GMX_RELEASE_ASSERT(manager_ != NULL, "Manager is not set");
-
- manager_->convertOptionValue(this, value, false);
+ manager_.convertOptionValue(this, value, false);
}
void SelectionOptionStorage::processSetValues(ValueList *values)
{
- GMX_RELEASE_ASSERT(manager_ != NULL, "Manager is not set");
-
if (values->size() == 0)
{
- manager_->requestOptionDelayedParsing(this);
+ manager_.requestOptionDelayedParsing(this);
}
else if (values->size() < static_cast<size_t>(minValueCount()))
{
void SelectionOptionStorage::processAll()
{
- GMX_RELEASE_ASSERT(manager_ != NULL, "Manager is not set");
if (!isSet() && !defaultText_.empty())
{
- manager_->convertOptionValue(this, defaultText_, true);
+ manager_.convertOptionValue(this, defaultText_, true);
}
if (isRequired() && !isSet())
{
- manager_->requestOptionDelayedParsing(this);
+ manager_.requestOptionDelayedParsing(this);
markAsSet();
}
}
return static_cast<const SelectionOptionStorage &>(OptionInfo::option());
}
-void SelectionOptionInfo::setManager(SelectionOptionManager *manager)
-{
- option().setManager(manager);
-}
-
void SelectionOptionInfo::setValueCount(int count)
{
option().setAllowedValueCount(count);
* SelectionOption
*/
-AbstractOptionStoragePointer SelectionOption::createStorage() const
+AbstractOptionStorage *
+SelectionOption::createStorage(const OptionManagerContainer &managers) const
{
- return AbstractOptionStoragePointer(new SelectionOptionStorage(*this));
+ return new SelectionOptionStorage(
+ *this, managers.get<SelectionOptionManager>());
}
* SelectionFileOptionStorage
*/
-SelectionFileOptionStorage::SelectionFileOptionStorage(const SelectionFileOption &settings)
+SelectionFileOptionStorage::SelectionFileOptionStorage(
+ const SelectionFileOption &settings, SelectionOptionManager *manager)
: AbstractOptionStorage(settings, OptionFlags() | efOption_MultipleTimes
| efOption_DontCheckMinimumCount),
- info_(this), manager_(NULL), bValueParsed_(false)
+ info_(this), manager_(*manager), bValueParsed_(false)
{
+ GMX_RELEASE_ASSERT(manager != NULL,
+ "SelectionOptionManager must be added before SelectionFileOption");
}
void SelectionFileOptionStorage::clearSet()
void SelectionFileOptionStorage::convertValue(const std::string &value)
{
- GMX_RELEASE_ASSERT(manager_ != NULL, "Manager is not set");
-
if (bValueParsed_)
{
GMX_THROW(InvalidInputError("More than one file name provided"));
}
bValueParsed_ = true;
// TODO: Should we throw an InvalidInputError if the file does not exist?
- manager_->parseRequestedFromFile(value);
+ manager_.parseRequestedFromFile(value);
}
void SelectionFileOptionStorage::processSet()
{
}
-SelectionFileOptionStorage &SelectionFileOptionInfo::option()
-{
- return static_cast<SelectionFileOptionStorage &>(OptionInfo::option());
-}
-
-const SelectionFileOptionStorage &SelectionFileOptionInfo::option() const
-{
- return static_cast<const SelectionFileOptionStorage &>(OptionInfo::option());
-}
-
-void SelectionFileOptionInfo::setManager(SelectionOptionManager *manager)
-{
- option().setManager(manager);
-}
-
/********************************************************************
* SelectionFileOption
setDescription("Provide selections from files");
}
-AbstractOptionStoragePointer SelectionFileOption::createStorage() const
+AbstractOptionStorage *
+SelectionFileOption::createStorage(const OptionManagerContainer &managers) const
{
- return AbstractOptionStoragePointer(new SelectionFileOptionStorage(*this));
+ return new SelectionFileOptionStorage(
+ *this, managers.get<SelectionOptionManager>());
}
} // namespace gmx
*
* Public methods in this class do not throw.
*
+ * To use options of this type, SelectionOptionManager must first be added to
+ * the Options collection. For trajectory analysis tools, the framework takes
+ * care of this.
+ *
* \todo
* Support for specifying that an option accepts, e.g., two to four selections.
* Currently, only a fixed count or any number of selections is possible.
using MyBase::defaultValue;
using MyBase::defaultValueIfSet;
- virtual AbstractOptionStoragePointer createStorage() const;
+ virtual AbstractOptionStorage *createStorage(
+ const OptionManagerContainer &managers) const;
const char *defaultText_;
SelectionFlags selectionFlags_;
*/
explicit SelectionOptionInfo(SelectionOptionStorage *option);
- /*! \brief
- * Set manager for handling interaction with other options and the
- * selection collection.
- *
- * \param manager Selection manager to set.
- *
- * This must be called before the values are added.
- *
- * Typically it is called through setManagerForSelectionOptions(),
- * which recursively sets the manager for all selection options in
- * an Options object.
- *
- * Does not throw.
- */
- void setManager(SelectionOptionManager *manager);
-
/*! \brief
* Sets the number of selections allowed for the option.
*
#include <cstdio>
-#include "gromacs/options/optionsvisitor.h"
#include "gromacs/selection/selection.h"
#include "gromacs/selection/selectioncollection.h"
#include "gromacs/selection/selectionoption.h"
impl_->placeSelectionsInRequests(selections);
}
-/********************************************************************
- * Global functions
- */
-
-namespace
-{
-
-/*! \internal \brief
- * Visitor that sets the manager for each selection option.
- *
- * \ingroup module_selection
- */
-class SelectionOptionManagerSetter : public OptionsModifyingVisitor
-{
- public:
- //! Construct a visitor that sets given manager.
- explicit SelectionOptionManagerSetter(SelectionOptionManager *manager)
- : manager_(manager)
- {
- }
-
- void visitSubSection(Options *section)
- {
- OptionsModifyingIterator iterator(section);
- iterator.acceptSubSections(this);
- iterator.acceptOptions(this);
- }
-
- void visitOption(OptionInfo *option)
- {
- SelectionOptionInfo *selOption
- = option->toType<SelectionOptionInfo>();
- if (selOption != NULL)
- {
- selOption->setManager(manager_);
- }
- SelectionFileOptionInfo *selFileOption
- = option->toType<SelectionFileOptionInfo>();
- if (selFileOption != NULL)
- {
- selFileOption->setManager(manager_);
- }
- }
-
- private:
- SelectionOptionManager *manager_;
-};
-
-} // namespace
-
-void setManagerForSelectionOptions(Options *options,
- SelectionOptionManager *manager)
-{
- SelectionOptionManagerSetter(manager).visitSubSection(options);
-}
-
} // namespace gmx
#include <string>
+#include "../options/options.h"
#include "../utility/common.h"
namespace gmx
* require actions outside options parsing.
* It also implements the coupling between SelectionOption and
* SelectionFileOption.
+ * It needs to be added using Options::addManager() before SelectionOption or
+ * SelectionFileOption options can be added to an Options collection.
*
* The main features of this class are:
* - convertOptionValue(), which is used to convert string values into
* parseRequestedFromStdin(), parseRequestedFromFile() or
* parseRequstedFromString().
*
- * \see setManagerForSelectionOptions()
- *
* \inpublicapi
* \ingroup module_selection
*/
-class SelectionOptionManager
+class SelectionOptionManager : public OptionManagerInterface
{
public:
/*! \brief
* \throws std::bad_alloc if out of memory.
*/
explicit SelectionOptionManager(SelectionCollection *selections);
- ~SelectionOptionManager();
+ virtual ~SelectionOptionManager();
/*! \brief
* Adds a selection option to be managed.
friend class SelectionOptionStorage;
};
-/*! \brief
- * Set manager for all selection options.
- *
- * Recursively sets the manager to \p manager for all selection options in
- * \p options.
- * Must be called before value assignment starts for \p options.
- *
- * Does not throw.
- *
- * \inpublicapi
- */
-void setManagerForSelectionOptions(Options *options,
- SelectionOptionManager *manager);
-
} // namespace gmx
#endif
* Initializes the storage from option settings.
*
* \param[in] settings Storage settings.
+ * \param manager Manager for this object.
*/
- SelectionOptionStorage(const SelectionOption &settings);
+ SelectionOptionStorage(const SelectionOption &settings,
+ SelectionOptionManager *manager);
virtual OptionInfo &optionInfo() { return info_; }
virtual std::string typeString() const { return "selection"; }
virtual std::string formatSingleValue(const Selection &value) const;
- //! \copydoc SelectionOptionInfo::setManager()
- void setManager(SelectionOptionManager *manager);
-
/*! \brief
* Adds selections to the storage.
*
virtual void processAll();
SelectionOptionInfo info_;
- SelectionOptionManager *manager_;
+ SelectionOptionManager &manager_;
std::string defaultText_;
SelectionFlags selectionFlags_;
};
}
}
-void SelectionTreeElement::resolveIndexGroupReference(gmx_ana_indexgrps_t *grps)
+void SelectionTreeElement::resolveIndexGroupReference(
+ gmx_ana_indexgrps_t *grps, int natoms)
{
GMX_RELEASE_ASSERT(type == SEL_GROUPREF,
"Should only be called for index group reference elements");
gmx_ana_index_set(&u.cgrp, foundGroup.isize, foundGroup.index,
foundGroup.nalloc_index);
setName(foundName);
+
+ if (natoms > 0)
+ {
+ checkIndexGroup(natoms);
+ }
+}
+
+void SelectionTreeElement::checkIndexGroup(int natoms)
+{
+ GMX_RELEASE_ASSERT(type == SEL_CONST && v.type == GROUP_VALUE,
+ "Should only be called for index group elements");
+ if (!gmx_ana_index_check_range(&u.cgrp, natoms))
+ {
+ std::string message = formatString(
+ "Group '%s' cannot be used in selections, because it "
+ "contains negative atom indices and/or references atoms "
+ "not present (largest allowed atom index is %d).",
+ name().c_str(), natoms);
+ GMX_THROW(InconsistentInputError(message));
+ }
}
} // namespace gmx
#include <boost/shared_ptr.hpp>
-#include "gromacs/legacyheaders/types/simple.h"
#include "gromacs/utility/common.h"
+#include "gromacs/utility/real.h"
#include "indexutil.h"
#include "selvalue.h"
void checkUnsortedAtoms(bool bUnsortedAllowed,
ExceptionInitializer *errors) const;
/*! \brief
- * Resolved an unresolved reference to an index group.
+ * Resolves an unresolved reference to an index group.
*
- * \param[in] grps Index groups to use to resolve the reference.
+ * \param[in] grps Index groups to use to resolve the reference.
+ * \param[in] natoms Maximum number of atoms the selections can evaluate to
+ * (zero if the topology/atom count is not set yet).
* \throws std::bad_alloc if out of memory.
* \throws InconsistentInputError if the reference cannot be
* resolved.
*/
- void resolveIndexGroupReference(gmx_ana_indexgrps_t *grps);
+ void resolveIndexGroupReference(gmx_ana_indexgrps_t *grps, int natoms);
+ /*! \brief
+ * Checks that an index group has valid atom indices.
+ *
+ * \param[in] natoms Maximum number of atoms the selections can evaluate to.
+ * \throws std::bad_alloc if out of memory.
+ * \throws InconsistentInputError if there are invalid atom indices.
+ */
+ void checkIndexGroup(int natoms);
//! Type of the element.
e_selelem_t type;
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2009,2010,2011,2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2009,2010,2011,2012,2013,2014, 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.
} // namespace
-/*! \cond internal */
+//! \cond libapi */
HelpTopicPointer createSelectionHelpTopic()
{
CompositeHelpTopicPointer root(new CompositeHelpTopic<CommonHelpText>);
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2009,2010,2011,2012, by the GROMACS development team, led by
+ * Copyright (c) 2009,2010,2011,2012,2014, 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.
*/
-/*! \internal \file
+/*! \libinternal \file
* \brief
* Functions for initializing online help for selections.
*
* \author Teemu Murtola <teemu.murtola@gmail.com>
+ * \inlibraryapi
* \ingroup module_selection
*/
#ifndef GMX_SELECTION_SELHELP_H
namespace gmx
{
-/*! \cond internal */
-/*! \internal \brief
+//! \cond libapi
+/*! \libinternal \brief
* Creates a help tree for selections.
*
* \throws std::bad_alloc if out of memory.
#ifndef GMX_SELECTION_SELMETHOD_H
#define GMX_SELECTION_SELMETHOD_H
-#include "../legacyheaders/typedefs.h"
-
-#include "indexutil.h"
#include "selparam.h"
#include "selvalue.h"
class SelectionParserSymbolTable;
} // namespace gmx
+struct gmx_ana_index_t;
struct gmx_ana_pos_t;
struct gmx_ana_selcollection_t;
+struct t_pbc;
+struct t_topology;
+struct t_trxframe;
/*! \name Selection method flags
* \anchor selmethod_flags
* For \ref STR_VALUE methods, the pointers stored in \p out->s are discarded
* without freeing; it is the responsibility of this function to provide
* pointers that can be discarded without memory leaks.
+ *
+ * If the method accesses \p fr outside the index group specified in \p g or
+ * what it receives from its parameters, it must check that \p fr actually
+ * contains such an atom in case the \p fr has been loaded from a trajectory
+ * that only contains a subset of the system.
*/
typedef void (*sel_updatefunc)(t_topology *top, t_trxframe *fr, t_pbc *pbc,
gmx_ana_index_t *g, gmx_ana_selvalue_t *out,
* For \ref STR_VALUE methods, the pointers stored in \p out->s are discarded
* without freeing; it is the responsibility of this function to provide
* pointers that can be discarded without memory leaks.
+ *
+ * If the method accesses \p fr outside the atoms referenced in \p pos or
+ * what it receives from its parameters, it must check that \p fr actually
+ * contains such an atom in case the \p fr has been loaded from a trajectory
+ * that only contains a subset of the system.
*/
typedef void (*sel_updatefunc_pos)(t_topology *top, t_trxframe *fr, t_pbc *pbc,
- struct gmx_ana_pos_t *pos,
- gmx_ana_selvalue_t *out,
+ gmx_ana_pos_t *pos, gmx_ana_selvalue_t *out,
void *data);
/*! \internal
* If some information is not available, the corresponding field can be set to
* 0/NULL.
*/
-typedef struct gmx_ana_selmethod_help_t
+struct gmx_ana_selmethod_help_t
{
/*! \brief
* One-line description of the syntax of the method.
* to NULL.
*/
const char **help;
-} gmx_ana_selmethod_help_t;
+};
/*! \internal
* \brief
* More details on implementing new selection methods can be found on a
* separate page: \ref page_module_selection_custom.
*/
-typedef struct gmx_ana_selmethod_t
+struct gmx_ana_selmethod_t
{
/** Name of the method. */
const char *name;
/** Help data for the method. */
gmx_ana_selmethod_help_t help;
-} gmx_ana_selmethod_t;
+};
/** Registers a selection method. */
int
#ifndef GMX_SELECTION_SELVALUE_H
#define GMX_SELECTION_SELVALUE_H
-#include "../legacyheaders/types/simple.h"
+#include "../utility/real.h"
/** Defines the value type of a different selection objects. */
typedef enum
* \ingroup module_selection
*/
#include "gromacs/legacyheaders/macros.h"
-#include "gromacs/legacyheaders/pbc.h"
-#include "gromacs/legacyheaders/vec.h"
+#include "gromacs/math/vec.h"
#include "gromacs/selection/nbsearch.h"
#include "gromacs/selection/position.h"
#include "gromacs/selection/selmethod.h"
static void
init_common(t_topology * /* top */, int /* npar */, gmx_ana_selparam_t *param, void *data)
{
- t_methoddata_distance *d = (t_methoddata_distance *)data;
+ t_methoddata_distance *d = static_cast<t_methoddata_distance *>(data);
if ((param[0].flags & SPAR_SET) && d->cutoff <= 0)
{
static void
init_frame_common(t_topology * /* top */, t_trxframe * /* fr */, t_pbc *pbc, void *data)
{
- t_methoddata_distance *d = (t_methoddata_distance *)data;
+ t_methoddata_distance *d = static_cast<t_methoddata_distance *>(data);
d->nbsearch.reset();
gmx::AnalysisNeighborhoodPositions pos(d->p.x, d->p.count());
evaluate_distance(t_topology * /* top */, t_trxframe * /* fr */, t_pbc * /* pbc */,
gmx_ana_pos_t *pos, gmx_ana_selvalue_t *out, void *data)
{
- t_methoddata_distance *d = (t_methoddata_distance *)data;
+ t_methoddata_distance *d = static_cast<t_methoddata_distance *>(data);
out->nr = pos->m.mapb.nra;
for (int b = 0; b < pos->count(); ++b)
evaluate_within(t_topology * /* top */, t_trxframe * /* fr */, t_pbc * /* pbc */,
gmx_ana_pos_t *pos, gmx_ana_selvalue_t *out, void *data)
{
- t_methoddata_distance *d = (t_methoddata_distance *)data;
+ t_methoddata_distance *d = static_cast<t_methoddata_distance *>(data);
out->u.g->isize = 0;
for (int b = 0; b < pos->count(); ++b)
#include <math.h>
#include "gromacs/legacyheaders/macros.h"
-#include "gromacs/legacyheaders/pbc.h"
-#include "gromacs/legacyheaders/physics.h"
-#include "gromacs/legacyheaders/vec.h"
+#include "gromacs/math/units.h"
#include "gromacs/math/utilities.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/pbcutil/pbc.h"
#include "gromacs/selection/indexutil.h"
#include "gromacs/selection/position.h"
#include "gromacs/selection/selection.h"
* \ingroup module_selection
*/
#include "gromacs/legacyheaders/macros.h"
-#include "gromacs/legacyheaders/vec.h"
+#include "gromacs/math/vec.h"
#include "gromacs/selection/position.h"
#include "gromacs/selection/selmethod.h"
#include "gromacs/utility/common.h"
* \ingroup module_selection
*/
#include "gromacs/legacyheaders/macros.h"
-#include "gromacs/legacyheaders/vec.h"
+#include "gromacs/math/vec.h"
#include "gromacs/selection/position.h"
#include "gromacs/selection/selmethod.h"
#include "gromacs/utility/exceptions.h"
#include "gromacs/legacyheaders/macros.h"
+#include "gromacs/topology/topology.h"
#include "gromacs/selection/position.h"
#include "gromacs/selection/selmethod.h"
#include "gromacs/utility/exceptions.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2013, by the GROMACS development team, led by
+ * Copyright (c) 2013,2014, 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 <gtest/gtest.h>
-#include "gromacs/legacyheaders/typedefs.h"
-
#include "gromacs/selection/indexutil.h"
+#include "gromacs/topology/block.h"
#include "testutils/refdata.h"
* \author Teemu Murtola <teemu.murtola@gmail.com>
* \ingroup module_selection
*/
+#include "gromacs/selection/nbsearch.h"
+
#include <gtest/gtest.h>
#include <cmath>
+#include <algorithm>
#include <limits>
-#include <set>
+#include <numeric>
#include <vector>
-#include "gromacs/legacyheaders/pbc.h"
-#include "gromacs/legacyheaders/vec.h"
-
-#include "gromacs/selection/nbsearch.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/pbcutil/pbc.h"
#include "gromacs/random/random.h"
+#include "gromacs/topology/block.h"
#include "gromacs/utility/smalloc.h"
#include "testutils/testasserts.h"
class NeighborhoodSearchTestData
{
public:
+ struct RefPair
+ {
+ RefPair(int refIndex, real distance)
+ : refIndex(refIndex), distance(distance), bFound(false),
+ bExcluded(false)
+ {
+ }
+
+ bool operator<(const RefPair &other) const
+ {
+ return refIndex < other.refIndex;
+ }
+
+ int refIndex;
+ real distance;
+ // The variables below are state variables that are only used
+ // during the actual testing after creating a copy of the reference
+ // pair list, not as part of the reference data.
+ // Simpler to have just a single structure for both purposes.
+ bool bFound;
+ bool bExcluded;
+ };
+
struct TestPosition
{
TestPosition() : refMinDist(0.0), refNearestPoint(-1)
copy_rvec(x, this->x);
}
- rvec x;
- real refMinDist;
- int refNearestPoint;
- std::set<int> refPairs;
+ rvec x;
+ real refMinDist;
+ int refNearestPoint;
+ std::vector<RefPair> refPairs;
};
+
typedef std::vector<TestPosition> TestPositionList;
NeighborhoodSearchTestData(int seed, real cutoff);
void generateRandomPosition(rvec x);
void generateRandomRefPositions(int count);
void generateRandomTestPositions(int count);
- void computeReferences(t_pbc *pbc);
+ void computeReferences(t_pbc *pbc)
+ {
+ computeReferencesInternal(pbc, false);
+ }
+ void computeReferencesXY(t_pbc *pbc)
+ {
+ computeReferencesInternal(pbc, true);
+ }
+
+ bool containsPair(int testIndex, const RefPair &pair) const
+ {
+ const std::vector<RefPair> &refPairs = testPositions_[testIndex].refPairs;
+ std::vector<RefPair>::const_iterator foundRefPair
+ = std::lower_bound(refPairs.begin(), refPairs.end(), pair);
+ if (foundRefPair == refPairs.end() || foundRefPair->refIndex != pair.refIndex)
+ {
+ return false;
+ }
+ return true;
+ }
gmx_rng_t rng_;
real cutoff_;
TestPositionList testPositions_;
private:
+ void computeReferencesInternal(t_pbc *pbc, bool bXY);
+
mutable rvec *testPos_;
};
+//! Shorthand for a collection of reference pairs.
+typedef std::vector<NeighborhoodSearchTestData::RefPair> RefPairList;
+
NeighborhoodSearchTestData::NeighborhoodSearchTestData(int seed, real cutoff)
: rng_(NULL), cutoff_(cutoff), refPosCount_(0), refPos_(NULL), testPos_(NULL)
{
}
}
-void NeighborhoodSearchTestData::computeReferences(t_pbc *pbc)
+void NeighborhoodSearchTestData::computeReferencesInternal(t_pbc *pbc, bool bXY)
{
real cutoff = cutoff_;
if (cutoff <= 0)
{
rvec_sub(i->x, refPos_[j], dx);
}
- const real dist = norm(dx);
+ // TODO: This may not work intuitively for 2D with the third box
+ // vector not parallel to the Z axis, but neither does the actual
+ // neighborhood search.
+ const real dist =
+ !bXY ? norm(dx) : sqrt(sqr(dx[XX]) + sqr(dx[YY]));
if (dist < i->refMinDist)
{
i->refMinDist = dist;
}
if (dist <= cutoff)
{
- i->refPairs.insert(j);
+ RefPair pair(j, dist);
+ GMX_RELEASE_ASSERT(i->refPairs.empty() || i->refPairs.back() < pair,
+ "Reference pairs should be generated in sorted order");
+ i->refPairs.push_back(pair);
}
}
}
}
+/********************************************************************
+ * ExclusionsHelper
+ */
+
+class ExclusionsHelper
+{
+ public:
+ static void markExcludedPairs(RefPairList *refPairs, int testIndex,
+ const t_blocka *excls);
+
+ ExclusionsHelper(int refPosCount, int testPosCount);
+
+ void generateExclusions();
+
+ const t_blocka *exclusions() const { return &excls_; }
+
+ gmx::ConstArrayRef<int> refPosIds() const
+ {
+ return gmx::constArrayRefFromVector<int>(exclusionIds_.begin(),
+ exclusionIds_.begin() + refPosCount_);
+ }
+ gmx::ConstArrayRef<int> testPosIds() const
+ {
+ return gmx::constArrayRefFromVector<int>(exclusionIds_.begin(),
+ exclusionIds_.begin() + testPosCount_);
+ }
+
+ private:
+ int refPosCount_;
+ int testPosCount_;
+ std::vector<int> exclusionIds_;
+ std::vector<int> exclsIndex_;
+ std::vector<int> exclsAtoms_;
+ t_blocka excls_;
+};
+
+// static
+void ExclusionsHelper::markExcludedPairs(RefPairList *refPairs, int testIndex,
+ const t_blocka *excls)
+{
+ int count = 0;
+ for (int i = excls->index[testIndex]; i < excls->index[testIndex + 1]; ++i)
+ {
+ const int excludedIndex = excls->a[i];
+ NeighborhoodSearchTestData::RefPair searchPair(excludedIndex, 0.0);
+ RefPairList::iterator excludedRefPair
+ = std::lower_bound(refPairs->begin(), refPairs->end(), searchPair);
+ if (excludedRefPair != refPairs->end()
+ && excludedRefPair->refIndex == excludedIndex)
+ {
+ excludedRefPair->bFound = true;
+ excludedRefPair->bExcluded = true;
+ ++count;
+ }
+ }
+}
+
+ExclusionsHelper::ExclusionsHelper(int refPosCount, int testPosCount)
+ : refPosCount_(refPosCount), testPosCount_(testPosCount)
+{
+ // Generate an array of 0, 1, 2, ...
+ // TODO: Make the tests work also with non-trivial exclusion IDs,
+ // and test that.
+ exclusionIds_.resize(std::max(refPosCount, testPosCount), 1);
+ exclusionIds_[0] = 0;
+ std::partial_sum(exclusionIds_.begin(), exclusionIds_.end(),
+ exclusionIds_.begin());
+
+ excls_.nr = 0;
+ excls_.index = NULL;
+ excls_.nra = 0;
+ excls_.a = NULL;
+ excls_.nalloc_index = 0;
+ excls_.nalloc_a = 0;
+}
+
+void ExclusionsHelper::generateExclusions()
+{
+ // TODO: Consider a better set of test data, where the density of the
+ // particles would be higher, or where the exclusions would not be random,
+ // to make a higher percentage of the exclusions to actually be within the
+ // cutoff.
+ exclsIndex_.reserve(testPosCount_ + 1);
+ exclsAtoms_.reserve(testPosCount_ * 20);
+ exclsIndex_.push_back(0);
+ for (int i = 0; i < testPosCount_; ++i)
+ {
+ for (int j = 0; j < 20; ++j)
+ {
+ exclsAtoms_.push_back(i + j*3);
+ }
+ exclsIndex_.push_back(exclsAtoms_.size());
+ }
+ excls_.nr = exclsIndex_.size();
+ excls_.index = &exclsIndex_[0];
+ excls_.nra = exclsAtoms_.size();
+ excls_.a = &exclsAtoms_[0];
+}
+
/********************************************************************
* NeighborhoodSearchTest
*/
const NeighborhoodSearchTestData &data);
void testPairSearch(gmx::AnalysisNeighborhoodSearch *search,
const NeighborhoodSearchTestData &data);
+ void testPairSearchFull(gmx::AnalysisNeighborhoodSearch *search,
+ const NeighborhoodSearchTestData &data,
+ const gmx::AnalysisNeighborhoodPositions &pos,
+ const t_blocka *excls);
gmx::AnalysisNeighborhood nb_;
};
{
EXPECT_EQ(i->refNearestPoint, pair.refIndex());
EXPECT_EQ(0, pair.testIndex());
+ EXPECT_REAL_EQ_TOL(i->refMinDist, sqrt(pair.distance2()),
+ gmx::test::ulpTolerance(64));
}
else
{
}
}
+/*! \brief
+ * Helper function to check that all expected pairs were found.
+ */
+static void checkAllPairsFound(const RefPairList &refPairs)
+{
+ // This could be elegantly expressed with Google Mock matchers, but that
+ // has a significant effect on the runtime of the tests...
+ for (RefPairList::const_iterator i = refPairs.begin(); i != refPairs.end(); ++i)
+ {
+ if (!i->bFound)
+ {
+ ADD_FAILURE()
+ << "Some pairs within the cutoff were not found.";
+ break;
+ }
+ }
+}
+
void NeighborhoodSearchTest::testPairSearch(
gmx::AnalysisNeighborhoodSearch *search,
const NeighborhoodSearchTestData &data)
{
- NeighborhoodSearchTestData::TestPositionList::const_iterator i;
- for (i = data.testPositions_.begin(); i != data.testPositions_.end(); ++i)
+ testPairSearchFull(search, data, data.testPositions(), NULL);
+}
+
+void NeighborhoodSearchTest::testPairSearchFull(
+ gmx::AnalysisNeighborhoodSearch *search,
+ const NeighborhoodSearchTestData &data,
+ const gmx::AnalysisNeighborhoodPositions &pos,
+ const t_blocka *excls)
+{
+ // TODO: Some parts of this code do not work properly if pos does not
+ // contain all the test positions.
+ std::set<int> remainingTestPositions;
+ for (size_t i = 0; i < data.testPositions_.size(); ++i)
{
- std::set<int> checkSet = i->refPairs;
- gmx::AnalysisNeighborhoodPairSearch pairSearch =
- search->startPairSearch(i->x);
- gmx::AnalysisNeighborhoodPair pair;
- while (pairSearch.findNextPair(&pair))
+ remainingTestPositions.insert(i);
+ }
+ gmx::AnalysisNeighborhoodPairSearch pairSearch
+ = search->startPairSearch(pos);
+ gmx::AnalysisNeighborhoodPair pair;
+ // TODO: There is an ordering assumption here that may break in the future:
+ // all pairs for a test position are assumed to be returned consencutively.
+ RefPairList refPairs;
+ int prevTestPos = -1;
+ while (pairSearch.findNextPair(&pair))
+ {
+ if (pair.testIndex() != prevTestPos)
{
- EXPECT_EQ(0, pair.testIndex());
- if (checkSet.erase(pair.refIndex()) == 0)
+ if (prevTestPos != -1)
+ {
+ checkAllPairsFound(refPairs);
+ }
+ const int testIndex = pair.testIndex();
+ if (remainingTestPositions.count(testIndex) == 0)
{
- // TODO: Check whether the same pair was returned more than
- // once and give a better error message if so.
ADD_FAILURE()
- << "Expected: Position " << pair.refIndex()
- << " is within cutoff.\n"
- << " Actual: It is not.";
+ << "Pairs for test position " << testIndex
+ << " are returned more than once.";
}
+ remainingTestPositions.erase(testIndex);
+ refPairs = data.testPositions_[testIndex].refPairs;
+ if (excls != NULL)
+ {
+ ExclusionsHelper::markExcludedPairs(&refPairs, testIndex, excls);
+ }
+ prevTestPos = testIndex;
+ }
+
+ NeighborhoodSearchTestData::RefPair searchPair(pair.refIndex(),
+ sqrt(pair.distance2()));
+ RefPairList::iterator foundRefPair
+ = std::lower_bound(refPairs.begin(), refPairs.end(), searchPair);
+ if (foundRefPair == refPairs.end() || foundRefPair->refIndex != pair.refIndex())
+ {
+ ADD_FAILURE()
+ << "Expected: Pair (ref: " << pair.refIndex() << ", test: "
+ << pair.testIndex() << ") is not within the cutoff.\n"
+ << " Actual: It is returned.";
+ }
+ else if (foundRefPair->bExcluded)
+ {
+ ADD_FAILURE()
+ << "Expected: Pair (ref: " << pair.refIndex() << ", test: "
+ << pair.testIndex() << ") is excluded from the search.\n"
+ << " Actual: It is returned.";
+ }
+ else if (foundRefPair->bFound)
+ {
+ ADD_FAILURE()
+ << "Expected: Pair (ref: " << pair.refIndex() << ", test: "
+ << pair.testIndex() << ") is returned only once.\n"
+ << " Actual: It is returned multiple times.";
+ }
+ else
+ {
+ foundRefPair->bFound = true;
+ EXPECT_REAL_EQ_TOL(foundRefPair->distance, searchPair.distance,
+ gmx::test::ulpTolerance(64))
+ << "Distance computed by the neighborhood search does not match.";
+ }
+ }
+ checkAllPairsFound(refPairs);
+ for (std::set<int>::const_iterator i = remainingTestPositions.begin();
+ i != remainingTestPositions.end(); ++i)
+ {
+ if (!data.testPositions_[*i].refPairs.empty())
+ {
+ ADD_FAILURE()
+ << "Expected: Pairs would be returned for test position " << *i << ".\n"
+ << " Actual: None were returned.";
+ break;
}
- EXPECT_TRUE(checkSet.empty()) << "Some positions were not returned by the pair search.";
}
}
NeighborhoodSearchTestData data_;
};
+class RandomBoxXYFullPBCData
+{
+ public:
+ static const NeighborhoodSearchTestData &get()
+ {
+ static RandomBoxXYFullPBCData singleton;
+ return singleton.data_;
+ }
+
+ RandomBoxXYFullPBCData() : data_(54321, 1.0)
+ {
+ data_.box_[XX][XX] = 10.0;
+ data_.box_[YY][YY] = 5.0;
+ data_.box_[ZZ][ZZ] = 7.0;
+ // TODO: Consider whether manually picking some positions would give better
+ // test coverage.
+ data_.generateRandomRefPositions(1000);
+ data_.generateRandomTestPositions(100);
+ set_pbc(&data_.pbc_, epbcXYZ, data_.box_);
+ data_.computeReferencesXY(&data_.pbc_);
+ }
+
+ private:
+ NeighborhoodSearchTestData data_;
+};
+
class RandomTriclinicFullPBCData
{
public:
testPairSearch(&search, data);
}
+TEST_F(NeighborhoodSearchTest, GridSearchXYBox)
+{
+ const NeighborhoodSearchTestData &data = RandomBoxXYFullPBCData::get();
+
+ nb_.setCutoff(data.cutoff_);
+ nb_.setMode(gmx::AnalysisNeighborhood::eSearchMode_Grid);
+ nb_.setXYMode(true);
+ gmx::AnalysisNeighborhoodSearch search =
+ nb_.initSearch(&data.pbc_, data.refPositions());
+ // Currently, grid searching not supported with XY.
+ //ASSERT_EQ(gmx::AnalysisNeighborhood::eSearchMode_Grid, search.mode());
+
+ testIsWithin(&search, data);
+ testMinimumDistance(&search, data);
+ testNearestPoint(&search, data);
+ testPairSearch(&search, data);
+}
+
TEST_F(NeighborhoodSearchTest, HandlesConcurrentSearches)
{
const NeighborhoodSearchTestData &data = TrivialTestData::get();
testPairSearch(&search2, data);
gmx::AnalysisNeighborhoodPair pair;
- pairSearch1.findNextPair(&pair);
+ ASSERT_TRUE(pairSearch1.findNextPair(&pair))
+ << "Test data did not contain any pairs for position 0 (problem in the test).";
EXPECT_EQ(0, pair.testIndex());
- EXPECT_TRUE(data.testPositions_[0].refPairs.count(pair.refIndex()) == 1);
+ {
+ NeighborhoodSearchTestData::RefPair searchPair(pair.refIndex(), sqrt(pair.distance2()));
+ EXPECT_TRUE(data.containsPair(0, searchPair));
+ }
- pairSearch2.findNextPair(&pair);
+ ASSERT_TRUE(pairSearch2.findNextPair(&pair))
+ << "Test data did not contain any pairs for position 1 (problem in the test).";
EXPECT_EQ(1, pair.testIndex());
- EXPECT_TRUE(data.testPositions_[1].refPairs.count(pair.refIndex()) == 1);
+ {
+ NeighborhoodSearchTestData::RefPair searchPair(pair.refIndex(), sqrt(pair.distance2()));
+ EXPECT_TRUE(data.containsPair(1, searchPair));
+ }
}
TEST_F(NeighborhoodSearchTest, HandlesSkippingPairs)
++currentIndex;
}
EXPECT_EQ(currentIndex, pair.testIndex());
- EXPECT_TRUE(data.testPositions_[currentIndex].refPairs.count(pair.refIndex()) == 1);
+ NeighborhoodSearchTestData::RefPair searchPair(pair.refIndex(), sqrt(pair.distance2()));
+ EXPECT_TRUE(data.containsPair(currentIndex, searchPair));
pairSearch.skipRemainingPairsForTestPosition();
++currentIndex;
}
}
+TEST_F(NeighborhoodSearchTest, SimpleSearchExclusions)
+{
+ const NeighborhoodSearchTestData &data = RandomBoxFullPBCData::get();
+
+ ExclusionsHelper helper(data.refPosCount_, data.testPositions_.size());
+ helper.generateExclusions();
+
+ nb_.setCutoff(data.cutoff_);
+ nb_.setTopologyExclusions(helper.exclusions());
+ nb_.setMode(gmx::AnalysisNeighborhood::eSearchMode_Simple);
+ gmx::AnalysisNeighborhoodSearch search =
+ nb_.initSearch(&data.pbc_,
+ data.refPositions().exclusionIds(helper.refPosIds()));
+ ASSERT_EQ(gmx::AnalysisNeighborhood::eSearchMode_Simple, search.mode());
+
+ testPairSearchFull(&search, data,
+ data.testPositions().exclusionIds(helper.testPosIds()),
+ helper.exclusions());
+}
+
+TEST_F(NeighborhoodSearchTest, GridSearchExclusions)
+{
+ const NeighborhoodSearchTestData &data = RandomBoxFullPBCData::get();
+
+ ExclusionsHelper helper(data.refPosCount_, data.testPositions_.size());
+ helper.generateExclusions();
+
+ nb_.setCutoff(data.cutoff_);
+ nb_.setTopologyExclusions(helper.exclusions());
+ nb_.setMode(gmx::AnalysisNeighborhood::eSearchMode_Grid);
+ gmx::AnalysisNeighborhoodSearch search =
+ nb_.initSearch(&data.pbc_,
+ data.refPositions().exclusionIds(helper.refPosIds()));
+ ASSERT_EQ(gmx::AnalysisNeighborhood::eSearchMode_Grid, search.mode());
+
+ testPairSearchFull(&search, data,
+ data.testPositions().exclusionIds(helper.testPosIds()),
+ helper.exclusions());
+}
+
} // namespace
#include <vector>
-#include "gromacs/legacyheaders/typedefs.h"
-#include "gromacs/legacyheaders/vec.h"
-
+#include "gromacs/fileio/trx.h"
+#include "gromacs/math/vec.h"
#include "gromacs/selection/indexutil.h"
#include "gromacs/selection/poscalc.h"
#include "gromacs/selection/position.h"
+#include "gromacs/topology/topology.h"
#include "gromacs/utility/smalloc.h"
#include "gromacs/utility/uniqueptr.h"
*/
#include <gtest/gtest.h>
+#include "gromacs/fileio/trx.h"
#include "gromacs/options/basicoptions.h"
#include "gromacs/options/options.h"
#include "gromacs/selection/indexutil.h"
#include "gromacs/selection/selectioncollection.h"
#include "gromacs/selection/selection.h"
+#include "gromacs/topology/topology.h"
#include "gromacs/utility/arrayref.h"
#include "gromacs/utility/exceptions.h"
#include "gromacs/utility/flags.h"
// EXPECT_THROW_GMX(sc_.compile(), gmx::APIError);
}
+TEST_F(SelectionCollectionTest, HandlesOutOfRangeAtomIndexInGroup)
+{
+ ASSERT_NO_THROW_GMX(sc_.setTopology(NULL, 5));
+ ASSERT_NO_THROW_GMX(loadIndexGroups("simple.ndx"));
+ EXPECT_THROW_GMX(sc_.parseFromString("group \"GrpB\""), gmx::InconsistentInputError);
+}
+
+TEST_F(SelectionCollectionTest, HandlesOutOfRangeAtomIndexInGroupDelayed)
+{
+ ASSERT_NO_THROW_GMX(loadIndexGroups("simple.ndx"));
+ ASSERT_NO_THROW_GMX(sc_.parseFromString("group \"GrpB\""));
+ EXPECT_THROW_GMX(sc_.setTopology(NULL, 5), gmx::InconsistentInputError);
+}
+
+TEST_F(SelectionCollectionTest, HandlesOutOfRangeAtomIndexInGroupDelayed2)
+{
+ ASSERT_NO_THROW_GMX(sc_.setTopology(NULL, 5));
+ ASSERT_NO_THROW_GMX(sc_.parseFromString("group \"GrpB\""));
+ EXPECT_THROW_GMX(loadIndexGroups("simple.ndx"), gmx::InconsistentInputError);
+}
+
TEST_F(SelectionCollectionTest, RecoversFromMissingMoleculeInfo)
{
ASSERT_NO_THROW_GMX(sc_.parseFromString("molindex 1 to 5"));
EXPECT_THROW_GMX(sc_.evaluate(frame_, NULL), gmx::InconsistentInputError);
}
-// TODO: Tests for evaluation errors
+TEST_F(SelectionCollectionTest, HandlesFramesWithTooSmallAtomSubsets)
+{
+ ASSERT_NO_THROW_GMX(sc_.parseFromString("atomnr 3 to 10"));
+ ASSERT_NO_FATAL_FAILURE(loadTopology("simple.gro"));
+ ASSERT_NO_THROW_GMX(sc_.compile());
+ frame_->natoms = 8;
+ EXPECT_THROW_GMX(sc_.evaluate(frame_, NULL), gmx::InconsistentInputError);
+}
+
+TEST_F(SelectionCollectionTest, HandlesFramesWithTooSmallAtomSubsets2)
+{
+ // Evaluating the positions will require atoms 1-9.
+ ASSERT_NO_THROW_GMX(sc_.parseFromString("whole_res_com of atomnr 2 5 7"));
+ ASSERT_NO_FATAL_FAILURE(loadTopology("simple.gro"));
+ ASSERT_NO_THROW_GMX(sc_.compile());
+ frame_->natoms = 8;
+ EXPECT_THROW_GMX(sc_.evaluate(frame_, NULL), gmx::InconsistentInputError);
+}
+
+TEST_F(SelectionCollectionTest, HandlesFramesWithTooSmallAtomSubsets3)
+{
+ ASSERT_NO_THROW_GMX(sc_.parseFromString("mindistance from atomnr 1 to 5 < 2"));
+ ASSERT_NO_FATAL_FAILURE(loadTopology("simple.gro"));
+ ASSERT_NO_THROW_GMX(sc_.compile());
+ frame_->natoms = 10;
+ EXPECT_THROW_GMX(sc_.evaluate(frame_, NULL), gmx::InconsistentInputError);
+}
+
+// TODO: Tests for more evaluation errors
/********************************************************************
public:
SelectionOptionTestBase();
- void setManager();
void loadTopology(const char *filename);
gmx::SelectionCollection sc_;
SelectionOptionTestBase::SelectionOptionTestBase()
: manager_(&sc_), options_(NULL, NULL)
{
+ options_.addManager(&manager_);
sc_.setReferencePosType("atom");
sc_.setOutputPosType("atom");
}
-void SelectionOptionTestBase::setManager()
-{
- setManagerForSelectionOptions(&options_, &manager_);
-}
-
void SelectionOptionTestBase::loadTopology(const char *filename)
{
topManager_.loadTopology(filename);
gmx::Selection sel;
using gmx::SelectionOption;
ASSERT_NO_THROW_GMX(options_.addOption(SelectionOption("sel").store(&sel)));
- setManager();
gmx::OptionsAssigner assigner(&options_);
EXPECT_NO_THROW_GMX(assigner.start());
using gmx::SelectionOption;
ASSERT_NO_THROW_GMX(options_.addOption(
SelectionOption("sel").store(&sel).onlyStatic()));
- setManager();
gmx::OptionsAssigner assigner(&options_);
EXPECT_NO_THROW_GMX(assigner.start());
using gmx::SelectionOption;
ASSERT_NO_THROW_GMX(options_.addOption(
SelectionOption("sel").store(&sel).onlyAtoms()));
- setManager();
gmx::OptionsAssigner assigner(&options_);
EXPECT_NO_THROW_GMX(assigner.start());
using gmx::SelectionOption;
ASSERT_NO_THROW_GMX(options_.addOption(
SelectionOption("sel").store(&sel)));
- setManager();
gmx::OptionsAssigner assigner(&options_);
EXPECT_NO_THROW_GMX(assigner.start());
using gmx::SelectionOption;
ASSERT_NO_THROW_GMX(options_.addOption(
SelectionOption("sel").store(&sel)));
- setManager();
gmx::OptionsAssigner assigner(&options_);
EXPECT_NO_THROW_GMX(assigner.start());
gmx::Selection sel;
using gmx::SelectionOption;
ASSERT_NO_THROW_GMX(options_.addOption(SelectionOption("sel").store(&sel)));
- setManager();
gmx::OptionsAssigner assigner(&options_);
EXPECT_NO_THROW_GMX(assigner.start());
using gmx::SelectionOption;
ASSERT_NO_THROW_GMX(options_.addOption(
SelectionOption("sel").store(sel).valueCount(2)));
- setManager();
gmx::OptionsAssigner assigner(&options_);
EXPECT_NO_THROW_GMX(assigner.start());
using gmx::SelectionOption;
options_.addOption(SelectionOption("sel").store(&sel)
.defaultSelectionText("all"));
- setManager();
EXPECT_NO_THROW_GMX(options_.finish());
using gmx::SelectionOption;
gmx::SelectionOptionInfo *info = options_.addOption(
SelectionOption("sel").storeVector(&sel).multiValue());
- setManager();
gmx::OptionsAssigner assigner(&options_);
EXPECT_NO_THROW_GMX(assigner.start());
using gmx::SelectionOption;
gmx::SelectionOptionInfo *info = options_.addOption(
SelectionOption("sel").store(&sel));
- setManager();
gmx::OptionsAssigner assigner(&options_);
EXPECT_NO_THROW_GMX(assigner.start());
using gmx::SelectionOption;
gmx::SelectionOptionInfo *info = options_.addOption(
SelectionOption("sel").storeVector(&sel).multiValue());
- setManager();
gmx::OptionsAssigner assigner(&options_);
EXPECT_NO_THROW_GMX(assigner.start());
using gmx::SelectionOption;
gmx::SelectionOptionInfo *info = options_.addOption(
SelectionOption("sel").storeVector(&sel).multiValue());
- setManager();
gmx::OptionsAssigner assigner(&options_);
EXPECT_NO_THROW_GMX(assigner.start());
using gmx::SelectionOption;
ASSERT_NO_THROW_GMX(options_.addOption(
SelectionOption("sel").store(&sel).required()));
- setManager();
gmx::OptionsAssigner assigner(&options_);
EXPECT_NO_THROW_GMX(assigner.start());
ASSERT_NO_THROW_GMX(options_.addOption(
SelectionOption("sel").store(sel).required()
.valueCount(2)));
- setManager();
gmx::OptionsAssigner assigner(&options_);
EXPECT_NO_THROW_GMX(assigner.start());
gmx::Selection sel;
using gmx::SelectionOption;
ASSERT_NO_THROW_GMX(options_.addOption(SelectionOption("sel").store(&sel)));
- setManager();
gmx::OptionsAssigner assigner(&options_);
EXPECT_NO_THROW_GMX(assigner.start());
using gmx::SelectionOption;
gmx::SelectionOptionInfo *info = options_.addOption(
SelectionOption("sel").storeVector(&sel).valueCount(3));
- setManager();
gmx::OptionsAssigner assigner(&options_);
EXPECT_NO_THROW_GMX(assigner.start());
ASSERT_NO_THROW_GMX(options_.addOption(
SelectionOption("reqsel").storeVector(&reqsel)
.multiValue().required()));
- setManager();
gmx::OptionsAssigner assigner(&options_);
EXPECT_NO_THROW_GMX(assigner.start());
SelectionOption("sel1").storeVector(&sel1).multiValue()));
ASSERT_NO_THROW_GMX(options_.addOption(
SelectionOption("sel2").storeVector(&sel2).multiValue()));
- setManager();
gmx::OptionsAssigner assigner(&options_);
std::string value(TestFileManager::getInputFilePath("selfile.dat"));
SelectionOption("sel1").storeVector(&sel1)));
ASSERT_NO_THROW_GMX(options_.addOption(
SelectionOption("sel2").storeVector(&sel2)));
- setManager();
gmx::OptionsAssigner assigner(&options_);
std::string value(TestFileManager::getInputFilePath("selfile.dat"));
ASSERT_NO_THROW_GMX(options_.addOption(
SelectionOption("optsel").storeVector(&optsel)
.multiValue()));
- setManager();
gmx::OptionsAssigner assigner(&options_);
EXPECT_NO_THROW_GMX(assigner.start());
ASSERT_NO_THROW_GMX(options_.addOption(
SelectionOption("sel2").storeVector(&sel2)
.multiValue().required()));
- setManager();
gmx::OptionsAssigner assigner(&options_);
EXPECT_NO_THROW_GMX(assigner.start());
SelectionOption("sel1").storeVector(&sel1).required()));
ASSERT_NO_THROW_GMX(options_.addOption(
SelectionOption("sel2").storeVector(&sel2).required()));
- setManager();
gmx::OptionsAssigner assigner(&options_);
std::string value(TestFileManager::getInputFilePath("selfile.dat"));
using gmx::SelectionOption;
ASSERT_NO_THROW_GMX(options_.addOption(
SelectionOption("sel").storeVector(&sel).multiValue()));
- setManager();
gmx::OptionsAssigner assigner(&options_);
EXPECT_NO_THROW_GMX(assigner.start());
using gmx::SelectionOption;
ASSERT_NO_THROW_GMX(options_.addOption(
SelectionOption("sel").storeVector(&sel).multiValue()));
- setManager();
gmx::OptionsAssigner assigner(&options_);
EXPECT_NO_THROW_GMX(assigner.start());
using gmx::SelectionOption;
ASSERT_NO_THROW_GMX(options_.addOption(
SelectionOption("sel").storeVector(&sel).multiValue()));
- setManager();
gmx::OptionsAssigner assigner(&options_);
EXPECT_NO_THROW_GMX(assigner.start());
#include <cstring>
-#include "gromacs/legacyheaders/typedefs.h"
-#include "gromacs/legacyheaders/vec.h"
-
+#include "gromacs/math/vec.h"
#include "gromacs/fileio/tpxio.h"
+#include "gromacs/fileio/trx.h"
#include "gromacs/fileio/trxio.h"
+#include "gromacs/topology/atoms.h"
+#include "gromacs/topology/topology.h"
#include "gromacs/utility/gmxassert.h"
#include "gromacs/utility/smalloc.h"
atomtypes_.reserve(count);
for (int i = 0; i < count; ++i)
{
- atomtypes_.push_back(strdup(types[i]));
+ atomtypes_.push_back(gmx_strdup(types[i]));
}
snew(top_->atoms.atomtype, top_->atoms.nr);
for (int i = 0, j = 0; i < top_->atoms.nr; ++i, ++j)
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2013, by the GROMACS development team, led by
+ * Copyright (c) 2013,2014, 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 <vector>
-#include "gromacs/legacyheaders/typedefs.h"
+struct t_topology;
+struct t_trxframe;
namespace gmx
{
#include <math.h>
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
/*! \cond libapi */
/*! \addtogroup module_simd */
* \ingroup module_simd
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stddef.h>
-#include "gromacs/legacyheaders/types/simple.h"
+
+#include "gromacs/utility/basedefinitions.h"
/* Forward declarations so memory allocation can be used in implementations */
static gmx_inline float * gmx_simd_align_f(float *p);
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
* \ingroup module_simd
*/
#include <vector>
+
#include <gtest/gtest.h>
-#include "gromacs/simd/simd.h"
+#include "gromacs/simd/simd.h"
+#include "gromacs/utility/real.h"
namespace gmx
{
* conservative so it works with (inverse) square root, division,
* exponentials, logarithms, and error functions.
*/
- SimdBaseTest()
- {
+ SimdBaseTest() :
#ifdef GMX_DOUBLE
- ulpTol_ = 255LL; // Aim for roughly twice the precision we have in single.
+ ulpTol_(255LL), // Aim for roughly twice the precision we have in single.
#else
- ulpTol_ = 10LL; // Be a bit liberal so compiler optimization doesn't bite us.
+ ulpTol_(10LL), // Be a bit liberal so compiler optimization doesn't bite us.
#endif
- absTol_ = 0;
- range_ = std::pair<real, real>(1, 10);
+ absTol_(0), range_(std::pair<real, real>(1, 10))
+ {
}
/*! \brief Adjust ulp tolerance from the default 10 (float) or 255 (double). */
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
/*! \internal \file
* \brief
*/
#include <gtest/gtest.h>
+
#include "gromacs/simd/simd.h"
+#include "gromacs/utility/real.h"
namespace
{
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include "simd.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include "simd4.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "gromacs/math/utilities.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <vector>
#include "gromacs/math/utilities.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "gromacs/simd/simd.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "gromacs/math/utilities.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include "simd.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <vector>
#include "gromacs/math/utilities.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include "gromacs/simd/simd.h"
* the research papers on the package. Check out http://www.gromacs.org.
*/
#include "statistics.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+
+#include "config.h"
#include <math.h>
-#include "typedefs.h"
+
+#include "gromacs/math/vec.h"
+#include "gromacs/utility/real.h"
#include "gromacs/utility/smalloc.h"
-#include "vec.h"
static int gmx_dnint(double x)
{
#ifndef GMX_STATISTICS_H
#define GMX_STATISTICS_H
+#include <stdio.h>
+
+#include "gromacs/utility/real.h"
+
/*! \libinternal \file
*
* \brief
#ifdef __cplusplus
extern "C" {
#endif
-#include <stdio.h>
-#include "types/simple.h"
//! Abstract container type
typedef struct gmx_stats *gmx_stats_t;
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "statistics.h"
+
+#include "config.h"
#include <stdio.h>
-#include "typedefs.h"
-#include "gromacs/utility/smalloc.h"
-#include "vec.h"
+
+#include "gromacs/math/vec.h"
#include "gromacs/random/random.h"
-#include "statistics.h"
+#include "gromacs/utility/real.h"
+#include "gromacs/utility/smalloc.h"
static void horizontal()
{
* \author Carsten Kutzner <ckutzne@gwdg.de>
* \ingroup module_swap
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
+
#include "typedefs.h"
#include "gromacs/utility/cstringutil.h"
#include "gromacs/utility/smalloc.h"
#include "gromacs/mdlib/groupcoord.h"
-#include "mtop_util.h"
+#include "gromacs/topology/mtop_util.h"
#include "macros.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "names.h"
#include "network.h"
#include "mdrun.h"
-#include "xvgr.h"
+#include "gromacs/fileio/xvgr.h"
#include "copyrite.h"
#include "gromacs/fileio/confio.h"
#include "gromacs/timing/wallcycle.h"
#include "swapcoords.h"
+#include "gromacs/pbcutil/pbc.h"
+
static char *SwS = {"SWAP:"}; /**< For output that comes from the swap module */
static char *SwSEmpty = {" "}; /**< Placeholder for multi-line output */
static char* IonString[eIonNR] = {"anion", "cation" }; /**< Type of ion, used for verbose output */
set(LIBGROMACS_SOURCES ${LIBGROMACS_SOURCES} ${TIMING_SOURCES} PARENT_SCOPE)
set(TIMING_PUBLIC_HEADERS
+ wallcycle.h
walltime_accounting.h)
+
gmx_install_headers(timing ${TIMING_PUBLIC_HEADERS})
if (BUILD_TESTING)
* This file is part of the GROMACS molecular simulation package.
*
* Copyright (c) 1991-2006 David van der Spoel, Erik Lindahl, Berk Hess, University of Groningen.
- * Copyright (c) 2013, by the GROMACS development team, led by
+ * Copyright (c) 2013,2014, 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 "gromacs/timing/cyclecounter.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <time.h>
#ifdef HAVE_SYS_TIME_H
* define HAVE_RDTSCP to use the serializing rdtscp instruction instead of rdtsc.
* This is only supported on newer Intel/AMD hardware, but provides better accuracy.
*/
-#ifdef HAVE_CONFIG_H
#include "config.h"
-#endif
#ifdef _MSC_VER
#include <intrin.h>
*/
#include "gromacs/timing/wallcycle.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
+#include <stdlib.h>
#include <string.h>
-#include "gromacs/utility/smalloc.h"
-#include "gmx_fatal.h"
-#include "md_logging.h"
+#include "gromacs/legacyheaders/md_logging.h"
+#include "gromacs/legacyheaders/types/commrec.h"
#include "gromacs/utility/cstringutil.h"
-
-#include "gromacs/timing/cyclecounter.h"
+#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/gmxmpi.h"
+#include "gromacs/utility/smalloc.h"
+
+#include "cyclecounter.h"
/* DEBUG_WCYCLE adds consistency checking for the counters.
* It checks if you stop a counter different from the last
#define GMX_TIMING_WALLCYCLE_H
#include <stdio.h>
-#include "gromacs/legacyheaders/typedefs.h"
-#include "gromacs/legacyheaders/types/commrec.h"
+
+#include "../legacyheaders/types/commrec_fwd.h"
+#include "../legacyheaders/types/nbnxn_cuda_types_ext.h"
+#include "../utility/basedefinitions.h"
#ifdef __cplusplus
extern "C" {
#endif
+typedef struct gmx_wallcycle *gmx_wallcycle_t;
+
enum {
ewcRUN, ewcSTEP, ewcPPDURINGPME, ewcDOMDEC, ewcDDCOMMLOAD,
ewcDDCOMMBOUND, ewcVSITECONSTR, ewcPP_PMESENDX, ewcNS, ewcLAUNCH_GPU_NB,
*/
#include "gromacs/timing/walltime_accounting.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <time.h>
#ifdef HAVE_UNISTD_H
#include <sys/time.h>
#endif
-#include "gromacs/legacyheaders/types/simple.h"
-
+#include "gromacs/utility/basedefinitions.h"
#include "gromacs/utility/smalloc.h"
/* TODO in future: convert gmx_walltime_accounting to a class,
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2013, by the GROMACS development team, led by
+ * Copyright (c) 2013,2014, 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.
#ifndef GMX_TIMING_WALLTIME_ACCOUNTING_H
#define GMX_TIMING_WALLTIME_ACCOUNTING_H
-#include "../legacyheaders/types/simple.h"
+#include "../utility/basedefinitions.h"
#ifdef __cplusplus
extern "C" {
}
#endif
-/*! Contains per-process and per-thread data about elapsed wall-clock
- * times and integration steps performed. */
+/*! \brief
+ * Contains per-process and per-thread data about elapsed wall-clock
+ * times and integration steps performed. */
typedef struct gmx_walltime_accounting *gmx_walltime_accounting_t;
//! Constructor
void
walltime_accounting_destroy(gmx_walltime_accounting_t walltime_accounting);
-/*! Record initial time stamps, e.g. at run end or counter
- * re-initalization time */
+/*! \brief
+ * Record initial time stamps, e.g. at run end or counter re-initalization time
+ */
void
walltime_accounting_start(gmx_walltime_accounting_t walltime_accounting);
-/*! Measure and cache the elapsed wall-clock time since
- * walltime_accounting_start */
+/*! \brief
+ * Measure and cache the elapsed wall-clock time since
+ * walltime_accounting_start() */
void
walltime_accounting_end(gmx_walltime_accounting_t walltime_accounting);
-/*! Measure and return the elapsed wall-clock time since
- * walltime_accounting_start */
+/*! \brief
+ * Measure and return the elapsed wall-clock time since
+ * walltime_accounting_start() */
double
walltime_accounting_get_current_elapsed_time(gmx_walltime_accounting_t walltime_accounting);
double
walltime_accounting_get_nsteps_done(gmx_walltime_accounting_t walltime_accounting);
-/*! Set the number of integration steps done
+/*! \brief Set the number of integration steps done
*
* TODO consider whether this should get done in walltime_accounting_end */
void
walltime_accounting_set_nsteps_done(gmx_walltime_accounting_t walltime_accounting,
gmx_int64_t nsteps_done);
-/*! \brief Calls system timing routines (e.g. clock_gettime) to get the
- * (fractional) number of seconds elapsed since the epoch.
+/*! \brief
+ * Calls system timing routines (e.g. clock_gettime) to get the (fractional)
+ * number of seconds elapsed since the epoch.
*
* Resolution is implementation-dependent, but typically nanoseconds
* or microseconds. */
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include <stdio.h>
#include <string.h>
-#include "main.h"
#include "macros.h"
-#include "gromacs/commandline/pargs.h"
-#include "sysstuff.h"
#include "txtdump.h"
-#include "gmx_fatal.h"
-#include "atomprop.h"
-#include "vec.h"
-#include "pbc.h"
-#include "physics.h"
-#include "index.h"
-#include "gromacs/utility/smalloc.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/math/units.h"
+#include "gromacs/topology/index.h"
#include "names.h"
-#include "mtop_util.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/fileio/gmxfio.h"
#include "gromacs/fileio/trnio.h"
#include "gromacs/fileio/xtcio.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trxio.h"
+#include "gromacs/commandline/pargs.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/topology/atomprop.h"
+#include "gromacs/topology/block.h"
+#include "gromacs/topology/mtop_util.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
+
#include "compare.h"
typedef struct {
* the research papers on the package. Check out http://www.gromacs.org.
*/
/* This file is completely threadsafe - keep it that way! */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include <stdio.h>
#include <string.h>
-#include "main.h"
#include "macros.h"
#include "gromacs/utility/smalloc.h"
-#include "gromacs/fileio/futil.h"
-#include "sysstuff.h"
+#include "gromacs/utility/futil.h"
#include "txtdump.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "names.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trxio.h"
#include "gromacs/fileio/enxio.h"
-#include "mtop_util.h"
+#include "gromacs/topology/mtop_util.h"
#include "gromacs/utility/cstringutil.h"
static void cmp_int(FILE *fp, const char *s, int index, int i1, int i2)
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
-#include "index.h"
-#include "gmx_fatal.h"
-#include "sysstuff.h"
-#include "gromacs/utility/smalloc.h"
+
+#include "gromacs/legacyheaders/types/inputrec.h"
+#include "gromacs/legacyheaders/types/simple.h"
+#include "gromacs/legacyheaders/types/state.h"
+#include "gromacs/topology/index.h"
#include "macros.h"
#include "names.h"
-#include "typedefs.h"
#include "gromacs/gmxpreprocess/readir.h"
-#include "gromacs/commandline/pargs.h"
-#include "vec.h"
-#include "mtop_util.h"
+#include "gromacs/topology/mtop_util.h"
#include "checkpoint.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trnio.h"
#include "gromacs/fileio/enxio.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
+
+#include "gromacs/commandline/pargs.h"
+#include "gromacs/math/vec.h"
#include "gromacs/random/random.h"
+#include "gromacs/topology/topology.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
#define RANGECHK(i, n) if ((i) >= (n)) gmx_fatal(FARGS, "Your index file contains atomnumbers (e.g. %d)\nthat are larger than the number of atoms in the tpr file (%d)", (i), (n))
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
+#include <assert.h>
+#include <math.h>
#include <stdio.h>
#include <string.h>
-#include <math.h>
-#include <assert.h>
-#include "main.h"
+
#include "macros.h"
-#include "gromacs/commandline/pargs.h"
-#include "sysstuff.h"
#include "txtdump.h"
-#include "gmx_fatal.h"
-#include "gromacs/utility/smalloc.h"
#include "names.h"
#include "txtdump.h"
-#include "gromacs/gmxpreprocess/gmxcpp.h"
#include "checkpoint.h"
-#include "mtop_util.h"
+#include "gromacs/topology/mtop_util.h"
#include "gromacs/fileio/xtcio.h"
#include "gromacs/fileio/enxio.h"
#include "gromacs/fileio/gmxfio.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/fileio/trnio.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/fileio/tngio.h"
#include "gromacs/fileio/tngio_for_tools.h"
#include <unistd.h>
#endif
-#include "gromacs/linearalgebra/mtxio.h"
+#include "gromacs/commandline/pargs.h"
+#include "gromacs/fileio/mtxio.h"
+#include "gromacs/gmxpreprocess/gmxcpp.h"
#include "gromacs/linearalgebra/sparsematrix.h"
-
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
static void list_tpx(const char *fn, gmx_bool bShowNumbers, const char *mdpfn,
gmx_bool bSysTop)
#ifndef GMX_TOOLS_DUMP_H
#define GMX_TOOLS_DUMP_H
-#include "gromacs/legacyheaders/types/simple.h"
-
#ifdef __cplusplus
extern "C" {
#endif
--- /dev/null
+#
+# This file is part of the GROMACS molecular simulation package.
+#
+# Copyright (c) 2014, 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.
+#
+# GROMACS is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public License
+# as published by the Free Software Foundation; either version 2.1
+# of the License, or (at your option) any later version.
+#
+# GROMACS is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with GROMACS; if not, see
+# http://www.gnu.org/licenses, or write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# If you want to redistribute modifications to GROMACS, 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 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 TOPOLOGY_SOURCES *.cpp *.c)
+set(LIBGROMACS_SOURCES ${LIBGROMACS_SOURCES} ${TOPOLOGY_SOURCES} PARENT_SCOPE)
+
+set(TOPOLOGY_PUBLIC_HEADERS
+ atomprop.h
+ atoms.h
+ block.h
+ idef.h
+ index.h
+ mtop_util.h
+ symtab.h
+ topology.h)
+
+gmx_install_headers(topology ${TOPOLOGY_PUBLIC_HEADERS})
+
+if (BUILD_TESTING)
+# add_subdirectory(tests)
+endif()
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "gromacs/topology/atomprop.h"
+
+#include "config.h"
#include <ctype.h>
#include <string.h>
-#include "sysstuff.h"
-#include "gromacs/utility/smalloc.h"
-#include "gromacs/utility/cstringutil.h"
-#include "gmx_fatal.h"
-#include "atomprop.h"
-#include "macros.h"
-#include "index.h"
-#include "copyrite.h"
-
-#include "gromacs/fileio/futil.h"
#include "gromacs/fileio/strdb.h"
+#include "gromacs/legacyheaders/copyrite.h"
#include "gromacs/math/utilities.h"
+#include "gromacs/topology/residuetypes.h"
+#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/futil.h"
+#include "gromacs/utility/smalloc.h"
typedef struct {
gmx_bool bSet;
} aprop_t;
typedef struct gmx_atomprop {
- gmx_bool bWarned, bWarnVDW;
- aprop_t prop[epropNR];
- gmx_residuetype_t restype;
+ gmx_bool bWarned, bWarnVDW;
+ aprop_t prop[epropNR];
+ gmx_residuetype_t *restype;
} gmx_atomprop;
return i;
}
-static int get_prop_index(aprop_t *ap, gmx_residuetype_t restype,
+static int get_prop_index(aprop_t *ap, gmx_residuetype_t *restype,
char *resnm, char *atomnm,
gmx_bool *bExact)
{
return j;
}
-static void add_prop(aprop_t *ap, gmx_residuetype_t restype,
+static void add_prop(aprop_t *ap, gmx_residuetype_t *restype,
char *resnm, char *atomnm,
real p, int line)
{
ap->bAvail[i] = FALSE;
}
}
- ap->atomnm[ap->nprop] = strdup(atomnm);
- ap->resnm[ap->nprop] = strdup(resnm);
+ ap->atomnm[ap->nprop] = gmx_strdup(atomnm);
+ ap->resnm[ap->nprop] = gmx_strdup(resnm);
j = ap->nprop;
ap->nprop++;
}
while (get_a_line(fp, line, STRLEN))
{
line_no++;
- if (sscanf(line, "%s %s %lf", resnm, atomnm, &pp) == 3)
+ if (sscanf(line, "%31s %31s %20lf", resnm, atomnm, &pp) == 3)
{
pp *= factor;
add_prop(ap, aps->restype, resnm, atomnm, pp, line_no);
ap = &ap2->prop[eprop];
if (!ap->bSet)
{
- ap->db = strdup(fns[eprop]);
+ ap->db = gmx_strdup(fns[eprop]);
ap->def = def[eprop];
read_prop(aps, eprop, fac[eprop]);
gmx_atomprop_t gmx_atomprop_init(void)
{
gmx_atomprop *aps;
- int p;
snew(aps, 1);
real *value)
{
gmx_atomprop *ap = (gmx_atomprop*) aps;
- size_t i;
int j;
#define MAXQ 32
char atomname[MAXQ], resname[MAXQ];
}
if (isdigit(atomnm[0]))
{
+ int i;
/* put digit after atomname */
- for (i = 1; (i < min(MAXQ-1, strlen(atomnm))); i++)
+ for (i = 1; i < MAXQ-1 && atomnm[i] != '\0'; i++)
{
atomname[i-1] = atomnm[i];
}
return gmx_nint(ap->prop[epropElement].value[i]);
}
}
- return NOTSET;
+ return -1;
}
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2010, by the GROMACS development team, led by
+ * Copyright (c) 2010,2014, 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.
*/
+#ifndef GMX_TOPOLOGY_ATOMPROP_H
+#define GMX_TOPOLOGY_ATOMPROP_H
-#ifndef _atomprop_h
-#define _atomprop_h
+#include "../utility/basedefinitions.h"
+#include "../utility/real.h"
#ifdef __cplusplus
extern "C" {
#endif
-#include "index.h"
-
/* Abstract type for the atom property database */
typedef struct gmx_atomprop *gmx_atomprop_t;
}
#endif
-
#endif
--- /dev/null
+/*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+ * 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
+ * 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.
+ *
+ * GROMACS is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1
+ * of the License, or (at your option) any later version.
+ *
+ * GROMACS is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with GROMACS; if not, see
+ * http://www.gnu.org/licenses, or write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * If you want to redistribute modifications to GROMACS, 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 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.
+ */
+#include "gromacs/topology/atoms.h"
+
+#include <cstring>
+
+#include "gromacs/topology/symtab.h"
+#include "gromacs/utility/smalloc.h"
+
+void init_atom(t_atoms *at)
+{
+ at->nr = 0;
+ at->nres = 0;
+ at->atom = NULL;
+ at->resinfo = NULL;
+ at->atomname = NULL;
+ at->atomtype = NULL;
+ at->atomtypeB = NULL;
+ at->pdbinfo = NULL;
+}
+
+void init_atomtypes(t_atomtypes *at)
+{
+ at->nr = 0;
+ at->radius = NULL;
+ at->vol = NULL;
+ at->atomnumber = NULL;
+ at->gb_radius = NULL;
+ at->S_hct = NULL;
+}
+
+void done_atom(t_atoms *at)
+{
+ at->nr = 0;
+ at->nres = 0;
+ sfree(at->atom);
+ sfree(at->resinfo);
+ sfree(at->atomname);
+ sfree(at->atomtype);
+ sfree(at->atomtypeB);
+ if (at->pdbinfo)
+ {
+ sfree(at->pdbinfo);
+ }
+}
+
+void done_atomtypes(t_atomtypes *atype)
+{
+ atype->nr = 0;
+ sfree(atype->radius);
+ sfree(atype->vol);
+ sfree(atype->surftens);
+ sfree(atype->atomnumber);
+ sfree(atype->gb_radius);
+ sfree(atype->S_hct);
+}
+
+void add_t_atoms(t_atoms *atoms, int natom_extra, int nres_extra)
+{
+ int i;
+
+ if (natom_extra > 0)
+ {
+ srenew(atoms->atomname, atoms->nr+natom_extra);
+ srenew(atoms->atom, atoms->nr+natom_extra);
+ if (NULL != atoms->pdbinfo)
+ {
+ srenew(atoms->pdbinfo, atoms->nr+natom_extra);
+ }
+ if (NULL != atoms->atomtype)
+ {
+ srenew(atoms->atomtype, atoms->nr+natom_extra);
+ }
+ if (NULL != atoms->atomtypeB)
+ {
+ srenew(atoms->atomtypeB, atoms->nr+natom_extra);
+ }
+ for (i = atoms->nr; (i < atoms->nr+natom_extra); i++)
+ {
+ atoms->atomname[i] = NULL;
+ memset(&atoms->atom[i], 0, sizeof(atoms->atom[i]));
+ if (NULL != atoms->pdbinfo)
+ {
+ std::memset(&atoms->pdbinfo[i], 0, sizeof(atoms->pdbinfo[i]));
+ }
+ if (NULL != atoms->atomtype)
+ {
+ atoms->atomtype[i] = NULL;
+ }
+ if (NULL != atoms->atomtypeB)
+ {
+ atoms->atomtypeB[i] = NULL;
+ }
+ }
+ atoms->nr += natom_extra;
+ }
+ if (nres_extra > 0)
+ {
+ srenew(atoms->resinfo, atoms->nres+nres_extra);
+ for (i = atoms->nres; (i < atoms->nres+nres_extra); i++)
+ {
+ std::memset(&atoms->resinfo[i], 0, sizeof(atoms->resinfo[i]));
+ }
+ atoms->nres += nres_extra;
+ }
+}
+
+void init_t_atoms(t_atoms *atoms, int natoms, gmx_bool bPdbinfo)
+{
+ atoms->nr = natoms;
+ atoms->nres = 0;
+ snew(atoms->atomname, natoms);
+ atoms->atomtype = NULL;
+ atoms->atomtypeB = NULL;
+ snew(atoms->resinfo, natoms);
+ snew(atoms->atom, natoms);
+ if (bPdbinfo)
+ {
+ snew(atoms->pdbinfo, natoms);
+ }
+ else
+ {
+ atoms->pdbinfo = NULL;
+ }
+}
+
+t_atoms *copy_t_atoms(t_atoms *src)
+{
+ t_atoms *dst;
+ int i;
+
+ snew(dst, 1);
+ init_t_atoms(dst, src->nr, (NULL != src->pdbinfo));
+ dst->nr = src->nr;
+ if (NULL != src->atomname)
+ {
+ snew(dst->atomname, src->nr);
+ }
+ if (NULL != src->atomtype)
+ {
+ snew(dst->atomtype, src->nr);
+ }
+ if (NULL != src->atomtypeB)
+ {
+ snew(dst->atomtypeB, src->nr);
+ }
+ for (i = 0; (i < src->nr); i++)
+ {
+ dst->atom[i] = src->atom[i];
+ if (NULL != src->pdbinfo)
+ {
+ dst->pdbinfo[i] = src->pdbinfo[i];
+ }
+ if (NULL != src->atomname)
+ {
+ dst->atomname[i] = src->atomname[i];
+ }
+ if (NULL != src->atomtype)
+ {
+ dst->atomtype[i] = src->atomtype[i];
+ }
+ if (NULL != src->atomtypeB)
+ {
+ dst->atomtypeB[i] = src->atomtypeB[i];
+ }
+ }
+ dst->nres = src->nres;
+ for (i = 0; (i < src->nres); i++)
+ {
+ dst->resinfo[i] = src->resinfo[i];
+ }
+ return dst;
+}
+
+void t_atoms_set_resinfo(t_atoms *atoms, int atom_ind, t_symtab *symtab,
+ const char *resname, int resnr, unsigned char ic,
+ int chainnum, char chainid)
+{
+ t_resinfo *ri;
+
+ ri = &atoms->resinfo[atoms->atom[atom_ind].resind];
+ ri->name = put_symtab(symtab, resname);
+ ri->rtp = NULL;
+ ri->nr = resnr;
+ ri->ic = ic;
+ ri->chainnum = chainnum;
+ ri->chainid = chainid;
+}
+
+void free_t_atoms(t_atoms *atoms, gmx_bool bFreeNames)
+{
+ int i;
+
+ if (bFreeNames && atoms->atomname != NULL)
+ {
+ for (i = 0; i < atoms->nr; i++)
+ {
+ if (atoms->atomname[i] != NULL)
+ {
+ sfree(*atoms->atomname[i]);
+ *atoms->atomname[i] = NULL;
+ }
+ }
+ }
+ if (bFreeNames && atoms->resinfo != NULL)
+ {
+ for (i = 0; i < atoms->nres; i++)
+ {
+ if (atoms->resinfo[i].name != NULL)
+ {
+ sfree(*atoms->resinfo[i].name);
+ *atoms->resinfo[i].name = NULL;
+ }
+ }
+ }
+ if (bFreeNames && atoms->atomtype != NULL)
+ {
+ for (i = 0; i < atoms->nr; i++)
+ {
+ if (atoms->atomtype[i] != NULL)
+ {
+ sfree(*atoms->atomtype[i]);
+ *atoms->atomtype[i] = NULL;
+ }
+ }
+ }
+ if (bFreeNames && atoms->atomtypeB != NULL)
+ {
+ for (i = 0; i < atoms->nr; i++)
+ {
+ if (atoms->atomtypeB[i] != NULL)
+ {
+ sfree(*atoms->atomtypeB[i]);
+ *atoms->atomtypeB[i] = NULL;
+ }
+ }
+ }
+ sfree(atoms->atomname);
+ sfree(atoms->atomtype);
+ sfree(atoms->atomtypeB);
+ sfree(atoms->resinfo);
+ sfree(atoms->atom);
+ sfree(atoms->pdbinfo);
+ atoms->nr = 0;
+ atoms->nres = 0;
+ atoms->atomname = NULL;
+ atoms->atomtype = NULL;
+ atoms->atomtypeB = NULL;
+ atoms->resinfo = NULL;
+ atoms->atom = NULL;
+ atoms->pdbinfo = NULL;
+}
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2012, by the GROMACS development team, led by
+ * Copyright (c) 2012,2014, 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.
*/
-#ifndef _atoms_h
-#define _atoms_h
+#ifndef GMX_TOPOLOGY_ATOMS_H
+#define GMX_TOPOLOGY_ATOMS_H
-
-#include "simple.h"
+#include "../utility/basedefinitions.h"
+#include "../utility/real.h"
#ifdef __cplusplus
extern "C" {
#endif
+struct t_symtab;
+
enum {
eptAtom, eptNucleus, eptShell, eptBond, eptVSite, eptNR
};
/* The particle type */
-typedef struct {
+typedef struct t_atom
+{
real m, q; /* Mass and charge */
real mB, qB; /* Mass and charge for Free Energy calc */
unsigned short type; /* Atom type */
char elem[4]; /* Element name */
} t_atom;
-typedef struct {
+typedef struct t_resinfo
+{
char **name; /* Pointer to the residue name */
int nr; /* Residue number */
unsigned char ic; /* Code for insertion of residues */
char **rtp; /* rtp building block name (optional) */
} t_resinfo;
-typedef struct {
+typedef struct t_pdbinfo
+{
int type; /* PDB record name */
int atomnr; /* PDB atom number */
char altloc; /* Alternate location indicator */
int uij[6]; /* Anisotropic B-factor */
} t_pdbinfo;
-typedef struct {
+typedef struct t_grps
+{
int nr; /* Number of different groups */
int *nm_ind; /* Index in the group names */
} t_grps;
-typedef struct {
+typedef struct t_atoms
+{
int nr; /* Nr of atoms */
t_atom *atom; /* Array of atoms (dim: nr) */
/* The following entries will not */
t_pdbinfo *pdbinfo; /* PDB Information, such as aniso. Bfac */
} t_atoms;
-typedef struct {
+typedef struct t_atomtypes
+{
int nr; /* number of atomtypes */
real *radius; /* GBSA radius for each atomtype */
real *vol; /* GBSA efective volume for each atomtype */
int *atomnumber; /* Atomic number, used for QM/MM */
} t_atomtypes;
-
#define PERTURBED(a) (((a).mB != (a).m) || ((a).qB != (a).q) || ((a).typeB != (a).type))
+void init_atom(t_atoms *at);
+void init_atomtypes(t_atomtypes *at);
+void done_atom(t_atoms *at);
+void done_atomtypes(t_atomtypes *at);
+
+void init_t_atoms(t_atoms *atoms, int natoms, gmx_bool bPdbinfo);
+/* allocate memory for the arrays, set nr to natoms and nres to 0
+ * set pdbinfo to NULL or allocate memory for it */
+
+t_atoms *copy_t_atoms(t_atoms *src);
+/* copy an atoms struct from src to a new one */
+
+void add_t_atoms(t_atoms *atoms, int natom_extra, int nres_extra);
+/* allocate extra space for more atoms and or residues */
+
+void t_atoms_set_resinfo(t_atoms *atoms, int atom_ind, struct t_symtab *symtab,
+ const char *resname, int resnr, unsigned char ic,
+ int chainnum, char chainid);
+/* Set the residue name, number, insertion code and chain identifier
+ * of atom index atom_ind.
+ */
+
+void free_t_atoms(t_atoms *atoms, gmx_bool bFreeNames);
+/* Free all the arrays and set the nr and nres to 0.
+ * bFreeNames tells if to free the atom and residue name strings,
+ * don't free them if they still need to be used in e.g. the topology struct.
+ */
+
#ifdef __cplusplus
}
#endif
--- /dev/null
+/*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+ * 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
+ * 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.
+ *
+ * GROMACS is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1
+ * of the License, or (at your option) any later version.
+ *
+ * GROMACS is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with GROMACS; if not, see
+ * http://www.gnu.org/licenses, or write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * If you want to redistribute modifications to GROMACS, 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 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.
+ */
+#include <algorithm>
+#include "gromacs/topology/block.h"
+
+#include "gromacs/utility/smalloc.h"
+
+void init_block(t_block *block)
+{
+ block->nr = 0;
+ block->nalloc_index = 1;
+ snew(block->index, block->nalloc_index);
+ block->index[0] = 0;
+}
+
+void init_blocka(t_blocka *block)
+{
+ block->nr = 0;
+ block->nra = 0;
+ block->nalloc_index = 1;
+ snew(block->index, block->nalloc_index);
+ block->index[0] = 0;
+ block->nalloc_a = 0;
+ block->a = NULL;
+}
+
+t_blocka *new_blocka(void)
+{
+ t_blocka *block;
+
+ snew(block, 1);
+ snew(block->index, 1);
+
+ return block;
+}
+
+void done_block(t_block *block)
+{
+ block->nr = 0;
+ sfree(block->index);
+ block->nalloc_index = 0;
+}
+
+void done_blocka(t_blocka *block)
+{
+ block->nr = 0;
+ block->nra = 0;
+ sfree(block->index);
+ sfree(block->a);
+ block->index = NULL;
+ block->a = NULL;
+ block->nalloc_index = 0;
+ block->nalloc_a = 0;
+}
+
+void stupid_fill_block(t_block *grp, int natom, gmx_bool bOneIndexGroup)
+{
+ if (bOneIndexGroup)
+ {
+ grp->nalloc_index = 2;
+ snew(grp->index, grp->nalloc_index);
+ grp->index[0] = 0;
+ grp->index[1] = natom;
+ grp->nr = 1;
+ }
+ else
+ {
+ grp->nalloc_index = natom+1;
+ snew(grp->index, grp->nalloc_index);
+ snew(grp->index, natom+1);
+ for (int i = 0; i <= natom; ++i)
+ {
+ grp->index[i] = i;
+ }
+ grp->nr = natom;
+ }
+}
+
+void stupid_fill_blocka(t_blocka *grp, int natom)
+{
+ grp->nalloc_a = natom;
+ snew(grp->a, grp->nalloc_a);
+ for (int i = 0; i < natom; ++i)
+ {
+ grp->a[i] = i;
+ }
+ grp->nra = natom;
+
+ grp->nalloc_index = natom + 1;
+ snew(grp->index, grp->nalloc_index);
+ for (int i = 0; i <= natom; ++i)
+ {
+ grp->index[i] = i;
+ }
+ grp->nr = natom;
+}
+
+void copy_blocka(const t_blocka *src, t_blocka *dest)
+{
+ dest->nr = src->nr;
+ /* Workaround for inconsistent handling of nalloc_index in
+ * other parts of the code. Often nalloc_index and nalloc_a
+ * are not set.
+ */
+ dest->nalloc_index = std::max(src->nalloc_index, dest->nr + 1);
+ snew(dest->index, dest->nalloc_index);
+ for (int i = 0; i < dest->nr+1; ++i)
+ {
+ dest->index[i] = src->index[i];
+ }
+ dest->nra = src->nra;
+ /* See above. */
+ dest->nalloc_a = std::max(src->nalloc_a, dest->nra);
+ snew(dest->a, dest->nalloc_a);
+ for (int i = 0; i < dest->nra; ++i)
+ {
+ dest->a[i] = src->a[i];
+ }
+}
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2010, by the GROMACS development team, led by
+ * Copyright (c) 2010,2014, 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.
*/
-#ifndef _block_h
-#define _block_h
+#ifndef GMX_TOPOLOGY_BLOCK_H
+#define GMX_TOPOLOGY_BLOCK_H
-
-#include "idef.h"
+#include "../legacyheaders/types/simple.h"
#ifdef __cplusplus
extern "C" {
This makes the mapping from atoms to molecules O(Nmolecules) instead
of O(Natoms) in size. */
-typedef struct {
- int nr; /* The number of blocks */
+typedef struct t_block
+{
+ int nr; /* The number of blocks */
atom_id *index; /* Array of indices (dim: nr+1) */
- int nalloc_index; /* The allocation size for index */
+ int nalloc_index; /* The allocation size for index */
} t_block;
-typedef struct {
- int nr; /* The number of blocks */
- atom_id *index; /* Array of indices in a (dim: nr+1) */
- int nra; /* The number of atoms */
+typedef struct t_blocka
+{
+ int nr; /* The number of blocks */
+ atom_id *index; /* Array of indices in a (dim: nr+1) */
+ int nra; /* The number of atoms */
atom_id *a; /* Array of atom numbers in each group */
- /* (dim: nra) */
- /* Block i (0<=i<nr) runs from */
+ /* (dim: nra) */
+ /* Block i (0<=i<nr) runs from */
/* index[i] to index[i+1]-1. There will */
- /* allways be an extra entry in index */
- /* to terminate the table */
+ /* allways be an extra entry in index */
+ /* to terminate the table */
int nalloc_index; /* The allocation size for index */
int nalloc_a; /* The allocation size for a */
} t_blocka;
+void init_block(t_block *block);
+void init_blocka(t_blocka *block);
+t_blocka *new_blocka(void);
+/* allocate new block */
+
+void done_block(t_block *block);
+void done_blocka(t_blocka *block);
+
+void copy_blocka(const t_blocka *src, t_blocka *dest);
+
+void stupid_fill_block(t_block *grp, int natom, gmx_bool bOneIndexGroup);
+/* Fill a block structure with numbers identical to the index
+ * (0, 1, 2, .. natom-1)
+ * If bOneIndexGroup, then all atoms are lumped in one index group,
+ * otherwise there is one atom per index entry
+ */
+
+void stupid_fill_blocka(t_blocka *grp, int natom);
+/* Fill a block structure with numbers identical to the index
+ * (0, 1, 2, .. natom-1)
+ * There is one atom per index entry
+ */
#ifdef __cplusplus
}
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
+#ifndef GMX_TOPOLOGY_IDEF_H
+#define GMX_TOPOLOGY_IDEF_H
-
-#ifndef _idef_h
-#define _idef_h
-
-#include "simple.h"
+#include "../legacyheaders/types/simple.h"
#ifdef __cplusplus
extern "C" {
F_DVDL_BONDED,
F_DVDL_RESTRAINT,
F_DVDL_TEMPERATURE, /* not calculated for now, but should just be the energy (NVT) or enthalpy (NPT), or 0 (NVE) */
- F_NRE /* This number is for the total number of energies */
+ F_NRE /* This number is for the total number of energies */
};
#define IS_RESTRAINT_TYPE(ifunc) (((ifunc == F_POSRES) || (ifunc == F_FBPOSRES) || (ifunc == F_DISRES) || (ifunc == F_RESTRBONDS) || (ifunc == F_DISRESVIOL) || (ifunc == F_ORIRES) || (ifunc == F_ORIRESDEV) || (ifunc == F_ANGRES) || (ifunc == F_ANGRESZ) || (ifunc == F_DIHRES)))
*/
#define IS_LISTED_LJ_C(ftype) ((ftype) >= F_LJ14 && (ftype) <= F_LJC_PAIRS_NB)
-typedef union
+typedef union t_iparams
{
/* Some parameters have A and B values for free energy calculations.
* The B values are not used for regular simulations of course.
* the remaining ones from nr_nonperturbed..(nr-1) are perturbed bonded
* interactions.
*/
-typedef struct
+typedef struct t_ilist
{
int nr;
int nr_nonperturbed;
* The struct t_ilist defines a list of atoms with their interactions.
* General field description:
* int nr
- * the size (nr elements) of the interactions array (iatoms[]).
+ * the size (nr elements) of the interactions array (iatoms[]).
* t_iatom *iatoms
* specifies which atoms are involved in an interaction of a certain
* type. The layout of this array is as follows:
*
- * +-----+---+---+---+-----+---+---+-----+---+---+---+-----+---+---+...
- * |type1|at1|at2|at3|type2|at1|at2|type1|at1|at2|at3|type3|at1|at2|
- * +-----+---+---+---+-----+---+---+-----+---+---+---+-----+---+---+...
+ * +-----+---+---+---+-----+---+---+-----+---+---+---+-----+---+---+...
+ * |type1|at1|at2|at3|type2|at1|at2|type1|at1|at2|at3|type3|at1|at2|
+ * +-----+---+---+---+-----+---+---+-----+---+---+---+-----+---+---+...
*
* So for interaction type type1 3 atoms are needed, and for type2 and
* type3 only 2. The type identifier is used to select the function to
- * calculate the interaction and its actual parameters. This type
- * identifier is an index in a params[] and functype[] array.
+ * calculate the interaction and its actual parameters. This type
+ * identifier is an index in a params[] and functype[] array.
*/
typedef struct
{
real *cmap; /* Has length 4*grid_spacing*grid_spacing, */
/* there are 4 entries for each cmap type (V,dVdx,dVdy,d2dVdxdy) */
-} cmapdata_t;
+} gmx_cmapdata_t;
-typedef struct
+typedef struct gmx_cmap_t
{
- int ngrid; /* Number of allocated cmap (cmapdata_t ) grids */
- int grid_spacing; /* Grid spacing */
- cmapdata_t *cmapdata; /* Pointer to grid with actual, pre-interpolated data */
+ int ngrid; /* Number of allocated cmap (cmapdata_t ) grids */
+ int grid_spacing; /* Grid spacing */
+ gmx_cmapdata_t *cmapdata; /* Pointer to grid with actual, pre-interpolated data */
} gmx_cmap_t;
-typedef struct
+typedef struct gmx_ffparams_t
{
int ntypes;
int atnr;
ilsortUNKNOWN, ilsortNO_FE, ilsortFE_UNSORTED, ilsortFE_SORTED
};
-typedef struct
+typedef struct t_idef
{
int ntypes;
int atnr;
* version of the program can use it as easy as the single node version.
* General field description:
* int ntypes
- * defines the number of elements in functype[] and param[].
+ * defines the number of elements in functype[] and param[].
* int nodeid
* the node id (if parallel machines)
* int atnr
* the number of atomtypes
* t_functype *functype
- * array of length ntypes, defines for every force type what type of
+ * array of length ntypes, defines for every force type what type of
* function to use. Every "bond" with the same function but different
- * force parameters is a different force type. The type identifier in the
- * forceatoms[] array is an index in this array.
+ * force parameters is a different force type. The type identifier in the
+ * forceatoms[] array is an index in this array.
* t_iparams *iparams
- * array of length ntypes, defines the parameters for every interaction
+ * array of length ntypes, defines the parameters for every interaction
* type. The type identifier in the actual interaction list
* (ilist[ftype].iatoms[]) is an index in this array.
* gmx_cmap_t cmap_grid
* the grid for the dihedral pair correction maps.
* t_iparams *iparams_posres, *iparams_fbposres
- * defines the parameters for position restraints only.
+ * defines the parameters for position restraints only.
* Position restraints are the only interactions that have different
* parameters (reference positions) for different molecules
* of the same type. ilist[F_POSRES].iatoms[] is an index in this array.
* should be at least F_NRE*(nthreads+1).
*/
-typedef struct {
- int n; /* n+1 is the number of points */
- real scale; /* distance between two points */
- real *data; /* the actual table data, per point there are 4 numbers */
-} bondedtable_t;
-
#ifdef __cplusplus
}
#endif
-
#endif
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "gromacs/topology/index.h"
+#include "config.h"
+
+#include <assert.h>
#include <ctype.h>
+#include <stdlib.h>
#include <string.h>
-#include <assert.h>
-#include "sysstuff.h"
-#include "macros.h"
-#include "names.h"
-#include "gromacs/utility/cstringutil.h"
-#include "main.h"
-#include "typedefs.h"
-#include "gromacs/utility/smalloc.h"
-#include "invblock.h"
-#include "macros.h"
-#include "index.h"
-#include "txtdump.h"
-#include "gromacs/fileio/futil.h"
-#include "gromacs/fileio/gmxfio.h"
-#include "gromacs/fileio/strdb.h"
-#include "gmx_fatal.h"
-
-const char gmx_residuetype_undefined[] = "Other";
-
-struct gmx_residuetype
-{
- int n;
- char ** resname;
- char ** restype;
+#include <algorithm>
-};
+#include "gromacs/legacyheaders/macros.h"
+#include "gromacs/legacyheaders/txtdump.h"
+#include "gromacs/fileio/gmxfio.h"
+#include "gromacs/fileio/strdb.h"
+#include "gromacs/topology/atoms.h"
+#include "gromacs/topology/block.h"
+#include "gromacs/topology/invblock.h"
+#include "gromacs/topology/residuetypes.h"
+#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
static gmx_bool gmx_ask_yesno(gmx_bool bASK)
{
}
}
-t_blocka *new_blocka(void)
-{
- t_blocka *block;
-
- snew(block, 1);
- snew(block->index, 1);
-
- return block;
-}
-
void write_index(const char *outf, t_blocka *b, char **gnames, gmx_bool bDuplicate, int natoms)
{
FILE *out;
srenew(b->index, b->nr+2);
srenew(*gnames, b->nr+1);
- (*gnames)[b->nr] = strdup(name);
+ (*gnames)[b->nr] = gmx_strdup(name);
srenew(b->a, b->nra+nra);
for (i = 0; (i < nra); i++)
p_status(const char **restype, int nres, const char **typenames, int ntypes)
{
int i, j;
- int found;
-
int * counter;
snew(counter, ntypes);
}
for (i = 0; i < nres; i++)
{
- found = 0;
for (j = 0; j < ntypes; j++)
{
if (!gmx_strcasecmp(restype[i], typenames[j]))
}
-atom_id *
+static atom_id *
mk_aid(t_atoms *atoms, const char ** restype, const char * typestring, int *nra, gmx_bool bMatch)
/* Make an array of atom_ids for all atoms with residuetypes matching typestring, or the opposite if bMatch is false */
{
if (l == nrestp)
{
srenew(restp, nrestp+1);
- restp[nrestp].rname = strdup(rname);
+ restp[nrestp].rname = gmx_strdup(rname);
restp[nrestp].bNeg = FALSE;
- restp[nrestp].gname = strdup(rname);
+ restp[nrestp].gname = gmx_strdup(rname);
nrestp++;
}
/** The set of atom names that will be used to form this index group */
const char **defining_atomnames;
/** Size of the defining_atomnames array */
- const int num_defining_atomnames;
+ int num_defining_atomnames;
/** Name of this index group */
const char *group_name;
/** Whether the above atom names name the atoms in the group, or
int n, j;
atom_id *aid;
- int nra, nnpres, npres;
+ int nra, npres;
gmx_bool match;
char ndx_name[STRLEN], *atnm;
int i;
if (nra > 0)
{
add_grp(gb, gn, nra, aid, "SwapSC-CO");
- nra = 0;
}
}
}
}
-
-
-/* Return 0 if the name was found, otherwise -1.
- * p_restype is set to a pointer to the type name, or 'Other' if we did not find it.
- */
-int
-gmx_residuetype_get_type(gmx_residuetype_t rt, const char * resname, const char ** p_restype)
-{
- int i, rc;
-
- rc = -1;
- for (i = 0; i < rt->n && rc; i++)
- {
- rc = gmx_strcasecmp(rt->resname[i], resname);
- }
-
- *p_restype = (rc == 0) ? rt->restype[i-1] : gmx_residuetype_undefined;
-
- return rc;
-}
-
-int
-gmx_residuetype_add(gmx_residuetype_t rt, const char *newresname, const char *newrestype)
-{
- int i;
- int found;
- const char * p_oldtype;
-
- found = !gmx_residuetype_get_type(rt, newresname, &p_oldtype);
-
- if (found && gmx_strcasecmp(p_oldtype, newrestype))
- {
- fprintf(stderr, "Warning: Residue '%s' already present with type '%s' in database, ignoring new type '%s'.",
- newresname, p_oldtype, newrestype);
- }
-
- if (found == 0)
- {
- srenew(rt->resname, rt->n+1);
- srenew(rt->restype, rt->n+1);
- rt->resname[rt->n] = strdup(newresname);
- rt->restype[rt->n] = strdup(newrestype);
- rt->n++;
- }
-
- return 0;
-}
-
-
-int
-gmx_residuetype_init(gmx_residuetype_t *prt)
-{
- FILE * db;
- char line[STRLEN];
- char resname[STRLEN], restype[STRLEN], dum[STRLEN];
- char * p;
- int i;
- struct gmx_residuetype *rt;
-
- snew(rt, 1);
- *prt = rt;
-
- rt->n = 0;
- rt->resname = NULL;
- rt->restype = NULL;
-
- db = libopen("residuetypes.dat");
-
- while (get_a_line(db, line, STRLEN))
- {
- strip_comment(line);
- trim(line);
- if (line[0] != '\0')
- {
- if (sscanf(line, "%s %s %s", resname, restype, dum) != 2)
- {
- gmx_fatal(FARGS, "Incorrect number of columns (2 expected) for line in residuetypes.dat");
- }
- gmx_residuetype_add(rt, resname, restype);
- }
- }
-
- fclose(db);
-
- return 0;
-}
-
-
-
-int
-gmx_residuetype_destroy(gmx_residuetype_t rt)
-{
- int i;
-
- for (i = 0; i < rt->n; i++)
- {
- sfree(rt->resname[i]);
- sfree(rt->restype[i]);
- }
- sfree(rt->resname);
- sfree(rt->restype);
- sfree(rt);
-
- return 0;
-}
-
-int
-gmx_residuetype_get_alltypes(gmx_residuetype_t rt,
- const char *** p_typenames,
- int * ntypes)
-{
- int i, j, n;
- int found;
- const char ** my_typename;
- char * p;
-
- n = 0;
-
- my_typename = NULL;
- for (i = 0; i < rt->n; i++)
- {
- p = rt->restype[i];
- found = 0;
- for (j = 0; j < n && !found; j++)
- {
- found = !gmx_strcasecmp(p, my_typename[j]);
- }
-
- if (!found)
- {
- srenew(my_typename, n+1);
- my_typename[n] = p;
- n++;
- }
- }
- *ntypes = n;
- *p_typenames = my_typename;
-
- return 0;
-}
-
-
-
-gmx_bool
-gmx_residuetype_is_protein(gmx_residuetype_t rt, const char *resnm)
-{
- gmx_bool rc;
- const char *p_type;
-
- if (gmx_residuetype_get_type(rt, resnm, &p_type) == 0 &&
- gmx_strcasecmp(p_type, "Protein") == 0)
- {
- rc = TRUE;
- }
- else
- {
- rc = FALSE;
- }
- return rc;
-}
-
-gmx_bool
-gmx_residuetype_is_dna(gmx_residuetype_t rt, const char *resnm)
-{
- gmx_bool rc;
- const char *p_type;
-
- if (gmx_residuetype_get_type(rt, resnm, &p_type) == 0 &&
- gmx_strcasecmp(p_type, "DNA") == 0)
- {
- rc = TRUE;
- }
- else
- {
- rc = FALSE;
- }
- return rc;
-}
-
-gmx_bool
-gmx_residuetype_is_rna(gmx_residuetype_t rt, const char *resnm)
-{
- gmx_bool rc;
- const char *p_type;
-
- if (gmx_residuetype_get_type(rt, resnm, &p_type) == 0 &&
- gmx_strcasecmp(p_type, "RNA") == 0)
- {
- rc = TRUE;
- }
- else
- {
- rc = FALSE;
- }
- return rc;
-}
-
-/* Return the size of the arrays */
-int
-gmx_residuetype_get_size(gmx_residuetype_t rt)
-{
- return rt->n;
-}
-
-/* Search for a residuetype with name resnm within the
- * gmx_residuetype database. Return the index if found,
- * otherwise -1.
- */
-int
-gmx_residuetype_get_index(gmx_residuetype_t rt, const char *resnm)
-{
- int i, rc;
-
- rc = -1;
- for (i = 0; i < rt->n && rc; i++)
- {
- rc = gmx_strcasecmp(rt->resname[i], resnm);
- }
-
- return (0 == rc) ? i-1 : -1;
-}
-
-/* Return the name of the residuetype with the given index, or
- * NULL if not found. */
-const char *
-gmx_residuetype_get_name(gmx_residuetype_t rt, int index)
-{
- if (index >= 0 && index < rt->n)
- {
- return rt->resname[index];
- }
- else
- {
- return NULL;
- }
-}
-
-
-
void analyse(t_atoms *atoms, t_blocka *gb, char ***gn, gmx_bool bASK, gmx_bool bVerb)
{
- gmx_residuetype_t rt = NULL;
+ gmx_residuetype_t*rt = NULL;
char *resnm;
atom_id *aid;
const char ** restype;
int nra;
int i, k;
- size_t j;
int ntypes;
- char * p;
const char ** p_typename;
int iwater, iion;
int nwater, nion;
found = 0;
for (k = 0; k < ntypes && !found; k++)
{
+ assert(p_typename != NULL);
found = !strcmp(restype[i], p_typename[k]);
}
if (!found)
{
srenew(p_typename, ntypes+1);
- p_typename[ntypes++] = strdup(restype[i]);
+ p_typename[ntypes++] = gmx_strdup(restype[i]);
}
}
{
srenew(gb->index, gb->nr+2);
srenew(*gn, gb->nr+1);
- (*gn)[gb->nr] = strdup("Water_and_ions");
+ (*gn)[gb->nr] = gmx_strdup("Water_and_ions");
srenew(gb->a, gb->nra+nwater+nion);
if (nwater > 0)
{
{
FILE *in;
t_blocka *b;
- int a, maxentries;
- int i, j, ng, nread;
+ int maxentries;
+ int i, j;
char line[STRLEN], *pt, str[STRLEN];
in = gmx_fio_fopen(gfile, "r");
snew(b, 1);
- get_a_line(in, line, STRLEN);
- if (line[0] == '[')
+ b->nr = 0;
+ b->index = NULL;
+ b->nra = 0;
+ b->a = NULL;
+ *grpname = NULL;
+ maxentries = 0;
+ while (get_a_line(in, line, STRLEN))
{
- /* new format */
- b->nr = 0;
- b->index = NULL;
- b->nra = 0;
- b->a = NULL;
- *grpname = NULL;
- maxentries = 0;
- do
+ if (get_header(line, str))
{
- if (get_header(line, str))
+ b->nr++;
+ srenew(b->index, b->nr+1);
+ srenew(*grpname, b->nr);
+ if (b->nr == 1)
{
- b->nr++;
- srenew(b->index, b->nr+1);
- srenew(*grpname, b->nr);
- if (b->nr == 1)
- {
- b->index[0] = 0;
- }
- b->index[b->nr] = b->index[b->nr-1];
- (*grpname)[b->nr-1] = strdup(str);
- }
- else
- {
- if (b->nr == 0)
- {
- gmx_fatal(FARGS, "The first header of your indexfile is invalid");
- }
- pt = line;
- while (sscanf(pt, "%s", str) == 1)
- {
- i = b->index[b->nr];
- if (i >= maxentries)
- {
- maxentries += 1024;
- srenew(b->a, maxentries);
- }
- b->a[i] = strtol(str, NULL, 10)-1;
- b->index[b->nr]++;
- (b->nra)++;
- pt = strstr(pt, str)+strlen(str);
- }
+ b->index[0] = 0;
}
+ b->index[b->nr] = b->index[b->nr-1];
+ (*grpname)[b->nr-1] = gmx_strdup(str);
}
- while (get_a_line(in, line, STRLEN));
- }
- else
- {
- /* old format */
- sscanf(line, "%d%d", &b->nr, &b->nra);
- snew(b->index, b->nr+1);
- snew(*grpname, b->nr);
- b->index[0] = 0;
- snew(b->a, b->nra);
- for (i = 0; (i < b->nr); i++)
+ else
{
- nread = fscanf(in, "%s%d", str, &ng);
- (*grpname)[i] = strdup(str);
- b->index[i+1] = b->index[i]+ng;
- if (b->index[i+1] > b->nra)
+ if (b->nr == 0)
{
- gmx_fatal(FARGS, "Something wrong in your indexfile at group %s", str);
+ gmx_fatal(FARGS, "The first header of your indexfile is invalid");
}
- for (j = 0; (j < ng); j++)
+ pt = line;
+ while (sscanf(pt, "%s", str) == 1)
{
- nread = fscanf(in, "%d", &a);
- b->a[b->index[i]+j] = a;
+ i = b->index[b->nr];
+ if (i >= maxentries)
+ {
+ maxentries += 1024;
+ srenew(b->a, maxentries);
+ }
+ assert(b->a != NULL); // for clang analyzer
+ b->a[i] = strtol(str, NULL, 10)-1;
+ b->index[b->nr]++;
+ (b->nra)++;
+ pt = strstr(pt, str)+strlen(str);
}
}
}
for (i = 0; (i < b->nr); i++)
{
+ assert(b->a != NULL); // for clang analyzer
for (j = b->index[i]; (j < b->index[i+1]); j++)
{
if (b->a[j] < 0)
fprintf(stderr, "There is one group in the index\n");
gnr1 = 0;
}
- gnames[i] = strdup(grpname[gnr1]);
+ gnames[i] = gmx_strdup(grpname[gnr1]);
isize[i] = grps->index[gnr1+1]-grps->index[gnr1];
snew(index[i], isize[i]);
for (j = 0; (j < isize[i]); j++)
c->maxframe = -1;
for (i = 0; (i < c->clust->nra); i++)
{
- c->maxframe = max(c->maxframe, c->clust->a[i]);
+ c->maxframe = std::max(c->maxframe, c->clust->a[i]);
}
fprintf(fplog ? fplog : stdout,
"There are %d clusters containing %d structures, highest framenr is %d\n",
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
+#ifndef GMX_TOPOLOGY_INDEX_H
+#define GMX_TOPOLOGY_INDEX_H
-#ifndef _index_h
-#define _index_h
+#include <stdio.h>
-#include "typedefs.h"
+#include "../legacyheaders/types/simple.h"
#ifdef __cplusplus
extern "C" {
#endif
+struct t_atoms;
+struct t_blocka;
+
void check_index(char *gname, int n, atom_id index[],
char *traj, int natoms);
/* Checks if any index is smaller than zero or larger than natoms,
* and traj (if traj=NULL, "the trajectory" is used).
*/
-t_blocka *init_index(const char *gfile, char ***grpname);
+struct t_blocka *init_index(const char *gfile, char ***grpname);
/* Lower level routine than the next */
void rd_index(const char *statfile, int ngrps, int isize[],
atom_id *index[], char *grpnames[], int grpnr[]);
/* the same but also reads the number of the selected group*/
-void get_index(t_atoms *atoms, const char *fnm, int ngrps,
+void get_index(struct t_atoms *atoms, const char *fnm, int ngrps,
int isize[], atom_id *index[], char *grpnames[]);
/* Does the same as rd_index, but if the fnm pointer is NULL it
* will not read from fnm, but it will make default index groups
*/
typedef struct {
- int maxframe;
- char **grpname;
- t_blocka *clust;
- atom_id *inv_clust;
+ int maxframe;
+ char **grpname;
+ struct t_blocka *clust;
+ atom_id *inv_clust;
} t_cluster_ndx;
t_cluster_ndx *cluster_index(FILE *fplog, const char *ndx);
-typedef struct {
- int n;
- char **name;
-} t_names;
-
-typedef struct gmx_residuetype *
- gmx_residuetype_t;
-
-int
-gmx_residuetype_init(gmx_residuetype_t *rt);
-
-int
-gmx_residuetype_destroy(gmx_residuetype_t rt);
-
-int
-gmx_residuetype_get_type(gmx_residuetype_t rt, const char * resname, const char ** p_restype);
-
-int
-gmx_residuetype_add(gmx_residuetype_t rt, const char *newresname, const char *newrestype);
-
-int
-gmx_residuetype_get_alltypes(gmx_residuetype_t rt,
- const char *** p_typenames,
- int * ntypes);
-
-gmx_bool
-gmx_residuetype_is_protein(gmx_residuetype_t rt, const char *resnm);
-
-gmx_bool
-gmx_residuetype_is_dna(gmx_residuetype_t rt, const char *resnm);
-
-gmx_bool
-gmx_residuetype_is_rna(gmx_residuetype_t rt, const char *resnm);
-int
-gmx_residuetype_get_size(gmx_residuetype_t rt);
-
-int
-gmx_residuetype_get_index(gmx_residuetype_t rt, const char *resnm);
-
-const char *
-gmx_residuetype_get_name(gmx_residuetype_t rt, int index);
-
-
-
-
-
-
-t_blocka *new_blocka(void);
-/* allocate new block */
-
-void write_index(const char *outf, t_blocka *b, char **gnames, gmx_bool bDuplicate, int natoms);
+void write_index(const char *outf, struct t_blocka *b, char **gnames, gmx_bool bDuplicate, int natoms);
/* Writes index blocks to outf (writes an indexfile) */
-void add_grp(t_blocka *b, char ***gnames, int nra, atom_id a[], const char *name);
+void add_grp(struct t_blocka *b, char ***gnames, int nra, atom_id a[], const char *name);
/* Ads group a with name name to block b and namelist gnames */
-void analyse(t_atoms *atoms, t_blocka *gb, char ***gn,
+void analyse(struct t_atoms *atoms, struct t_blocka *gb, char ***gn,
gmx_bool bASK, gmx_bool bVerb);
/* Makes index groups gb with names gn for atoms in atoms.
* bASK=FALSE gives default groups.
}
#endif
-#endif /* _index_h */
+#endif
* the research papers on the package. Check out http://www.gromacs.org.
*/
/* This file is completely threadsafe - keep it that way! */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "gromacs/topology/invblock.h"
-#include "typedefs.h"
+#include "gromacs/legacyheaders/types/simple.h"
+
+#include "gromacs/topology/block.h"
+#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/smalloc.h"
-#include "invblock.h"
-#include "gmx_fatal.h"
atom_id *make_invblock(const t_block *block, int nr)
{
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2010, by the GROMACS development team, led by
+ * Copyright (c) 2010,2014, 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.
*/
+#ifndef GMX_TOPOLOGY_INVBLOCK_H
+#define GMX_TOPOLOGY_INVBLOCK_H
-#ifndef _invblock_h
-#define _invblock_h
-
-#include "typedefs.h"
+#include "../legacyheaders/types/simple.h"
#ifdef __cplusplus
extern "C" {
#endif
-atom_id *make_invblock(const t_block *block, int nr);
+struct t_block;
+struct t_blocka;
+
+atom_id *make_invblock(const struct t_block *block, int nr);
/* Inverse the block structure. nr is the maximum entry in the inversed
* array, and therefore the dimension of the returned array
*/
-atom_id *make_invblocka(const t_blocka *block, int nr);
+atom_id *make_invblocka(const struct t_blocka *block, int nr);
/* Inverse the block structure. nr is the maximum entry in the inversed
* array, and therefore the dimension of the returned array
*/
}
#endif
-#endif /* _invblock_h */
+#endif
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
+#include "gromacs/topology/mtop_util.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
+#include <stdlib.h>
#include <string.h>
+
+#include "gromacs/legacyheaders/types/ifunc.h"
+#include "gromacs/legacyheaders/types/inputrec.h"
+
+#include "gromacs/topology/block.h"
+#include "gromacs/topology/symtab.h"
+#include "gromacs/topology/topology.h"
+#include "gromacs/topology/topsort.h"
+#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/smalloc.h"
-#include "typedefs.h"
-#include "mtop_util.h"
-#include "topsort.h"
-#include "symtab.h"
-#include "gmx_fatal.h"
static int gmx_mtop_maxresnr(const gmx_mtop_t *mtop, int maxres_renum)
{
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
*/
-#include "typedefs.h"
+#ifndef GMX_TOPOLOGY_MTOP_UTIL_H
+#define GMX_TOPOLOGY_MTOP_UTIL_H
+
+#include "../legacyheaders/types/inputrec.h"
+#include "../utility/basedefinitions.h"
#ifdef __cplusplus
extern "C" {
#endif
+struct gmx_localtop_t;
+struct gmx_moltype_t;
+struct gmx_mtop_t;
+struct t_atom;
+struct t_atoms;
+struct t_block;
+struct t_ilist;
+struct t_topology;
+
/* Should be called after generating or reading mtop,
* to set some compute intesive variables to avoid
* N^2 operations later on.
*/
void
-gmx_mtop_finalize(gmx_mtop_t *mtop);
+gmx_mtop_finalize(struct gmx_mtop_t *mtop);
/* Counts the number of atoms of each type. State should be 0 for
* state A and 1 for state B types. typecount should have at
* least mtop->ffparams.atnr elements.
*/
void
-gmx_mtop_count_atomtypes(const gmx_mtop_t *mtop, int state, int typecount[]);
+gmx_mtop_count_atomtypes(const struct gmx_mtop_t *mtop, int state, int typecount[]);
/* Returns the total number of charge groups in mtop */
int
-ncg_mtop(const gmx_mtop_t *mtop);
+ncg_mtop(const struct gmx_mtop_t *mtop);
/* Removes the charge groups, i.e. makes single atom charge groups, in mtop */
-void gmx_mtop_remove_chargegroups(gmx_mtop_t *mtop);
+void gmx_mtop_remove_chargegroups(struct gmx_mtop_t *mtop);
/* Abstract data type for looking up atoms by global atom number */
/* Initialize atom lookup by global atom number */
gmx_mtop_atomlookup_t
-gmx_mtop_atomlookup_init(const gmx_mtop_t *mtop);
+gmx_mtop_atomlookup_init(const struct gmx_mtop_t *mtop);
/* As gmx_mtop_atomlookup_init, but optimized for atoms involved in settle */
gmx_mtop_atomlookup_t
-gmx_mtop_atomlookup_settle_init(const gmx_mtop_t *mtop);
+gmx_mtop_atomlookup_settle_init(const struct gmx_mtop_t *mtop);
/* Destroy a gmx_mtop_atomlookup_t data structure */
void
void
gmx_mtop_atomnr_to_atom(const gmx_mtop_atomlookup_t alook,
int atnr_global,
- t_atom **atom);
+ struct t_atom **atom);
/* Returns a pointer to the molecule interaction array ilist_mol[F_NRE]
void
gmx_mtop_atomnr_to_ilist(const gmx_mtop_atomlookup_t alook,
int atnr_global,
- t_ilist **ilist_mol, int *atnr_offset);
+ struct t_ilist **ilist_mol, int *atnr_offset);
/* Returns the molecule block index
/* Returns atom name, global resnr and residue name of atom atnr_global */
void
-gmx_mtop_atominfo_global(const gmx_mtop_t *mtop, int atnr_global,
+gmx_mtop_atominfo_global(const struct gmx_mtop_t *mtop, int atnr_global,
char **atomname, int *resnr, char **resname);
* otherwise use gmx_mtop_atomloop_block.
*/
gmx_mtop_atomloop_all_t
-gmx_mtop_atomloop_all_init(const gmx_mtop_t *mtop);
+gmx_mtop_atomloop_all_init(const struct gmx_mtop_t *mtop);
/* Loop to the next atom.
* When not at the end:
*/
gmx_bool
gmx_mtop_atomloop_all_next(gmx_mtop_atomloop_all_t aloop,
- int *at_global, t_atom **atom);
+ int *at_global, struct t_atom **atom);
/* Return the atomname, the residue number and residue name
* of the current atom in the loop.
*/
void
gmx_mtop_atomloop_all_moltype(gmx_mtop_atomloop_all_t aloop,
- gmx_moltype_t **moltype, int *at_mol);
+ struct gmx_moltype_t **moltype, int *at_mol);
/* Abstract type for atom loop over atoms in all molecule blocks */
/* Initialize an atom loop over atoms in all molecule blocks the system.
*/
gmx_mtop_atomloop_block_t
-gmx_mtop_atomloop_block_init(const gmx_mtop_t *mtop);
+gmx_mtop_atomloop_block_init(const struct gmx_mtop_t *mtop);
/* Loop to the next atom.
* When not at the end:
*/
gmx_bool
gmx_mtop_atomloop_block_next(gmx_mtop_atomloop_block_t aloop,
- t_atom **atom, int *nmol);
+ struct t_atom **atom, int *nmol);
/* Abstract type for ilist loop over all ilists */
/* Initialize an ilist loop over all molecule types in the system. */
gmx_mtop_ilistloop_t
-gmx_mtop_ilistloop_init(const gmx_mtop_t *mtop);
+gmx_mtop_ilistloop_init(const struct gmx_mtop_t *mtop);
/* Loop to the next molecule,
*/
gmx_bool
gmx_mtop_ilistloop_next(gmx_mtop_ilistloop_t iloop,
- t_ilist **ilist_mol, int *nmol);
+ struct t_ilist **ilist_mol, int *nmol);
/* Abstract type for ilist loop over all ilists of all molecules */
* otherwise use gmx_mtop_ilistloop.
*/
gmx_mtop_ilistloop_all_t
-gmx_mtop_ilistloop_all_init(const gmx_mtop_t *mtop);
+gmx_mtop_ilistloop_all_init(const struct gmx_mtop_t *mtop);
/* Loop to the next molecule,
* When not at the end:
*/
gmx_bool
gmx_mtop_ilistloop_all_next(gmx_mtop_ilistloop_all_t iloop,
- t_ilist **ilist_mol, int *atnr_offset);
+ struct t_ilist **ilist_mol, int *atnr_offset);
/* Returns the total number of interactions in the system of type ftype */
int
-gmx_mtop_ftype_count(const gmx_mtop_t *mtop, int ftype);
+gmx_mtop_ftype_count(const struct gmx_mtop_t *mtop, int ftype);
/* Returns a charge group index for the whole system */
-t_block
-gmx_mtop_global_cgs(const gmx_mtop_t *mtop);
+struct t_block
+gmx_mtop_global_cgs(const struct gmx_mtop_t *mtop);
/* Returns a single t_atoms struct for the whole system */
-t_atoms
-gmx_mtop_global_atoms(const gmx_mtop_t *mtop);
+struct t_atoms
+gmx_mtop_global_atoms(const struct gmx_mtop_t *mtop);
/* Make all charge groups the size of one atom.
* that consist of a single charge group.
*/
void
-gmx_mtop_make_atomic_charge_groups(gmx_mtop_t *mtop, gmx_bool bKeepSingleMolCG);
+gmx_mtop_make_atomic_charge_groups(struct gmx_mtop_t *mtop, gmx_bool bKeepSingleMolCG);
/* Generate a 'local' topology for the whole system.
* When ir!=NULL the free energy interactions will be sorted to the end.
*/
-gmx_localtop_t *
-gmx_mtop_generate_local_top(const gmx_mtop_t *mtop, const t_inputrec *ir);
+struct gmx_localtop_t *
+gmx_mtop_generate_local_top(const struct gmx_mtop_t *mtop, const t_inputrec *ir);
/* Converts a gmx_mtop_t struct to t_topology.
* All memory relating only to mtop will be freed.
*/
-t_topology
-gmx_mtop_t_to_t_topology(gmx_mtop_t *mtop);
+struct t_topology
+gmx_mtop_t_to_t_topology(struct gmx_mtop_t *mtop);
#ifdef __cplusplus
}
#endif
+
+#endif
--- /dev/null
+/*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+ * Copyright (c) 2010,2013,2014, 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.
+ *
+ * GROMACS is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1
+ * of the License, or (at your option) any later version.
+ *
+ * GROMACS is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with GROMACS; if not, see
+ * http://www.gnu.org/licenses, or write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * If you want to redistribute modifications to GROMACS, 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 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.
+ */
+#include "gromacs/topology/residuetypes.h"
+
+#include <cassert>
+#include <cstdio>
+
+#include "gromacs/fileio/strdb.h"
+#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/futil.h"
+#include "gromacs/utility/smalloc.h"
+
+const char gmx_residuetype_undefined[] = "Other";
+
+struct gmx_residuetype_t
+{
+ int n;
+ char ** resname;
+ char ** restype;
+};
+
+int
+gmx_residuetype_init(gmx_residuetype_t **prt)
+{
+ FILE * db;
+ char line[STRLEN];
+ char resname[STRLEN], restype[STRLEN], dum[STRLEN];
+ gmx_residuetype_t *rt;
+
+ snew(rt, 1);
+ *prt = rt;
+
+ rt->n = 0;
+ rt->resname = NULL;
+ rt->restype = NULL;
+
+ db = libopen("residuetypes.dat");
+
+ while (get_a_line(db, line, STRLEN))
+ {
+ strip_comment(line);
+ trim(line);
+ if (line[0] != '\0')
+ {
+ if (sscanf(line, "%1000s %1000s %1000s", resname, restype, dum) != 2)
+ {
+ gmx_fatal(FARGS, "Incorrect number of columns (2 expected) for line in residuetypes.dat");
+ }
+ gmx_residuetype_add(rt, resname, restype);
+ }
+ }
+
+ fclose(db);
+
+ return 0;
+}
+
+int
+gmx_residuetype_destroy(gmx_residuetype_t *rt)
+{
+ int i;
+
+ for (i = 0; i < rt->n; i++)
+ {
+ sfree(rt->resname[i]);
+ sfree(rt->restype[i]);
+ }
+ sfree(rt->resname);
+ sfree(rt->restype);
+ sfree(rt);
+
+ return 0;
+}
+
+/* Return 0 if the name was found, otherwise -1.
+ * p_restype is set to a pointer to the type name, or 'Other' if we did not find it.
+ */
+int
+gmx_residuetype_get_type(gmx_residuetype_t *rt, const char * resname, const char ** p_restype)
+{
+ int i, rc;
+
+ rc = -1;
+ for (i = 0; i < rt->n && rc; i++)
+ {
+ rc = gmx_strcasecmp(rt->resname[i], resname);
+ }
+
+ *p_restype = (rc == 0) ? rt->restype[i-1] : gmx_residuetype_undefined;
+
+ return rc;
+}
+
+int
+gmx_residuetype_add(gmx_residuetype_t *rt, const char *newresname, const char *newrestype)
+{
+ int found;
+ const char * p_oldtype;
+
+ found = !gmx_residuetype_get_type(rt, newresname, &p_oldtype);
+
+ if (found && gmx_strcasecmp(p_oldtype, newrestype))
+ {
+ fprintf(stderr, "Warning: Residue '%s' already present with type '%s' in database, ignoring new type '%s'.",
+ newresname, p_oldtype, newrestype);
+ }
+
+ if (found == 0)
+ {
+ srenew(rt->resname, rt->n+1);
+ srenew(rt->restype, rt->n+1);
+ rt->resname[rt->n] = gmx_strdup(newresname);
+ rt->restype[rt->n] = gmx_strdup(newrestype);
+ rt->n++;
+ }
+
+ return 0;
+}
+
+int
+gmx_residuetype_get_alltypes(gmx_residuetype_t *rt,
+ const char *** p_typenames,
+ int * ntypes)
+{
+ int i, n;
+ const char ** my_typename;
+
+ n = 0;
+ my_typename = NULL;
+ for (i = 0; i < rt->n; i++)
+ {
+ const char *const p = rt->restype[i];
+ bool bFound = false;
+ for (int j = 0; j < n && !bFound; j++)
+ {
+ assert(my_typename != NULL);
+ bFound = !gmx_strcasecmp(p, my_typename[j]);
+ }
+ if (!bFound)
+ {
+ srenew(my_typename, n+1);
+ my_typename[n] = p;
+ n++;
+ }
+ }
+ *ntypes = n;
+ *p_typenames = my_typename;
+
+ return 0;
+}
+
+gmx_bool
+gmx_residuetype_is_protein(gmx_residuetype_t *rt, const char *resnm)
+{
+ gmx_bool rc;
+ const char *p_type;
+
+ if (gmx_residuetype_get_type(rt, resnm, &p_type) == 0 &&
+ gmx_strcasecmp(p_type, "Protein") == 0)
+ {
+ rc = TRUE;
+ }
+ else
+ {
+ rc = FALSE;
+ }
+ return rc;
+}
+
+gmx_bool
+gmx_residuetype_is_dna(gmx_residuetype_t *rt, const char *resnm)
+{
+ gmx_bool rc;
+ const char *p_type;
+
+ if (gmx_residuetype_get_type(rt, resnm, &p_type) == 0 &&
+ gmx_strcasecmp(p_type, "DNA") == 0)
+ {
+ rc = TRUE;
+ }
+ else
+ {
+ rc = FALSE;
+ }
+ return rc;
+}
+
+gmx_bool
+gmx_residuetype_is_rna(gmx_residuetype_t *rt, const char *resnm)
+{
+ gmx_bool rc;
+ const char *p_type;
+
+ if (gmx_residuetype_get_type(rt, resnm, &p_type) == 0 &&
+ gmx_strcasecmp(p_type, "RNA") == 0)
+ {
+ rc = TRUE;
+ }
+ else
+ {
+ rc = FALSE;
+ }
+ return rc;
+}
+
+/* Return the size of the arrays */
+int
+gmx_residuetype_get_size(gmx_residuetype_t *rt)
+{
+ return rt->n;
+}
+
+/* Search for a residuetype with name resnm within the
+ * gmx_residuetype database. Return the index if found,
+ * otherwise -1.
+ */
+int
+gmx_residuetype_get_index(gmx_residuetype_t *rt, const char *resnm)
+{
+ int i, rc;
+
+ rc = -1;
+ for (i = 0; i < rt->n && rc; i++)
+ {
+ rc = gmx_strcasecmp(rt->resname[i], resnm);
+ }
+
+ return (0 == rc) ? i-1 : -1;
+}
+
+/* Return the name of the residuetype with the given index, or
+ * NULL if not found. */
+const char *
+gmx_residuetype_get_name(gmx_residuetype_t *rt, int index)
+{
+ if (index >= 0 && index < rt->n)
+ {
+ return rt->resname[index];
+ }
+ else
+ {
+ return NULL;
+ }
+}
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2010, by the GROMACS development team, led by
+ * Copyright (c) 2010,2014, 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.
*/
-#ifndef _types_symtab_h
-#define _types_symtab_h
+#ifndef GMX_TOPOLOGY_RESIDUETYPES_H
+#define GMX_TOPOLOGY_RESIDUETYPES_H
+#include "gromacs/utility/basedefinitions.h"
#ifdef __cplusplus
-extern "C" {
+extern "C"
+{
#endif
-typedef struct symbuf {
- int bufsize;
- char **buf;
- struct symbuf *next;
-} t_symbuf;
+typedef struct gmx_residuetype_t gmx_residuetype_t;
-typedef struct
-{
- int nr;
- t_symbuf *symbuf;
-} t_symtab;
+int
+gmx_residuetype_init(gmx_residuetype_t **rt);
+
+int
+gmx_residuetype_destroy(gmx_residuetype_t *rt);
+
+int
+gmx_residuetype_get_type(gmx_residuetype_t *rt, const char *resname, const char **p_restype);
+
+int
+gmx_residuetype_add(gmx_residuetype_t *rt, const char *newresname, const char *newrestype);
+
+int
+gmx_residuetype_get_alltypes(gmx_residuetype_t *rt,
+ const char ***p_typenames,
+ int *ntypes);
+
+gmx_bool
+gmx_residuetype_is_protein(gmx_residuetype_t *rt, const char *resnm);
+
+gmx_bool
+gmx_residuetype_is_dna(gmx_residuetype_t *rt, const char *resnm);
+
+gmx_bool
+gmx_residuetype_is_rna(gmx_residuetype_t *rt, const char *resnm);
+
+int
+gmx_residuetype_get_size(gmx_residuetype_t *rt);
+
+int
+gmx_residuetype_get_index(gmx_residuetype_t *rt, const char *resnm);
+
+const char *
+gmx_residuetype_get_name(gmx_residuetype_t *rt, int index);
#ifdef __cplusplus
}
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "symtab.h"
+
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "sysstuff.h"
-#include "typedefs.h"
-#include "gmx_fatal.h"
+
+#include <algorithm>
+
+#include "gromacs/legacyheaders/txtdump.h"
+
+#include "gromacs/utility/basedefinitions.h"
+#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/smalloc.h"
-#include "txtdump.h"
-#include "symtab.h"
-#include "macros.h"
#define BUFSIZE 1024
#define TABLESIZE 5
int lookup_symtab(t_symtab *symtab, char **name)
{
- int base, index;
+ int base;
t_symbuf *symbuf;
base = 0;
- index = 0;
symbuf = symtab->symbuf;
while (symbuf != NULL)
{
- index = name-symbuf->buf;
+ const int index = name-symbuf->buf;
if ( ( index >= 0 ) && ( index < symbuf->bufsize ) )
{
return index+base;
if (symbuf->buf[i] == NULL)
{
symtab->nr++;
- symbuf->buf[i] = strdup(name);
+ symbuf->buf[i] = gmx_strdup(name);
return &(symbuf->buf[i]);
}
else if (strcmp(symbuf->buf[i], name) == 0)
symbuf = symbuf->next;
symtab->nr++;
- symbuf->buf[0] = strdup(name);
+ symbuf->buf[0] = gmx_strdup(name);
return &(symbuf->buf[0]);
}
symbuf = symtab->symbuf;
while (symbuf != NULL)
{
- symtab->nr -= min(symbuf->bufsize, symtab->nr);
+ symtab->nr -= std::min(symbuf->bufsize, symtab->nr);
freeptr = symbuf;
symbuf = symbuf->next;
sfree(freeptr);
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2010, by the GROMACS development team, led by
+ * Copyright (c) 2010,2014, 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.
*/
-
-#ifndef _symtab_h
-#define _symtab_h
+#ifndef GMX_TOPOLOGY_SYMTAB_H
+#define GMX_TOPOLOGY_SYMTAB_H
#include <stdio.h>
-#include "typedefs.h"
#ifdef __cplusplus
extern "C" {
#endif
+typedef struct t_symbuf
+{
+ int bufsize;
+ char **buf;
+ struct t_symbuf *next;
+} t_symbuf;
+
+typedef struct t_symtab
+{
+ int nr;
+ t_symbuf *symbuf;
+} t_symtab;
+
/*
* This module handles symbol table manipulation. All text strings
* needed by an application are allocated only once. All references
}
#endif
-#endif /* _symtab_h */
+#endif
--- /dev/null
+/*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+ * 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
+ * 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.
+ *
+ * GROMACS is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1
+ * of the License, or (at your option) any later version.
+ *
+ * GROMACS is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with GROMACS; if not, see
+ * http://www.gnu.org/licenses, or write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * If you want to redistribute modifications to GROMACS, 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 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.
+ */
+#include "gromacs/topology/topology.h"
+
+#include "gromacs/topology/symtab.h"
+#include "gromacs/utility/smalloc.h"
+
+static void init_groups(gmx_groups_t *groups)
+{
+ groups->ngrpname = 0;
+ groups->grpname = NULL;
+ for (int g = 0; g < egcNR; g++)
+ {
+ groups->grps[g].nm_ind = NULL;
+ groups->ngrpnr[g] = 0;
+ groups->grpnr[g] = NULL;
+ }
+
+}
+
+void init_mtop(gmx_mtop_t *mtop)
+{
+ mtop->name = NULL;
+ mtop->nmoltype = 0;
+ mtop->moltype = NULL;
+ mtop->nmolblock = 0;
+ mtop->molblock = NULL;
+ mtop->maxres_renum = 0;
+ mtop->maxresnr = -1;
+ init_groups(&mtop->groups);
+ init_block(&mtop->mols);
+ open_symtab(&mtop->symtab);
+}
+
+void init_top(t_topology *top)
+{
+ top->name = NULL;
+ init_atom(&(top->atoms));
+ init_atomtypes(&(top->atomtypes));
+ init_block(&top->cgs);
+ init_block(&top->mols);
+ init_blocka(&top->excls);
+ open_symtab(&top->symtab);
+}
+
+
+void done_moltype(gmx_moltype_t *molt)
+{
+ done_atom(&molt->atoms);
+ done_block(&molt->cgs);
+ done_blocka(&molt->excls);
+
+ for (int f = 0; f < F_NRE; f++)
+ {
+ sfree(molt->ilist[f].iatoms);
+ molt->ilist[f].nalloc = 0;
+ }
+}
+
+void done_molblock(gmx_molblock_t *molb)
+{
+ if (molb->nposres_xA > 0)
+ {
+ molb->nposres_xA = 0;
+ sfree(molb->posres_xA);
+ }
+ if (molb->nposres_xB > 0)
+ {
+ molb->nposres_xB = 0;
+ sfree(molb->posres_xB);
+ }
+}
+
+void done_mtop(gmx_mtop_t *mtop, gmx_bool bDoneSymtab)
+{
+ if (bDoneSymtab)
+ {
+ done_symtab(&mtop->symtab);
+ }
+
+ sfree(mtop->ffparams.functype);
+ sfree(mtop->ffparams.iparams);
+
+ for (int i = 0; i < mtop->nmoltype; i++)
+ {
+ done_moltype(&mtop->moltype[i]);
+ }
+ sfree(mtop->moltype);
+ for (int i = 0; i < mtop->nmolblock; i++)
+ {
+ done_molblock(&mtop->molblock[i]);
+ }
+ sfree(mtop->molblock);
+ done_block(&mtop->mols);
+}
+
+void done_top(t_topology *top)
+{
+ sfree(top->idef.functype);
+ sfree(top->idef.iparams);
+ for (int f = 0; f < F_NRE; ++f)
+ {
+ sfree(top->idef.il[f].iatoms);
+ top->idef.il[f].iatoms = NULL;
+ top->idef.il[f].nalloc = 0;
+ }
+
+ done_atom(&(top->atoms));
+
+ /* For GB */
+ done_atomtypes(&(top->atomtypes));
+
+ done_symtab(&(top->symtab));
+ done_block(&(top->cgs));
+ done_block(&(top->mols));
+ done_blocka(&(top->excls));
+}
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2011, by the GROMACS development team, led by
+ * Copyright (c) 2011,2014, 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.
*/
-#ifndef GMX_LEGACYHEADERS_TOPOLOGY_H
-#define GMX_LEGACYHEADERS_TOPOLOGY_H
+#ifndef GMX_TOPOLOGY_TOPOLOGY_H
+#define GMX_TOPOLOGY_TOPOLOGY_H
+#include "../math/vectypes.h"
#include "atoms.h"
-#include "idef.h"
#include "block.h"
-#include "simple.h"
+#include "idef.h"
#include "symtab.h"
#ifdef __cplusplus
egcNR
};
-typedef struct {
+typedef struct gmx_moltype_t
+{
char **name; /* Name of the molecule type */
t_atoms atoms; /* The atoms */
t_ilist ilist[F_NRE];
t_blocka excls; /* The exclusions */
} gmx_moltype_t;
-typedef struct {
+typedef struct gmx_molblock_t
+{
int type; /* The molcule type index in mtop.moltype */
int nmol; /* The number of molecules in this block */
int natoms_mol; /* The number of atoms in one molecule */
rvec *posres_xB; /* The posres coords for top B */
} gmx_molblock_t;
-typedef struct {
+typedef struct gmx_groups_t
+{
t_grps grps[egcNR]; /* Groups of things */
int ngrpname; /* Number of groupnames */
char ***grpname; /* Names of the groups */
/* The global, complete system topology struct, based on molecule types.
This structure should contain no data that is O(natoms) in memory. */
-typedef struct {
+typedef struct gmx_mtop_t
+{
char **name; /* Name of the topology */
gmx_ffparams_t ffparams;
int nmoltype;
} gmx_mtop_t;
/* The mdrun node-local topology struct, completely written out */
-typedef struct {
- t_idef idef; /* The interaction function definition */
+typedef struct gmx_localtop_t
+{
+ t_idef idef; /* The interaction function definition */
t_atomtypes atomtypes; /* Atomtype properties */
t_block cgs; /* The charge groups */
t_blocka excls; /* The exclusions */
} gmx_localtop_t;
/* The old topology struct, completely written out, used in analysis tools */
-typedef struct {
+typedef struct t_topology
+{
char **name; /* Name of the topology */
- t_idef idef; /* The interaction function definition */
+ t_idef idef; /* The interaction function definition */
t_atoms atoms; /* The atoms */
t_atomtypes atomtypes; /* Atomtype properties */
t_block cgs; /* The charge groups */
t_symtab symtab; /* The symbol table */
} t_topology;
+void init_mtop(gmx_mtop_t *mtop);
+void init_top(t_topology *top);
+void done_moltype(gmx_moltype_t *molt);
+void done_molblock(gmx_molblock_t *molb);
+void done_mtop(gmx_mtop_t *mtop, gmx_bool bDoneSymtab);
+void done_top(t_topology *top);
+
+t_atoms *mtop2atoms(gmx_mtop_t *mtop);
+/* generate a t_atoms struct for the system from gmx_mtop_t */
+
#ifdef __cplusplus
}
#endif
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
+#include "gromacs/topology/topsort.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
-#include "typedefs.h"
-#include "topsort.h"
+#include <stdio.h>
+
+#include "gromacs/legacyheaders/types/ifunc.h"
+
+#include "gromacs/topology/topology.h"
+#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/smalloc.h"
-#include "gmx_fatal.h"
static gmx_bool ip_pert(int ftype, const t_iparams *ip)
{
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2008,2009,2010,2013, by the GROMACS development team, led by
+ * Copyright (c) 2008,2009,2010,2013,2014, 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.
*/
-#ifndef _topsort_h
-#define _topsort_h
+#ifndef GMX_TOPOLOGY_TOPSORT_H
+#define GMX_TOPOLOGY_TOPSORT_H
-
-#include "typedefs.h"
+#include "gromacs/utility/basedefinitions.h"
+#include "gromacs/utility/real.h"
#ifdef __cplusplus
extern "C" {
#endif
+struct gmx_mtop_t;
+struct t_idef;
/* Returns if there are perturbed bonded interactions */
-gmx_bool gmx_mtop_bondeds_free_energy(const gmx_mtop_t *mtop);
+gmx_bool gmx_mtop_bondeds_free_energy(const struct gmx_mtop_t *mtop);
/* Sort all the bonded ilists in idef to have the perturbed ones at the end
* and set nr_nr_nonperturbed in ilist.
*/
-void gmx_sort_ilist_fe(t_idef *idef, const real *qA, const real *qB);
+void gmx_sort_ilist_fe(struct t_idef *idef, const real *qA, const real *qB);
#ifdef __cplusplus
}
#include "options.h"
#include "selection.h"
+#include "fileio/trx.h"
#include "selection/nbsearch.h"
+#include "topology/topology.h"
#include "trajectoryanalysis/analysismodule.h"
#include "trajectoryanalysis/analysissettings.h"
#include "trajectoryanalysis/cmdlinerunner.h"
}
-void TrajectoryAnalysisModule::initAfterFirstFrame(const t_trxframe & /*fr*/)
+void TrajectoryAnalysisModule::initAfterFirstFrame(
+ const TrajectoryAnalysisSettings & /*settings*/,
+ const t_trxframe & /*fr*/)
{
}
#include <string>
#include <vector>
-#include "../legacyheaders/typedefs.h"
+#include <boost/shared_ptr.hpp>
#include "../selection/selection.h" // For gmx::SelectionList
#include "../utility/common.h"
-#include "../utility/uniqueptr.h"
+
+struct t_pbc;
+struct t_trxframe;
namespace gmx
{
};
//! Smart pointer to manage a TrajectoryAnalysisModuleData object.
-typedef gmx_unique_ptr<TrajectoryAnalysisModuleData>::type
+typedef boost::shared_ptr<TrajectoryAnalysisModuleData>
TrajectoryAnalysisModuleDataPointer;
/*! \brief
*
* The default implementation does nothing.
*/
- virtual void initAfterFirstFrame(const t_trxframe &fr);
+ virtual void initAfterFirstFrame(const TrajectoryAnalysisSettings &settings,
+ const t_trxframe &fr);
/*! \brief
* Starts the analysis of frames.
};
//! Smart pointer to manage a TrajectoryAnalysisModule.
-typedef gmx_unique_ptr<TrajectoryAnalysisModule>::type
+typedef boost::shared_ptr<TrajectoryAnalysisModule>
TrajectoryAnalysisModulePointer;
} // namespace gmx
*/
#include "analysissettings.h"
-#include "gromacs/legacyheaders/vec.h"
-
#include "gromacs/fileio/trxio.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/topology/topology.h"
#include "gromacs/utility/exceptions.h"
#include "gromacs/utility/smalloc.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2010,2011,2012, by the GROMACS development team, led by
+ * Copyright (c) 2010,2011,2012,2014, 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.
#ifndef GMX_TRAJECTORYANALYSIS_ANALYSISSETTINGS_H
#define GMX_TRAJECTORYANALYSIS_ANALYSISSETTINGS_H
-#include "../legacyheaders/typedefs.h"
-
#include "../options/timeunitmanager.h"
+#include "../math/vectypes.h"
#include "../utility/common.h"
+struct t_topology;
+
namespace gmx
{
*/
#include "cmdlinerunner.h"
-#ifdef HAVE_CONFIG_H
#include "config.h"
-#endif
-
-#include "gromacs/legacyheaders/pbc.h"
-#include "gromacs/legacyheaders/rmpbc.h"
#include "gromacs/analysisdata/paralleloptions.h"
#include "gromacs/commandline/cmdlinehelpcontext.h"
#include "gromacs/commandline/cmdlinemodule.h"
#include "gromacs/commandline/cmdlinemodulemanager.h"
#include "gromacs/commandline/cmdlineparser.h"
+#include "gromacs/fileio/trx.h"
+#include "gromacs/options/filenameoptionmanager.h"
#include "gromacs/options/options.h"
+#include "gromacs/pbcutil/pbc.h"
#include "gromacs/selection/selectioncollection.h"
#include "gromacs/selection/selectionoptionmanager.h"
#include "gromacs/trajectoryanalysis/analysismodule.h"
SelectionCollection *selections,
int *argc, char *argv[])
{
- Options options(NULL, NULL);
- Options moduleOptions(module_->name(), module_->description());
- Options commonOptions("common", "Common analysis control");
- Options selectionOptions("selection", "Common selection control");
- module_->initOptions(&moduleOptions, settings);
- common->initOptions(&commonOptions);
- selections->initOptions(&selectionOptions);
+ FileNameOptionManager fileoptManager;
+ SelectionOptionManager seloptManager(selections);
+ Options options(NULL, NULL);
+ Options moduleOptions(module_->name(), module_->description());
+ Options commonOptions("common", "Common analysis control");
+ Options selectionOptions("selection", "Common selection control");
+ options.addManager(&fileoptManager);
+ options.addManager(&seloptManager);
options.addSubSection(&commonOptions);
options.addSubSection(&selectionOptions);
options.addSubSection(&moduleOptions);
- SelectionOptionManager seloptManager(selections);
- setManagerForSelectionOptions(&options, &seloptManager);
+ module_->initOptions(&moduleOptions, settings);
+ common->initOptions(&commonOptions);
+ selections->initOptions(&selectionOptions);
{
CommandLineParser parser(&options);
// Load first frame.
common.initFirstFrame();
- module->initAfterFirstFrame(common.frame());
+ module->initAfterFirstFrame(settings, common.frame());
t_pbc pbc;
t_pbc *ppbc = settings.hasPBC() ? &pbc : NULL;
TrajectoryAnalysisSettings settings;
TrajectoryAnalysisRunnerCommon common(&settings);
- Options options(NULL, NULL);
- Options moduleOptions(impl_->module_->name(), impl_->module_->description());
- Options commonOptions("common", "Common analysis control");
- Options selectionOptions("selection", "Common selection control");
-
- impl_->module_->initOptions(&moduleOptions, &settings);
- common.initOptions(&commonOptions);
- selections.initOptions(&selectionOptions);
+ SelectionOptionManager seloptManager(&selections);
+ Options options(NULL, NULL);
+ Options moduleOptions(impl_->module_->name(), impl_->module_->description());
+ Options commonOptions("common", "Common analysis control");
+ Options selectionOptions("selection", "Common selection control");
+ options.addManager(&seloptManager);
options.addSubSection(&commonOptions);
options.addSubSection(&selectionOptions);
options.addSubSection(&moduleOptions);
- SelectionOptionManager seloptManager(&selections);
- setManagerForSelectionOptions(&options, &seloptManager);
+ impl_->module_->initOptions(&moduleOptions, &settings);
+ common.initOptions(&commonOptions);
+ selections.initOptions(&selectionOptions);
CommandLineHelpWriter(options)
.setShowDescriptions(true)
#include <string>
#include <vector>
-#include "gromacs/legacyheaders/pbc.h"
-#include "gromacs/legacyheaders/vec.h"
-
#include "gromacs/analysisdata/analysisdata.h"
#include "gromacs/analysisdata/modules/average.h"
#include "gromacs/analysisdata/modules/histogram.h"
#include "gromacs/analysisdata/modules/plot.h"
+#include "gromacs/fileio/trx.h"
+#include "gromacs/math/vec.h"
#include "gromacs/options/basicoptions.h"
#include "gromacs/options/filenameoption.h"
#include "gromacs/options/options.h"
+#include "gromacs/pbcutil/pbc.h"
#include "gromacs/selection/selection.h"
#include "gromacs/selection/selectionoption.h"
#include "gromacs/trajectoryanalysis/analysissettings.h"
#include <string>
-#include "gromacs/legacyheaders/pbc.h"
-#include "gromacs/legacyheaders/vec.h"
-
#include "gromacs/analysisdata/analysisdata.h"
#include "gromacs/analysisdata/modules/average.h"
#include "gromacs/analysisdata/modules/histogram.h"
#include "gromacs/analysisdata/modules/plot.h"
+#include "gromacs/fileio/trx.h"
+#include "gromacs/math/vec.h"
#include "gromacs/options/basicoptions.h"
#include "gromacs/options/filenameoption.h"
#include "gromacs/options/options.h"
+#include "gromacs/pbcutil/pbc.h"
#include "gromacs/selection/selection.h"
#include "gromacs/selection/selectionoption.h"
#include "gromacs/trajectoryanalysis/analysissettings.h"
printf("%s:\n", sel->name());
printf(" Number of samples: %d\n",
summaryStatsModule_->sampleCount(index, 0));
- printf(" Average distance: %-6.3f nm\n",
+ printf(" Average distance: %-8.5f nm\n",
summaryStatsModule_->average(index, 0));
- printf(" Standard deviation: %-6.3f nm\n",
+ printf(" Standard deviation: %-8.5f nm\n",
summaryStatsModule_->standardDeviation(index, 0));
}
}
#include <string>
-#include "gromacs/legacyheaders/atomprop.h"
#include "gromacs/legacyheaders/copyrite.h"
-#include "gromacs/random/random.h"
-#include "gromacs/legacyheaders/pbc.h"
-#include "gromacs/legacyheaders/vec.h"
#include "gromacs/analysisdata/analysisdata.h"
#include "gromacs/analysisdata/modules/average.h"
#include "gromacs/analysisdata/modules/plot.h"
+#include "gromacs/fileio/trx.h"
+#include "gromacs/math/vec.h"
#include "gromacs/options/basicoptions.h"
#include "gromacs/options/filenameoption.h"
#include "gromacs/options/options.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/random/random.h"
#include "gromacs/selection/nbsearch.h"
#include "gromacs/selection/selection.h"
#include "gromacs/selection/selectionoption.h"
+#include "gromacs/topology/atomprop.h"
+#include "gromacs/topology/topology.h"
#include "gromacs/trajectoryanalysis/analysissettings.h"
#include "gromacs/utility/arrayref.h"
#include "gromacs/utility/exceptions.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <stdarg.h>
+
/* Modified DvdS */
-#include "pbc.h"
+#include "gromacs/pbcutil/pbc.h"
#include "macros.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "gromacs/utility/smalloc.h"
#include "nsc.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#include "typedefs.h"
+#ifndef GMX_TRAJECTORYANALYSIS_NSC_H
+#define GMX_TRAJECTORYANALYSIS_NSC_H
+
+#include "gromacs/legacyheaders/types/simple.h"
#define FLAG_DOTS 01
#define FLAG_VOLUME 02
#ifdef __cplusplus
}
#endif
+
+#endif
#include <string>
#include <vector>
-#include "gromacs/legacyheaders/atomprop.h"
#include "gromacs/legacyheaders/copyrite.h"
-#include "gromacs/legacyheaders/pbc.h"
-#include "gromacs/legacyheaders/physics.h"
-#include "gromacs/legacyheaders/symtab.h"
-#include "gromacs/legacyheaders/vec.h"
#include "gromacs/analysisdata/analysisdata.h"
#include "gromacs/analysisdata/modules/average.h"
#include "gromacs/analysisdata/modules/plot.h"
#include "gromacs/fileio/confio.h"
-#include "gromacs/fileio/futil.h"
#include "gromacs/fileio/pdbio.h"
+#include "gromacs/fileio/trx.h"
+#include "gromacs/math/units.h"
+#include "gromacs/math/vec.h"
#include "gromacs/options/basicoptions.h"
#include "gromacs/options/filenameoption.h"
#include "gromacs/options/options.h"
+#include "gromacs/pbcutil/pbc.h"
#include "gromacs/selection/selection.h"
#include "gromacs/selection/selectionoption.h"
+#include "gromacs/topology/atomprop.h"
+#include "gromacs/topology/symtab.h"
+#include "gromacs/topology/topology.h"
#include "gromacs/trajectoryanalysis/analysismodule.h"
#include "gromacs/trajectoryanalysis/analysissettings.h"
#include "gromacs/utility/exceptions.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/utility/scoped_ptr_sfree.h"
#include "gromacs/utility/smalloc.h"
#include "gromacs/utility/stringutil.h"
#include "gromacs/analysisdata/modules/lifetime.h"
#include "gromacs/analysisdata/modules/plot.h"
#include "gromacs/fileio/gmxfio.h"
+#include "gromacs/fileio/trx.h"
#include "gromacs/fileio/trxio.h"
#include "gromacs/options/basicoptions.h"
#include "gromacs/options/filenameoption.h"
#include "gromacs/options/options.h"
#include "gromacs/selection/selection.h"
#include "gromacs/selection/selectionoption.h"
+#include "gromacs/topology/topology.h"
#include "gromacs/trajectoryanalysis/analysissettings.h"
#include "gromacs/utility/arrayref.h"
#include "gromacs/utility/exceptions.h"
*/
#include "runnercommon.h"
-#ifdef HAVE_CONFIG_H
#include "config.h"
-#endif
#include <string.h>
#include "gromacs/legacyheaders/oenv.h"
-#include "gromacs/legacyheaders/rmpbc.h"
-#include "gromacs/legacyheaders/vec.h"
#include "gromacs/fileio/timecontrol.h"
#include "gromacs/fileio/tpxio.h"
+#include "gromacs/fileio/trx.h"
#include "gromacs/fileio/trxio.h"
+#include "gromacs/math/vec.h"
#include "gromacs/options/basicoptions.h"
#include "gromacs/options/filenameoption.h"
#include "gromacs/options/options.h"
+#include "gromacs/pbcutil/rmpbc.h"
#include "gromacs/selection/indexutil.h"
#include "gromacs/selection/selectioncollection.h"
#include "gromacs/selection/selectionfileoption.h"
+#include "gromacs/topology/topology.h"
#include "gromacs/trajectoryanalysis/analysissettings.h"
#include "gromacs/utility/exceptions.h"
#include "gromacs/utility/gmxassert.h"
}
time_unit_t time_unit
= static_cast<time_unit_t>(impl_->settings_.timeUnit() + 1);
- output_env_init(&impl_->oenv_, getProgramContext(), time_unit, FALSE, exvgNONE, 0, 0);
+ output_env_init(&impl_->oenv_, getProgramContext(), time_unit, FALSE, exvgNONE, 0);
int frflags = impl_->settings_.frflags();
frflags |= TRX_NEED_X;
"Trajectory (%d atoms) does not match topology (%d atoms)",
impl_->fr->natoms, top.topology()->atoms.nr)));
}
- // TODO: Check index groups if they have been initialized based on the topology.
- /*
- if (top)
- {
- for (int i = 0; i < impl_->sel->nr(); ++i)
- {
- gmx_ana_index_check(impl_->sel->sel(i)->indexGroup(),
- impl_->fr->natoms);
- }
- }
- */
}
else
{
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2010,2011,2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2010,2011,2012,2013,2014, 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.
#ifndef GMX_TRAJECTORYANALYSIS_RUNNERCOMMON_H
#define GMX_TRAJECTORYANALYSIS_RUNNERCOMMON_H
-#include "../legacyheaders/types/simple.h"
-#include "gromacs/fileio/trx.h"
+#include "gromacs/utility/common.h"
-#include "../utility/common.h"
+struct t_trxframe;
namespace gmx
{
* The header file.h declares a gmx::File class for basic I/O support.
*
* The header path.h declares helpers for manipulating paths and for managing
- * directories (this has been moved to src/gromacs/fileio/ to wait for
- * resolution of #950).
+ * directories.
*
* The fate of these headers depends on what is decided in Redmine issue #950.
*
* The header flags.h implements a gmx::FlagsTemplate template for better type
* safety when using bit flag fields.
*
- * The header uniqueptr.h declares gmx::gmx_unique_ptr, which is intended for
- * declaring smart pointer types with unique ownership.
- *
*
* <H3>Other Functionality</H3>
*
* The header qsort_threadsafe.h provides a guaranteed threadsafe
* implementation for qsort().
*
+ * The header uniqueptr.h declares gmx::gmx_unique_ptr, which is intended for
+ * declaring smart pointer types with unique ownership.
+ *
* \endif
*
* \author Teemu Murtola <teemu.murtola@gmail.com>
baseversion-gen.c
-gmx_header_config_gen.h
file(GLOB UTILITY_SOURCES *.c *.cpp)
set(LIBGROMACS_SOURCES ${LIBGROMACS_SOURCES} ${UTILITY_SOURCES} PARENT_SCOPE)
-set(GENERATED_HEADER_CONFIG ${CMAKE_CURRENT_BINARY_DIR}/gmx_header_config_gen.h)
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/gmx_header_config_gen.h.cmakein
- ${GENERATED_HEADER_CONFIG})
-
set(UTILITY_PUBLIC_HEADERS
arrayref.h
+ basedefinitions.h
cstringutil.h
common.h
errorcodes.h
exceptions.h
+ fatalerror.h
file.h
flags.h
+ futil.h
gmx_header_config.h
gmxassert.h
init.h
programcontext.h
+ real.h
smalloc.h
stringutil.h
- uniqueptr.h)
+ )
gmx_install_headers(utility ${UTILITY_PUBLIC_HEADERS})
-gmx_install_headers(utility ${GENERATED_HEADER_CONFIG})
if (BUILD_TESTING)
add_subdirectory(tests)
--- /dev/null
+/*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+ * 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
+ * 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.
+ *
+ * GROMACS is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1
+ * of the License, or (at your option) any later version.
+ *
+ * GROMACS is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with GROMACS; if not, see
+ * http://www.gnu.org/licenses, or write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * If you want to redistribute modifications to GROMACS, 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 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
+ * \brief
+ * Basic types and macros used throughout \Gromacs.
+ *
+ * \inpublicapi
+ * \ingroup module_utility
+ */
+#ifndef GMX_UTILITY_BASEDEFINITIONS_H
+#define GMX_UTILITY_BASEDEFINITIONS_H
+
+/* Information about integer data type sizes */
+#include <limits.h>
+#define __STDC_LIMIT_MACROS
+#include <stdint.h>
+#ifndef _MSC_VER
+#define __STDC_FORMAT_MACROS
+#include <inttypes.h>
+#endif
+
+/*! \brief
+ * Boolean type for use in \Gromacs C code.
+ *
+ * There is no standard size for 'bool' in C++, so when
+ * we previously defined it to int for C code the data types
+ * (and structs) would have different size depending on your compiler,
+ * both at \Gromacs build time and when you use the library.
+ * The only way around this is to NOT assume anything about the C++ type,
+ * so we cannot use the name 'bool' in our C code anymore.
+ */
+typedef int gmx_bool;
+
+#ifndef FALSE
+/** False value for ::gmx_bool. */
+# define FALSE 0
+#endif
+#ifndef TRUE
+/** True value for ::gmx_bool. */
+# define TRUE 1
+#endif
+/** Number of gmx_bool values. */
+#define BOOL_NR 2
+
+/*! \name Fixed-width integer types
+ *
+ * These types and macros provide the equivalent of 32- and 64-bit integer
+ * types from C99 headers `stdint.h` and `inttypes.h`. These headers are also
+ * there in C++11. The types and macros from here should be used instead of
+ * `int32_t` etc.
+ * MSVC doesn't support these before Visual Studio 2013.
+ */
+/*! \{ */
+#ifdef _MSC_VER
+typedef __int32 gmx_int32_t;
+#define GMX_PRId32 "I32d"
+#define GMX_SCNd32 "I32d"
+
+typedef __int64 gmx_int64_t;
+#define GMX_PRId64 "I64d"
+#define GMX_SCNd64 "I64d"
+
+typedef unsigned __int32 gmx_uint32_t;
+#define GMX_PRIu32 "I32u"
+#define GMX_SCNu32 "I32u"
+
+typedef unsigned __int64 gmx_uint64_t;
+#define GMX_PRIu64 "I64u"
+#define GMX_SCNu64 "I64u"
+#else
+typedef int32_t gmx_int32_t;
+#define GMX_PRId32 PRId32
+#define GMX_SCNd32 SCNd32
+
+typedef int64_t gmx_int64_t;
+#define GMX_PRId64 PRId64
+#define GMX_SCNd64 SCNd64
+
+typedef uint32_t gmx_uint32_t;
+#define GMX_PRIu32 PRIu32
+#define GMX_SCNu32 SCNu32
+
+typedef uint64_t gmx_uint64_t;
+#define GMX_PRIu64 PRIu64
+#define GMX_SCNu64 SCNu64
+#endif
+
+#define GMX_INT32_MAX INT32_MAX
+#define GMX_INT32_MIN INT32_MIN
+
+#define GMX_INT64_MAX INT64_MAX
+#define GMX_INT64_MIN INT64_MIN
+
+#define GMX_UINT32_MAX UINT32_MAX
+#define GMX_UINT32_MIN UINT32_MIN
+
+#define GMX_UINT64_MAX UINT64_MAX
+#define GMX_UINT64_MIN UINT64_MIN
+/*! \} */
+
+/*! \def gmx_inline
+ * \brief
+ * Keyword to use in C code instead of C99 `inline`.
+ *
+ * Some of the C compilers we support do not recognize the C99 keyword
+ * `inline`. This macro should be used in C code and in shared C/C++ headers
+ * to indicate a function is inlined.
+ * C++ code should use plain `inline`, as that is already in C++98.
+ */
+#if !defined __cplusplus && _MSC_VER
+#define gmx_inline __inline
+#else
+/* C++ or C99 */
+#define gmx_inline inline
+#endif
+
+/* ICC, GCC, MSVC, Pathscale, PGI, XLC support __restrict.
+ * Any other compiler can be added here. */
+/*! \brief
+ * Keyword to use in instead of C99 `restrict`.
+ *
+ * We cannot use `restrict` because it is only in C99, but not in C++.
+ * This macro should instead be used to allow easily supporting different
+ * compilers.
+ */
+#define gmx_restrict __restrict
+
+/*! \def gmx_cxx_const
+ * \brief
+ * Keyword to work around C/C++ differences in possible const keyword usage.
+ *
+ * Some functions that do not modify their input parameters cannot declare
+ * those parameters as `const` and compile warning/error-free on both C and C++
+ * compilers because of differences in `const` semantics. This macro can be
+ * used in cases where C++ allows `const`, but C does not like it, to make the
+ * same declaration work for both.
+ */
+#ifdef __cplusplus
+#define gmx_cxx_const const
+#else
+#define gmx_cxx_const
+#endif
+
+/*! \def gmx_unused
+ * \brief
+ * Attribute to suppress compiler warnings about unused function parameters.
+ *
+ * This attribute suppresses compiler warnings about unused function arguments
+ * by marking them as possibly unused. Some arguments are unused but
+ * have to be retained to preserve a function signature
+ * that must match that of another function.
+ * Some arguments are only used in *some* conditional compilation code paths
+ * (e.g. MPI).
+ */
+#ifndef gmx_unused
+#ifdef __GNUC__
+/* GCC, clang, and some ICC pretending to be GCC */
+# define gmx_unused __attribute__ ((unused))
+#elif (defined(__INTEL_COMPILER) || defined(__ECC)) && !defined(_MSC_VER)
+/* ICC on *nix */
+# define gmx_unused __attribute__ ((unused))
+#elif defined _MSC_VER
+/* MSVC */
+# define gmx_unused /*@unused@*/
+#elif defined(__xlC__)
+/* IBM */
+# define gmx_unused __attribute__ ((unused))
+#else
+# define gmx_unused
+#endif
+#endif
+
+#endif
--- /dev/null
+/*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+ * 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
+ * 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.
+ *
+ * GROMACS is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1
+ * of the License, or (at your option) any later version.
+ *
+ * GROMACS is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with GROMACS; if not, see
+ * http://www.gnu.org/licenses, or write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * If you want to redistribute modifications to GROMACS, 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 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.
+ */
+#include "basenetwork.h"
+
+#include "config.h"
+
+#include <cctype>
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
+
+#include <algorithm>
+#include <exception>
+
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+
+#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/gmxmpi.h"
+#include "gromacs/utility/programcontext.h"
+
+int gmx_gethostname(char *name, size_t len)
+{
+ if (len < 8)
+ {
+ gmx_incons("gmx_gethostname called with len<8");
+ }
+#if defined(HAVE_UNISTD_H) && !defined(__native_client__)
+ if (gethostname(name, len-1) != 0)
+ {
+ std::strncpy(name, "unknown", 8);
+ return -1;
+ }
+ return 0;
+#else
+ std::strncpy(name, "unknown", 8);
+ return -1;
+#endif
+}
+
+gmx_bool gmx_mpi_initialized(void)
+{
+#ifndef GMX_MPI
+ return 0;
+#else
+ int n;
+ MPI_Initialized(&n);
+
+ return n;
+#endif
+}
+
+int gmx_node_num(void)
+{
+#ifndef GMX_MPI
+ return 1;
+#else
+#ifdef GMX_THREAD_MPI
+ if (!gmx_mpi_initialized())
+ {
+ return 1;
+ }
+#endif
+ int i;
+ (void) MPI_Comm_size(MPI_COMM_WORLD, &i);
+ return i;
+#endif
+}
+
+int gmx_node_rank(void)
+{
+#ifndef GMX_MPI
+ return 0;
+#else
+#ifdef GMX_THREAD_MPI
+ if (!gmx_mpi_initialized())
+ {
+ return 0;
+ }
+#endif
+ int i;
+ (void) MPI_Comm_rank(MPI_COMM_WORLD, &i);
+ return i;
+#endif
+}
+
+static int mpi_hostname_hash(void)
+{
+ int hash_int;
+
+#ifndef GMX_LIB_MPI
+ /* We have a single physical node */
+ hash_int = 0;
+#else
+ int resultlen;
+ char mpi_hostname[MPI_MAX_PROCESSOR_NAME];
+
+ /* This procedure can only differentiate nodes with different names.
+ * Architectures where different physical nodes have identical names,
+ * such as IBM Blue Gene, should use an architecture specific solution.
+ */
+ MPI_Get_processor_name(mpi_hostname, &resultlen);
+
+ /* The string hash function returns an unsigned int. We cast to an int.
+ * Negative numbers are converted to positive by setting the sign bit to 0.
+ * This makes the hash one bit smaller.
+ * A 63-bit hash (with 64-bit int) should be enough for unique node hashes,
+ * even on a million node machine. 31 bits might not be enough though!
+ */
+ hash_int =
+ (int)gmx_string_fullhash_func(mpi_hostname, gmx_string_hash_init);
+ if (hash_int < 0)
+ {
+ hash_int -= INT_MIN;
+ }
+#endif
+
+ return hash_int;
+}
+
+#if defined GMX_LIB_MPI && defined GMX_TARGET_BGQ
+#include <spi/include/kernel/location.h>
+
+static int bgq_nodenum(void)
+{
+ int hostnum;
+ Personality_t personality;
+ Kernel_GetPersonality(&personality, sizeof(personality));
+ /* Each MPI rank has a unique coordinate in a 6-dimensional space
+ (A,B,C,D,E,T), with dimensions A-E corresponding to different
+ physical nodes, and T within each node. Each node has sixteen
+ physical cores, each of which can have up to four hardware
+ threads, so 0 <= T <= 63 (but the maximum value of T depends on
+ the confituration of ranks and OpenMP threads per
+ node). However, T is irrelevant for computing a suitable return
+ value for gmx_hostname_num().
+ */
+ hostnum = personality.Network_Config.Acoord;
+ hostnum *= personality.Network_Config.Bnodes;
+ hostnum += personality.Network_Config.Bcoord;
+ hostnum *= personality.Network_Config.Cnodes;
+ hostnum += personality.Network_Config.Ccoord;
+ hostnum *= personality.Network_Config.Dnodes;
+ hostnum += personality.Network_Config.Dcoord;
+ hostnum *= personality.Network_Config.Enodes;
+ hostnum += personality.Network_Config.Ecoord;
+
+ if (debug)
+ {
+ std::fprintf(debug,
+ "Torus ID A: %d / %d B: %d / %d C: %d / %d D: %d / %d E: %d / %d\n"
+ "Node ID T: %d / %d core: %d / %d hardware thread: %d / %d\n",
+ personality.Network_Config.Acoord,
+ personality.Network_Config.Anodes,
+ personality.Network_Config.Bcoord,
+ personality.Network_Config.Bnodes,
+ personality.Network_Config.Ccoord,
+ personality.Network_Config.Cnodes,
+ personality.Network_Config.Dcoord,
+ personality.Network_Config.Dnodes,
+ personality.Network_Config.Ecoord,
+ personality.Network_Config.Enodes,
+ Kernel_ProcessorCoreID(),
+ 16,
+ Kernel_ProcessorID(),
+ 64,
+ Kernel_ProcessorThreadID(),
+ 4);
+ }
+ return hostnum;
+}
+#endif
+
+int gmx_physicalnode_id_hash(void)
+{
+ int hash;
+
+#ifndef GMX_MPI
+ hash = 0;
+#else
+#ifdef GMX_THREAD_MPI
+ /* thread-MPI currently puts the thread number in the process name,
+ * we might want to change this, as this is inconsistent with what
+ * most MPI implementations would do when running on a single node.
+ */
+ hash = 0;
+#else
+#ifdef GMX_TARGET_BGQ
+ hash = bgq_nodenum();
+#else
+ hash = mpi_hostname_hash();
+#endif
+#endif
+#endif
+
+ if (debug)
+ {
+ fprintf(debug, "In gmx_physicalnode_id_hash: hash %d\n", hash);
+ }
+
+ return hash;
+}
+
+#ifdef GMX_LIB_MPI
+void gmx_abort(int errorno)
+{
+ const char *programName = "GROMACS";
+ try
+ {
+ programName = gmx::getProgramContext().displayName();
+ }
+ catch (const std::exception &)
+ {
+ }
+ const int nnodes = gmx_node_num();
+ const int noderank = gmx_node_rank();
+ if (nnodes > 1)
+ {
+ std::fprintf(stderr, "Halting parallel program %s on rank %d out of %d\n",
+ programName, noderank, nnodes);
+ }
+ else
+ {
+ std::fprintf(stderr, "Halting program %s\n", programName);
+ }
+
+ MPI_Abort(MPI_COMM_WORLD, errorno);
+ std::exit(errorno);
+}
+#endif
--- /dev/null
+/*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+ * 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
+ * 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.
+ *
+ * GROMACS is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1
+ * of the License, or (at your option) any later version.
+ *
+ * GROMACS is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with GROMACS; if not, see
+ * http://www.gnu.org/licenses, or write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * If you want to redistribute modifications to GROMACS, 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 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.
+ */
+/*! \libinternal \file
+ * \brief
+ * Utility functions for basic MPI and network functionality.
+ *
+ * \inlibraryapi
+ * \ingroup module_utility
+ */
+#ifndef GMX_UTILITY_BASENETWORK_H
+#define GMX_UTILITY_BASENETWORK_H
+
+#include <stddef.h>
+
+#include "gromacs/utility/basedefinitions.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*! \brief
+ * Sets the hostname to the value given by gethostname(), if available.
+ *
+ * \param[out] name Buffer to receive the hostname.
+ * \param[in] len Length of buffer \p name (must be >= 8).
+ * \returns 0 on success, -1 on error.
+ *
+ * If the value is not available, "unknown" is returned.
+ * \p name should have at least size \p len.
+ */
+int gmx_gethostname(char *name, size_t len);
+
+/*! \brief
+ * Returns whether MPI has been initialized.
+ *
+ * The return value is `FALSE` if MPI_Init() has not been called, or if
+ * \Gromacs has been compiled without MPI support.
+ * For thread-MPI, returns `TRUE` when the threads have been started.
+ *
+ * Note that there is a lot of code in between MPI_Init() and the thread-MPI
+ * thread start where the return value is different depending on compilation
+ * options.
+ */
+gmx_bool gmx_mpi_initialized(void);
+
+/*! \brief
+ * Returns the number of nodes.
+ *
+ * For thread-MPI, returns one before the threads have been started.
+ * This allows code between the real MPI_Init() and the thread-MPI "init" to
+ * still use this function to check for serial/parallel status and work as
+ * expected: for thread-MPI, at that point they should behave as if the run was
+ * serial.
+ */
+int gmx_node_num(void);
+
+/*! \brief
+ * Returns the rank of the node.
+ *
+ * For thread-MPI, returns zero before the threads have been started.
+ * This allows code between the real MPI_Init() and the thread-MPI "init" to
+ * still use this function to check for master node work as expected:
+ * for thread-MPI, at that point the only thread of execution should behave as
+ * if it the master node.
+ */
+int gmx_node_rank(void);
+
+/*! \brief
+ * Return a non-negative hash that is, hopefully, unique for each physical
+ * node.
+ *
+ * This hash is useful for determining hardware locality.
+ */
+int gmx_physicalnode_id_hash(void);
+
+/*! \brief
+ * Returns an integer characteristic of and, hopefully, unique to each
+ * physical node in the MPI system.
+ *
+ * If the first part of the MPI hostname (up to the first dot) ends with a
+ * number, returns this number. If the first part of the MPI hostname does not
+ * ends in a number (0-9 characters), returns 0.
+ *
+ * \todo
+ * This function should be fully replaced by gmx_physicalnode_id_hash().
+ */
+int gmx_hostname_num(void);
+
+/** Abort the parallel run */
+void gmx_abort(int errorno);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
*/
#include "gromacs/utility/baseversion-gen.h"
-const char _gmx_ver_string[] = "VERSION @GMX_PROJECT_VERSION_STR@";
-const char _gmx_full_git_hash[] = "@GMX_GIT_HEAD_HASH@";
-const char _gmx_central_base_hash[] = "@GMX_GIT_REMOTE_HASH@";
+const char _gmx_ver_string[] = "VERSION @GMX_VERSION_STRING_FULL@";
+const char _gmx_full_git_hash[] = "@GMX_VERSION_FULL_HASH@";
+const char _gmx_central_base_hash[] = "@GMX_VERSION_CENTRAL_BASE_HASH@";
/* This file is completely threadsafe - keep it that way! */
#include "cstringutil.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <assert.h>
#include <ctype.h>
#include <unistd.h>
#endif
-#include "gromacs/legacyheaders/types/simple.h"
-#include "gromacs/legacyheaders/gmx_fatal.h"
-#include "gromacs/legacyheaders/main.h"
-
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/basedefinitions.h"
+#include "gromacs/utility/basenetwork.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/utility/smalloc.h"
int continuing(char *s)
{
const char *unk = "onbekend";
time_t clock;
- const char *user = unk;
+ const char *user;
int gh;
#ifdef HAVE_PWD_H
uid_t uid;
/* pw returns null on error (e.g. compute nodes lack /etc/passwd) */
user = pw ? pw->pw_name : unk;
#else
- uid = 0;
- gh = -1;
+ uid = 0;
+ gh = -1;
+ user = unk;
#endif
gmx_ctime_r(&clock, timebuf, STRLEN);
#endif
}
+char *gmx_step_str(gmx_int64_t i, char *buf)
+{
+ sprintf(buf, "%"GMX_PRId64, i);
+ return buf;
+}
+
void parse_digits_from_plain_string(const char *digitstring, int *ndigits, int **digitlist)
{
int i;
#include <stdio.h>
#include <time.h>
-#include "../legacyheaders/types/simple.h"
+#include "basedefinitions.h"
#include "gmx_header_config.h"
#define CONTINUE '\\'
/** Comment sign to use. */
#define COMMENTSIGN ';'
+/** Standard size for char* string buffers. */
+#define STRLEN 4096
/*! \brief
* Strip trailing spaces and if s ends with a ::CONTINUE remove that too.
*/
gmx_int64_t str_to_int64_t(const char *str, char **endptr);
+/** Minimum size of buffer to pass to gmx_step_str(). */
+#define STEPSTRSIZE 22
+
+/*! \brief
+ * Prints a gmx_int64_t value in buf and returns the pointer to buf.
+ *
+ * buf should be large enough to contain i: STEPSTRSIZE (22) chars.
+ * When multiple gmx_int64_t values are printed in the same printf call,
+ * be sure to call gmx_step_str with different buffers.
+ */
+char *gmx_step_str(gmx_int64_t i, char *buf);
+
#ifdef GMX_NATIVE_WINDOWS
#define snprintf _snprintf
#endif
* \author Teemu Murtola <teemu.murtola@gmail.com>
* \ingroup module_utility
*/
-#ifdef HAVE_CONFIG_H
#include "config.h"
-#endif
#include "errorformat.h"
*/
#include "exceptions.h"
-#ifdef HAVE_CONFIG_H
#include "config.h"
-#endif
#include <cstring>
#include "thread_mpi/system_error.h"
-#include "gromacs/legacyheaders/network.h"
-
+#include "gromacs/utility/basenetwork.h"
#include "gromacs/utility/errorcodes.h"
#include "gromacs/utility/gmxassert.h"
#include "gromacs/utility/stringutil.h"
const char *GromacsException::what() const throw()
{
const ErrorMessage *msg = boost::get_error_info<errinfo_message>(*this);
- while (msg != NULL && msg->isContext())
+ if (msg == NULL)
+ {
+ return "No reason provided";
+ }
+ while (msg->isContext())
{
msg = &msg->child();
}
- return msg != NULL ? msg->text().c_str() : "No reason provided";
+ return msg->text().c_str();
}
void GromacsException::prependContext(const std::string &context)
#ifdef GMX_LIB_MPI
// TODO: Consider moving the output done in gmx_abort() into the message
// printing routine above, so that this could become a simple MPI_Abort().
- gmx_abort(gmx_node_rank(), gmx_node_num(), returnCode);
+ gmx_abort(returnCode);
#endif
return returnCode;
}
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#include "gmx_fatal.h"
-#include "gmx_fatal_collective.h"
+#include "fatalerror.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
-#include <ctype.h>
-#include <errno.h>
-#include <stdarg.h>
-#include <string.h>
+#include <cerrno>
+#include <cstdarg>
+#include <cstdlib>
+#include <cstring>
-#include "thread_mpi/threads.h"
+#include <exception>
-#include "main.h"
-#include "types/commrec.h"
-#include "network.h"
-#include "copyrite.h"
-#include "macros.h"
+#include "thread_mpi/threads.h"
-#include "gromacs/fileio/futil.h"
-#include "gromacs/fileio/gmxfio.h"
+#include "gromacs/utility/basenetwork.h"
+#include "gromacs/utility/baseversion.h"
+#include "gromacs/utility/common.h"
#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/utility/gmxmpi.h"
+#include "gromacs/utility/programcontext.h"
#include "gromacs/utility/smalloc.h"
-static gmx_bool bDebug = FALSE;
-static FILE *log_file = NULL;
+static bool bDebug = false;
+static tMPI_Thread_mutex_t where_mutex = TMPI_THREAD_MUTEX_INITIALIZER;
-static tMPI_Thread_mutex_t debug_mutex = TMPI_THREAD_MUTEX_INITIALIZER;
-static tMPI_Thread_mutex_t where_mutex = TMPI_THREAD_MUTEX_INITIALIZER;
+FILE *debug = NULL;
+gmx_bool gmx_debug_at = FALSE;
-gmx_bool bDebugMode(void)
+static FILE *log_file = NULL;
+static tMPI_Thread_mutex_t error_mutex = TMPI_THREAD_MUTEX_INITIALIZER;
+static const char *const gmxuser
+ = "Please report this to the mailing list (gmx-users@gromacs.org)";
+
+void gmx_init_debug(const int dbglevel, const char *dbgfile)
{
- gmx_bool ret;
-#if 0
- tMPI_Thread_mutex_lock(&debug_mutex);
-#endif
- ret = bDebug;
-#if 0
- tMPI_Thread_mutex_unlock(&debug_mutex);
-#endif
- return bDebug;
+ if (!bDebug)
+ {
+ gmx_disable_file_buffering();
+ debug = gmx_ffopen(dbgfile, "w+");
+ bDebug = true;
+ if (dbglevel >= 2)
+ {
+ gmx_debug_at = TRUE;
+ }
+ }
}
-void gmx_fatal_set_log_file(FILE *fp)
+gmx_bool bDebugMode(void)
{
- log_file = fp;
+ return bDebug;
}
void _where(const char *file, int line)
}
}
+void gmx_fatal_set_log_file(FILE *fp)
+{
+ log_file = fp;
+}
+
static int fatal_errno = 0;
-static void quit_gmx(const char *msg)
+static void default_error_handler(const char *msg)
{
- tMPI_Thread_mutex_lock(&debug_mutex);
+ tMPI_Thread_mutex_lock(&error_mutex);
if (fatal_errno == 0)
{
if (log_file)
}
perror(msg);
}
+ tMPI_Thread_mutex_unlock(&error_mutex);
+}
-#ifdef GMX_LIB_MPI
- if (gmx_mpi_initialized())
- {
- int nnodes;
- int noderank;
-
- nnodes = gmx_node_num();
- noderank = gmx_node_rank();
-
- if (nnodes > 1)
- {
- fprintf(stderr, "Error on rank %d, will try to stop all ranks\n",
- noderank);
- }
- gmx_abort(noderank, nnodes, -1);
- }
-#endif
-
- if (debug)
- {
- fflush(debug);
- }
- if (bDebugMode())
- {
- fprintf(stderr, "dump core (y/n):");
- fflush(stderr);
- if (toupper(getc(stdin)) != 'N')
- {
- (void) abort();
- }
- }
+static void (*gmx_error_handler)(const char *msg) = default_error_handler;
- exit(fatal_errno);
- tMPI_Thread_mutex_unlock(&debug_mutex);
+void set_gmx_error_handler(void (*func)(const char *msg))
+{
+ // TODO: Either this is unnecessary, or also reads to the handler should be
+ // protected by a mutex.
+ tMPI_Thread_mutex_lock(&error_mutex);
+ gmx_error_handler = func;
+ tMPI_Thread_mutex_unlock(&error_mutex);
}
-/* The function below should be identical to quit_gmx,
- * except that is does not actually quit and call gmx_abort.
- */
-static void quit_gmx_noquit(const char *msg)
+static void call_error_handler(const char *key, const char *file, int line, const char *msg)
{
- tMPI_Thread_mutex_lock(&debug_mutex);
- if (!fatal_errno)
- {
- if (log_file)
- {
- fprintf(log_file, "%s\n", msg);
- }
- fprintf(stderr, "%s\n", msg);
- /* we set it to no-zero because if this function is called, something
- has gone wrong */
- fatal_errno = 255;
- }
- else
+ char buf[10240], errerrbuf[1024];
+ const char *llines = "-------------------------------------------------------";
+ char *strerr;
+
+ if (msg == NULL)
{
- if (fatal_errno != -1)
- {
- errno = fatal_errno;
- }
- perror(msg);
+ sprintf(errerrbuf, "Empty fatal_error message. %s", gmxuser);
}
-
-#ifndef GMX_LIB_MPI
- if (debug)
+ // In case ProgramInfo is not initialized and there is an issue with the
+ // initialization, fall back to "GROMACS".
+ const char *programName = "GROMACS";
+ try
{
- fflush(debug);
+ programName = gmx::getProgramContext().displayName();
}
- if (bDebugMode())
+ catch (const std::exception &)
{
- fprintf(stderr, "dump core (y/n):");
- fflush(stderr);
- if (toupper(getc(stdin)) != 'N')
- {
- (void) abort();
- }
}
-#endif
-
- tMPI_Thread_mutex_unlock(&debug_mutex);
-}
-void gmx_fatal(int f_errno, const char *file, int line, const char *fmt, ...)
-{
- va_list ap;
- char msg[STRLEN];
-
- va_start(ap, fmt);
- vsprintf(msg, fmt, ap);
- va_end(ap);
-
- tMPI_Thread_mutex_lock(&debug_mutex);
- fatal_errno = f_errno;
- tMPI_Thread_mutex_unlock(&debug_mutex);
+ strerr = gmx_strerror(key);
+ sprintf(buf, "\n%s\nProgram %s, %s\n"
+ "Source code file: %s, line: %d\n\n"
+ "%s:\n%s\nFor more information and tips for troubleshooting, please check the GROMACS\n"
+ "website at http://www.gromacs.org/Documentation/Errors\n%s\n",
+ llines, programName, gmx_version(), file, line,
+ strerr, msg ? msg : errerrbuf, llines);
+ free(strerr);
- _gmx_error("fatal", msg, file, line);
+ gmx_error_handler(buf);
}
-void gmx_fatal_collective(int f_errno, const char *file, int line,
- const t_commrec *cr, gmx_domdec_t *dd,
- const char *fmt, ...)
+GMX_ATTRIBUTE_NORETURN static void do_exit(bool bMaster, bool bFinalize)
{
- gmx_bool bFinalize;
- va_list ap;
- char msg[STRLEN];
-#ifdef GMX_MPI
- int result;
-#endif
-
- bFinalize = TRUE;
-
-#ifdef GMX_MPI
- /* Check if we are calling on all processes in MPI_COMM_WORLD */
- if (cr != NULL)
- {
- MPI_Comm_compare(cr->mpi_comm_mysim, MPI_COMM_WORLD, &result);
- }
- else
+ if (debug)
{
- MPI_Comm_compare(dd->mpi_comm_all, MPI_COMM_WORLD, &result);
+ fflush(debug);
}
- /* Any result except MPI_UNEQUAL allows us to call MPI_Finalize */
- bFinalize = (result != MPI_UNEQUAL);
-#endif
- if ((cr != NULL && MASTER(cr) ) ||
- (dd != NULL && DDMASTER(dd)))
+#ifdef GMX_MPI
+ if (gmx_mpi_initialized())
{
- va_start(ap, fmt);
- vsprintf(msg, fmt, ap);
- va_end(ap);
-
- tMPI_Thread_mutex_lock(&debug_mutex);
- fatal_errno = f_errno;
- tMPI_Thread_mutex_unlock(&debug_mutex);
-
if (bFinalize)
{
- /* Use an error handler that does not quit */
- set_gmx_error_handler(quit_gmx_noquit);
+ /* Broadcast the fatal error number possibly modified
+ * on the master process, in case the user would like
+ * to use the return status on a non-master process.
+ * The master process in cr and dd always has global rank 0.
+ */
+ MPI_Bcast(&fatal_errno, sizeof(fatal_errno), MPI_BYTE,
+ 0, MPI_COMM_WORLD);
+
+ /* Finalize nicely instead of aborting */
+ MPI_Finalize();
+ }
+ else if (bMaster)
+ {
+#ifdef GMX_LIB_MPI
+ gmx_abort(1);
+#endif
+ }
+ else
+ {
+ /* Let all other processes wait till the master has printed
+ * the error message and issued MPI_Abort.
+ */
+ MPI_Barrier(MPI_COMM_WORLD);
}
-
- _gmx_error("fatal", msg, file, line);
}
+#else
+ GMX_UNUSED_VALUE(bMaster);
+ GMX_UNUSED_VALUE(bFinalize);
+#endif
-#ifdef GMX_MPI
- if (bFinalize)
- {
- /* Broadcast the fatal error number possibly modified
- * on the master process, in case the user would like
- * to use the return status on a non-master process.
- * The master process in cr and dd always has global rank 0.
- */
- MPI_Bcast(&fatal_errno, sizeof(fatal_errno), MPI_BYTE,
- 0, MPI_COMM_WORLD);
-
- /* Finalize nicely instead of aborting */
- MPI_Finalize();
- }
- else
+ if (bDebugMode())
{
- /* Let all other processes wait till the master has printed
- * the error message and issued MPI_Abort.
- */
- MPI_Barrier(MPI_COMM_WORLD);
+ std::abort();
}
-#endif
-
- exit(fatal_errno);
+ std::exit(1);
}
-/*
- * These files are global variables in the gromacs preprocessor
- * Every routine in a file that includes gmx_fatal.h can write to these
- * debug channels. Depending on the debuglevel used
- * 0 to 3 of these filed are redirected to /dev/null
- *
- */
-FILE *debug = NULL;
-gmx_bool gmx_debug_at = FALSE;
-
-void init_debug(const int dbglevel, const char *dbgfile)
+void gmx_fatal_mpi_va(int f_errno, const char *file, int line,
+ gmx_bool bMaster, gmx_bool bFinalize,
+ const char *fmt, va_list ap)
{
- tMPI_Thread_mutex_lock(&debug_mutex);
- if (!bDebug) /* another thread hasn't already run this*/
+ if (bMaster)
{
- no_buffers();
- debug = gmx_fio_fopen(dbgfile, "w+");
- bDebug = TRUE;
- if (dbglevel >= 2)
- {
- gmx_debug_at = TRUE;
- }
- }
- tMPI_Thread_mutex_unlock(&debug_mutex);
-}
+ char msg[STRLEN];
+ vsprintf(msg, fmt, ap);
+
+ tMPI_Thread_mutex_lock(&error_mutex);
+ fatal_errno = f_errno;
+ tMPI_Thread_mutex_unlock(&error_mutex);
-static const char *gmxuser = "Please report this to the mailing list (gmx-users@gromacs.org)";
+ call_error_handler("fatal", file, line, msg);
+ }
-static void (*gmx_error_handler)(const char *msg) = quit_gmx;
+ do_exit(bMaster, bFinalize);
+}
-void set_gmx_error_handler(void (*func)(const char *msg))
+void gmx_fatal(int f_errno, const char *file, int line, const char *fmt, ...)
{
- tMPI_Thread_mutex_lock(&debug_mutex);
- gmx_error_handler = func;
- tMPI_Thread_mutex_unlock(&debug_mutex);
+ va_list ap;
+ va_start(ap, fmt);
+ gmx_fatal_mpi_va(f_errno, file, line, TRUE, FALSE, fmt, ap);
+ va_end(ap);
}
char *gmx_strerror(const char *key)
{ "input", "Input error or input inconsistency" },
{ "mem", "Memory allocation/freeing error" },
{ "open", "Can not open file" },
- { "range", "Range checking error" }
+ { "range", "Range checking error" },
+ { NULL, NULL}
};
-#define NMSG asize(msg)
- char buf[1024];
- size_t i;
if (key == NULL)
{
}
else
{
- for (i = 0; (i < NMSG); i++)
+ for (size_t i = 0; msg[i].key != NULL; ++i)
{
if (strcmp(key, msg[i].key) == 0)
{
- break;
+ return strdup(msg[i].msg);
}
}
- if (i == NMSG)
- {
- sprintf(buf, "No error message associated with key %s\n%s", key, gmxuser);
- return strdup(buf);
- }
- else
- {
- return strdup(msg[i].msg);
- }
+ char buf[1024];
+ sprintf(buf, "No error message associated with key %s\n%s", key, gmxuser);
+ return strdup(buf);
}
}
void _gmx_error(const char *key, const char *msg, const char *file, int line)
{
- char buf[10240], errerrbuf[1024];
- const char *llines = "-------------------------------------------------------";
- char *strerr;
-
- /* protect the audience from suggestive discussions */
-
- if (msg == NULL)
- {
- sprintf(errerrbuf, "Empty fatal_error message. %s", gmxuser);
- }
-
- strerr = gmx_strerror(key);
- sprintf(buf, "\n%s\nProgram %s, %s\n"
- "Source code file: %s, line: %d\n\n"
- "%s:\n%s\nFor more information and tips for troubleshooting, please check the GROMACS\n"
- "website at http://www.gromacs.org/Documentation/Errors\n%s\n",
- llines, ShortProgram(), GromacsVersion(), file, line,
- strerr, msg ? msg : errerrbuf, llines);
- free(strerr);
-
- gmx_error_handler(buf);
+ call_error_handler(key, file, line, msg);
+ do_exit(true, false);
}
void _range_check(int n, int n_min, int n_max, const char *warn_str,
* Declares fatal error handling and debugging routines for C code.
*
* \inpublicapi
+ * \ingroup module_utility
*/
-#ifndef _fatal_h
-#define _fatal_h
+#ifndef GMX_UTILITY_FATALERROR_H
+#define GMX_UTILITY_FATALERROR_H
+#include <stdarg.h>
#include <stdio.h>
-#include "types/simple.h"
+#include "basedefinitions.h"
#ifdef __cplusplus
extern "C" {
* code generation.
*/
#ifndef GMX_ATTRIBUTE_NORETURN
-#if __has_feature(attribute_analyzer_noreturn)
-#define GMX_ATTRIBUTE_NORETURN __attribute__((analyzer_noreturn))
+#if defined(__GNUC__) || __has_feature(attribute_analyzer_noreturn)
+#define GMX_ATTRIBUTE_NORETURN __attribute__((noreturn))
#else
#define GMX_ATTRIBUTE_NORETURN
#endif
#endif
-/** Implementation for where(). */
-void
-_where(const char *file, int line);
-/** Prints filename and line to stdlog. */
-#define where() _where(__FILE__, __LINE__)
-
-/*! \brief
- * Fatal error reporting routine for \Gromacs.
- *
- * This function prints a fatal error message with a header that contains the
- * source file and line number of the call, followed by the string specified by
- * \p fmt and supplied parameters.
- * If \p fatal_errno is 0, only the message and arguments are printed.
- * If \p fatal_errno is a legal system errno or -1, a perror()-like message is
- * printed after the first message; if fatal_errno is -1, the last system errno
- * will be used.
- * The format of \p fmt uses printf()-like formatting.
- *
- * In case all MPI processes want to stop with the same fatal error,
- * use gmx_fatal_collective(), declared in gmx_fatal_collective.h,
- * to avoid having as many error messages as processes.
- *
- * The first three parameters can be provided through ::FARGS:
- * \code
- gmx_fatal(FARGS, fmt, ...);
- \endcode
- */
-void
-gmx_fatal(int fatal_errno, const char *file, int line, const char *fmt, ...) GMX_ATTRIBUTE_NORETURN;
-/** Helper macro to pass first three parameters to gmx_fatal(). */
-#define FARGS 0, __FILE__, __LINE__
-
-/** Sets the log file for printing error messages. */
-void
-gmx_fatal_set_log_file(FILE *fp);
-
/*! \brief
* Debug log file.
*
/** Whether extra debugging is enabled. */
extern gmx_bool gmx_debug_at;
-/** Initializes debugging variables */
-void init_debug(const int dbglevel, const char *dbgfile);
+/*! \brief
+ * Initializes debugging variables.
+ *
+ * This function is not threadsafe. It should be called as part of
+ * initializing \Gromacs, before any other thread accesses the library.
+ * For command line programs, gmx::CommandLineModuleManager takes care
+ * of this if the user requests debugging.
+ */
+void gmx_init_debug(const int dbglevel, const char *dbgfile);
/** Returns TRUE when the program was started in debug mode */
gmx_bool bDebugMode(void);
+/** Implementation for where(). */
+void
+_where(const char *file, int line);
+/** Prints filename and line to stdlog. */
+#define where() _where(__FILE__, __LINE__)
+
+/** Sets the log file for printing error messages. */
+void
+gmx_fatal_set_log_file(FILE *fp);
+
/*! \brief
- * Implementation for range_check() and range_check_mesg().
+ * Sets an error handler for gmx_fatal() and other fatal error routines.
*
- * \p warn_str can be NULL.
+ * The default handler prints the message.
+ * \Gromacs will terminate the program after the error handler returns.
+ * To make gmx_fatal_collective() work, the error handler should not terminate
+ * the program, as it cannot know what is the desired way of termination.
+ * The string passed to the handler may be a multi-line string.
+ *
+ * \see gmx_fatal()
*/
-void _range_check(int n, int n_min, int n_max, const char *warn_str,
- const char *var,
- const char *file, int line);
+void
+set_gmx_error_handler(void (*func)(const char *msg));
/*! \brief
- * Checks that a variable is within a range.
+ * Low-level fatal error reporting routine for collective MPI errors.
*
- * If \p n is not in range [n_min, n_max), a fatal error is raised.
- * \p n_min is inclusive, but \p n_max is not.
+ * This function works as gmx_fatal(), but provides additional control for
+ * cases where it is known that the same error occurs on multiple MPI ranks.
+ * The error handler is called only if \p bMaster is `TRUE`, and MPI_Finalize()
+ * is called instead of MPI_Abort() in MPI-enabled \Gromacs if \p bFinalize is
+ * `TRUE`.
+ *
+ * This is used to implement gmx_fatal_collective() (which cannot be declared
+ * here, since it would bring with it mdrun-specific dependencies).
*/
-#define range_check_mesg(n, n_min, n_max, str) _range_check(n, n_min, n_max, str,#n, __FILE__, __LINE__)
+void
+gmx_fatal_mpi_va(int fatal_errno, const char *file, int line, gmx_bool bMaster,
+ gmx_bool bFinalize, const char *fmt, va_list ap) GMX_ATTRIBUTE_NORETURN;
/*! \brief
- * Checks that a variable is within a range.
+ * Fatal error reporting routine for \Gromacs.
*
- * This works as range_check_mesg(), but with a default error message.
+ * This function prints a fatal error message with a header that contains the
+ * source file and line number of the call, followed by the string specified by
+ * \p fmt and supplied parameters.
+ * If \p fatal_errno is 0, only the message and arguments are printed.
+ * If \p fatal_errno is a legal system errno or -1, a perror()-like message is
+ * printed after the first message; if fatal_errno is -1, the last system errno
+ * will be used.
+ * The format of \p fmt uses printf()-like formatting.
+ *
+ * In case all MPI processes want to stop with the same fatal error,
+ * use gmx_fatal_collective(), declared in network.h,
+ * to avoid having as many error messages as processes.
+ *
+ * The first three parameters can be provided through ::FARGS:
+ * \code
+ gmx_fatal(FARGS, fmt, ...);
+ \endcode
*/
-#define range_check(n, n_min, n_max) _range_check(n, n_min, n_max, NULL,#n, __FILE__, __LINE__)
+void
+gmx_fatal(int fatal_errno, const char *file, int line, const char *fmt, ...) GMX_ATTRIBUTE_NORETURN;
+/** Helper macro to pass first three parameters to gmx_fatal(). */
+#define FARGS 0, __FILE__, __LINE__
/*! \brief
* Returns error message corresponding to a string key.
/*! \} */
/*! \brief
- * Sets an error handler for gmx_fatal() and other fatal error routines.
+ * Implementation for range_check() and range_check_mesg().
*
- * The default handler prints the message and aborts the program.
- * If you set a custom handler, it must also abort the program, otherwise
- * \Gromacs will behave unpredictably (most likely, it crashes shortly after
- * the fatal error).
- * The string passed to the handler may be a multi-line string.
+ * \p warn_str can be NULL.
+ */
+void _range_check(int n, int n_min, int n_max, const char *warn_str,
+ const char *var,
+ const char *file, int line);
+
+/*! \brief
+ * Checks that a variable is within a range.
*
- * \see gmx_fatal()
+ * If \p n is not in range [n_min, n_max), a fatal error is raised.
+ * \p n_min is inclusive, but \p n_max is not.
*/
-void
-set_gmx_error_handler(void (*func)(const char *msg));
+#define range_check_mesg(n, n_min, n_max, str) _range_check(n, n_min, n_max, str,#n, __FILE__, __LINE__)
+
+/*! \brief
+ * Checks that a variable is within a range.
+ *
+ * This works as range_check_mesg(), but with a default error message.
+ */
+#define range_check(n, n_min, n_max) _range_check(n, n_min, n_max, NULL,#n, __FILE__, __LINE__)
/*! \brief
* Prints a warning message to stderr.
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
+#include "gromacs/utility/futil.h"
+
#include "config.h"
-#endif
#include <stdio.h>
#include <stdlib.h>
#include "thread_mpi/threads.h"
-#include "gromacs/legacyheaders/gmx_fatal.h"
-#include "gromacs/legacyheaders/types/commrec.h"
-#include "gromacs/legacyheaders/network.h"
-
-#include "gromacs/fileio/futil.h"
-#include "gromacs/fileio/path.h"
#include "gromacs/utility/cstringutil.h"
#include "gromacs/utility/exceptions.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/path.h"
#include "gromacs/utility/programcontext.h"
#include "gromacs/utility/smalloc.h"
#include "gromacs/utility/stringutil.h"
} t_pstack;
static t_pstack *pstack = NULL;
-static gmx_bool bUnbuffered = FALSE;
+static bool bUnbuffered = false;
/* this linked list is an intrinsically globally shared object, so we have
to protect it with mutexes */
static tMPI_Thread_mutex_t pstack_mutex = TMPI_THREAD_MUTEX_INITIALIZER;
-void no_buffers(void)
+void gmx_disable_file_buffering(void)
{
- bUnbuffered = TRUE;
+ bUnbuffered = true;
}
void push_ps(FILE *fp)
}
-#ifdef rewind
-#undef rewind
-#endif
-
void frewind(FILE *fp)
{
tMPI_Thread_mutex_lock(&pstack_mutex);
#endif
}
-
-gmx_bool is_pipe(FILE *fp)
-{
- tMPI_Thread_mutex_lock(&pstack_mutex);
-
- t_pstack *ps = pstack;
- while (ps != NULL)
- {
- if (ps->fp == fp)
- {
- tMPI_Thread_mutex_unlock(&pstack_mutex);
- return TRUE;
- }
- ps = ps->prev;
- }
- tMPI_Thread_mutex_unlock(&pstack_mutex);
- return FALSE;
-}
-
-
static FILE *uncompress(const char *fn, const char *mode)
{
FILE *fp;
}
}
-
-gmx_bool gmx_fexist_master(const char *fname, t_commrec *cr)
-{
- gmx_bool bExist;
-
- if (SIMMASTER(cr))
- {
- bExist = gmx_fexist(fname);
- }
- if (PAR(cr))
- {
- gmx_bcast(sizeof(bExist), &bExist, cr);
- }
- return bExist;
-}
-
-gmx_bool gmx_eof(FILE *fp)
-{
- char data[4];
- gmx_bool beof;
-
- if (is_pipe(fp))
- {
- return feof(fp);
- }
- else
- {
- if ((beof = fread(data, 1, 1, fp)) == 1)
- {
- gmx_fseek(fp, -1, SEEK_CUR);
- }
- return !beof;
- }
-}
-
static char *backup_fn(const char *file, int count_max)
{
/* Use a reasonably low value for countmax; we might
/* name in Buf should now be OK */
}
-int gmx_truncatefile(char *path, gmx_off_t length)
-{
-#ifdef _MSC_VER
- /* Microsoft visual studio does not have "truncate" */
- HANDLE fh;
- LARGE_INTEGER win_length;
-
- win_length.QuadPart = length;
-
- fh = CreateFile(path, GENERIC_READ | GENERIC_WRITE, 0, NULL,
- OPEN_EXISTING, 0, NULL);
- SetFilePointerEx(fh, win_length, NULL, FILE_BEGIN);
- SetEndOfFile(fh);
- CloseHandle(fh);
-
- return 0;
-#else
- return truncate(path, length);
-#endif
-}
-
-
int gmx_file_rename(const char *oldname, const char *newname)
{
#ifndef GMX_NATIVE_WINDOWS
rc = fah_fsync(fp);
#else /* GMX_FAHCORE */
{
- int fn = -1;
+ int fn;
/* get the file number */
#if defined(HAVE_FILENO)
fn = fileno(fp);
#elif defined(HAVE__FILENO)
fn = _fileno(fp);
+#else
+ fn = -1;
#endif
/* do the actual fsync */
--- /dev/null
+/*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+ * 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
+ * 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.
+ *
+ * GROMACS is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1
+ * of the License, or (at your option) any later version.
+ *
+ * GROMACS is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with GROMACS; if not, see
+ * http://www.gnu.org/licenses, or write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * If you want to redistribute modifications to GROMACS, 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 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
+ * \brief
+ * Low-level wrappers for OS-specific file handling with some \Gromacs
+ * customizations.
+ *
+ * \inpublicapi
+ * \ingroup module_utility
+ */
+#ifndef GMX_UTILITY_FUTIL_H
+#define GMX_UTILITY_FUTIL_H
+
+#include <limits.h>
+#include <stdio.h>
+
+#include "basedefinitions.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#if 0
+}
+#endif
+
+#include "gmx_header_config.h"
+/*! \def DIR_SEPARATOR
+ * \brief
+ * Directory separator on this OS.
+ *
+ * Native Windows uses backslash path separators (but accepts also slashes).
+ * Cygwin and most other systems use slash.
+ *
+ * \todo
+ * Get rid of this (Redmine #950), or at least remove this from an installed
+ * header. It is not necessary for constructing paths on the systems that it
+ * currently supports, and is not reliable in parsing input paths either, since
+ * Windows needs to accept both instead of only DIR_SEPARATOR.
+ */
+#ifdef GMX_NATIVE_WINDOWS
+#define DIR_SEPARATOR '\\'
+#else
+#define DIR_SEPARATOR '/'
+#endif
+
+/*! \def GMX_PATH_MAX
+ * \brief
+ * Maximum path length, if the OS provides one, otherwise a fixed constant.
+ */
+#ifdef PATH_MAX
+# define GMX_PATH_MAX PATH_MAX
+#elif defined MAX_PATH
+# define GMX_PATH_MAX MAX_PATH
+#else
+# define GMX_PATH_MAX 4096
+#endif
+
+/** \Gromacs definition to use instead of `off_t`. */
+typedef gmx_int64_t gmx_off_t;
+
+/*! \brief
+ * Turn off buffering for output files (which is default) for debugging
+ * purposes.
+ *
+ * This only has effect on files opened with gmx_ffopen().
+ */
+void gmx_disable_file_buffering(void);
+
+/*! \brief
+ * Check whether a path exists.
+ *
+ * \returns `TRUE` when \p fname exists.
+ *
+ * Note that this returns `TRUE` even if \p fname is a directory instead of a
+ * file.
+ */
+gmx_bool gmx_fexist(const char *fname);
+
+/*! \brief
+ * Makes a backup of file if the file exists.
+ *
+ * \returns `FALSE` if there was a problem.
+ */
+gmx_bool make_backup(const char *file);
+
+/*! \brief
+ * Opens a file, with \Gromacs-specific additions.
+ *
+ * If the file is in compressed format, opens a pipe which uncompresses the
+ * file on the fly. For this to work, gmx_ffclose() and frewind() should
+ * always be used for files opened with gmx_ffopen() instead of fclose() and
+ * rewind(). For compressed files, the \p file parameter should be passed
+ * without the compressed extension; if that file is not found, then a few
+ * compression extensions are tried.
+ * Creates a backup if a file opened for writing already exists before
+ * overwriting it.
+ * A fatal error results if the file cannot be opened, for whatever reason.
+ */
+FILE *gmx_ffopen(const char *file, const char *mode);
+
+/** Closes a file opened with gmx_ffopen(). */
+int gmx_ffclose(FILE *fp);
+
+/*! \brief
+ * Wraps rewind() for files opened with gmx_ffopen().
+ *
+ * A fatal error results if this function is called for a pipe (a compressed
+ * input file).
+ */
+void frewind(FILE *fp);
+
+/** OS-independent 64-bit fseek(). */
+int gmx_fseek(FILE *stream, gmx_off_t offset, int whence);
+
+/** OS-independent 64-bit ftell(). */
+gmx_off_t gmx_ftell(FILE *stream);
+
+/*! \brief
+ * Finds full path for a library file.
+ *
+ * Searches first in the current directory, and then in the configured library
+ * directories.
+ * Fatal error results if the file is not found in any location.
+ * The caller is responsible of freeing the returned string.
+ */
+char *gmxlibfn(const char *file);
+
+/*! \brief
+ * Opens a library file for reading.
+ *
+ * Works as gmxlibfn(), except that it opens the file and returns a file
+ * handle.
+ */
+FILE *libopen(const char *file);
+
+/*! \brief
+ * More flexible gmxlibfn().
+ *
+ * Works as gmxlibfn(), but provides control whether the current working
+ * directory is searched or not, and whether a missing file is a fatal error or
+ * not.
+ */
+char *low_gmxlibfn(const char *file, gmx_bool bAddCWD, gmx_bool bFatal);
+
+/*! \brief
+ * Alternative for libopen() that optionally does not exit.
+ *
+ * Works as libopen(), but provides control whether a missing file is a fatal
+ * error or not.
+ */
+FILE *low_libopen(const char *file, gmx_bool bFatal);
+
+/** Opaque data type to list directories. */
+typedef struct gmx_directory *gmx_directory_t;
+
+/*! \brief
+ * Opens a directory for reading.
+ *
+ * \param[out] p_gmxdir Handle to the opened directory.
+ * \param[in] dirname Path to directory to open.
+ * \returns 0 on success.
+ */
+int
+gmx_directory_open(gmx_directory_t *p_gmxdir, const char *dirname);
+
+/*! \brief
+ * Gets next file in a directory.
+ *
+ * Given an initialized gmx_directory_t, if there are more files in
+ * the directory this routine returns 0 and write the next name
+ * into the USER-PROVIDED buffer \p name. The last argument is the max
+ * number of characters that will be written. Just as strncpy(), the
+ * string will NOT be terminated it it is longer than \p maxlength_name.
+ */
+int
+gmx_directory_nextfile(gmx_directory_t gmxdir, char *name, int maxlength_name);
+
+/** Releases all data for a directory structure. */
+int
+gmx_directory_close(gmx_directory_t gmxdir);
+
+
+/*! \brief
+ * Creates unique name for temp file (wrapper around mkstemp).
+ *
+ * \p buf should be at least 7 bytes long
+ */
+void gmx_tmpnam(char *buf);
+
+/*! \brief
+ * OS-independent rename().
+ *
+ * Renames/moves a file atomically, if the OS makes that available.
+ */
+int gmx_file_rename(const char *oldname, const char *newname);
+
+/*! \brief
+ * Copies a file (data only) oldname to newname.
+ *
+ * If \p copy_if_empty is `FALSE`, the file won't be copied if it's empty.
+ */
+int gmx_file_copy(const char *oldname, const char *newname, gmx_bool copy_if_empty);
+
+/*! \brief
+ * OS-independent fsync().
+ *
+ * Only use this during checkpointing!
+ */
+int gmx_fsync(FILE *fp);
+
+/*! \brief
+ * OS-independent chdir().
+ *
+ * Exits with a fatal error if changing the directory fails.
+ */
+void gmx_chdir(const char *directory);
+/*! \brief
+ * OS-independent getcwd().
+ *
+ * Exits with a fatal error if the call fails.
+ */
+void gmx_getcwd(char *buffer, size_t size);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012, by the GROMACS development team, led by
+ * Copyright (c) 2012,2014, 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.
* \brief
* Include file for configuration macros that affect installed headers.
*
- * This include file (or rather, one that it includes) will configured by CMake
- * and installed with GROMACS header files so that they can refer to a central
- * location for \#defines that will be available for builds of projects that
- * depend on GROMACS.
- *
- * The actual defines are in gmx_header_config_gen.h to allow usage of relative
- * include paths before installation.
+ * This include file will be installed with GROMACS header files so that they
+ * can refer to a central location for \#defines that will be available for
+ * builds of projects that depend on GROMACS.
*
* \todo
- * It would be better to have the defines here such that they are not generated
- * from CMake, but instead detected using \#ifdefs (possible for some of the
- * macros currently used).
- * Even better would be to not have these defines at all.
+ * It would be better to not have these defines at all in installed headers.
*
* \inlibraryapi
* \ingroup module_utility
*/
-#include "gmx_header_config_gen.h"
+
+/* We currently don't support MingW. And ICC also defines it */
+#ifdef _MSC_VER
+#define GMX_NATIVE_WINDOWS
+#endif
+++ /dev/null
-/*
- * This file is part of the GROMACS molecular simulation package.
- *
- * Copyright (c) 2012,2014, 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.
- *
- * GROMACS is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1
- * of the License, or (at your option) any later version.
- *
- * GROMACS is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with GROMACS; if not, see
- * http://www.gnu.org/licenses, or write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * If you want to redistribute modifications to GROMACS, 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 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
- * \brief
- * Generated include file for configuration macros that affect installed
- * headers.
- *
- * This include file will configured by CMake and installed with GROMACS
- * header files so that they can refer to a central location for \#defines that
- * will be available for builds of projects that depend on GROMACS.
- *
- * gmx_header_config.h should be included instead of this file to allow usage
- * of relative install paths.
- *
- * \inlibraryapi
- * \ingroup module_utility
- */
-
-#ifdef __CYGWIN__
-#define GMX_CYGWIN
-#endif
-
-/* We currently don't support MingW. And ICC also defines it */
-#ifdef _MSC_VER
-#define GMX_NATIVE_WINDOWS
-#endif
-
-/** Define if we have sufficient C++11 support */
-#cmakedefine GMX_CXX11
#ifndef GMX_UTILITY_GMXMPI_H
#define GMX_UTILITY_GMXMPI_H
-#ifdef HAVE_CONFIG_H
#include "config.h"
-#endif
/*! \cond */
#ifdef GMX_LIB_MPI
#include "config.h"
#include <stdio.h>
+#include <stdlib.h>
#ifdef GMX_OPENMP
#include <omp.h>
#endif
-#include "gromacs/legacyheaders/copyrite.h"
-#include "gromacs/legacyheaders/gmx_fatal.h"
-#include "gromacs/legacyheaders/md_logging.h"
-
#include "gromacs/utility/common.h"
#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/exceptions.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/programcontext.h"
+#include "gromacs/utility/stringutil.h"
int gmx_omp_get_max_threads(void)
{
#endif
}
-/*!
- * Thread affinity set by the OpenMP library can conflict with the GROMACS
- * internal affinity setting.
- *
- * While GNU OpenMP does not set affinity by default, the Intel OpenMP library
- * does. This conflicts with the internal affinity (especially thread-MPI)
- * setting, results in incorrectly locked threads, and causes dreadful performance.
- *
- * The KMP_AFFINITY environment variable is used by Intel, GOMP_CPU_AFFINITY
- * by the GNU compilers (Intel also honors it well). If any of the variables
- * is set, we honor it, disable the internal pinning, and warn the user.
- * When using Intel OpenMP, we will disable affinity if the user did not set it
- * anually through one of the aforementioned environment variables.
- *
- * Note that the Intel OpenMP affinity disabling iwll only take effect if this
- * function is called before the OpenMP library gets initialized which happens
- * when the first call is made into a compilation unit that contains OpenMP
- * pragmas.
- */
-void gmx_omp_check_thread_affinity(FILE *fplog,
- const t_commrec *cr,
- gmx_hw_opt_t *hw_opt)
+gmx_bool gmx_omp_check_thread_affinity(char **message)
{
- /* no need to worry if internal thread pinning is turned off */
- if (hw_opt->thread_affinity == threadaffOFF)
- {
- return;
- }
+ bool shouldSetAffinity = true;
-#ifndef GMX_OPENMP
- GMX_UNUSED_VALUE(fplog);
- GMX_UNUSED_VALUE(cr);
-#else
+ *message = NULL;
+#ifdef GMX_OPENMP
/* We assume that the affinity setting is available on all platforms
* gcc supports. Even if this is not the case (e.g. Mac OS) the user
* will only get a warning. */
#if defined(__GNUC__) || defined(__INTEL_COMPILER)
+ const char *programName;
+ try
+ {
+ programName = gmx::getProgramContext().displayName();
+ }
+ GMX_CATCH_ALL_AND_EXIT_WITH_FATAL_ERROR;
+
const char *const gomp_env = getenv("GOMP_CPU_AFFINITY");
const bool bGompCpuAffinitySet = (gomp_env != NULL);
/* turn off internal pinning if GOMP_CPU_AFFINITY is set & non-empty */
if (bGompCpuAffinitySet && *gomp_env != '\0')
{
- /* TODO: with -pin auto we should only warn when using all cores */
- md_print_warn(cr, fplog,
- "NOTE: GOMP_CPU_AFFINITY set, will turn off %s internal affinity\n"
- " setting as the two can conflict and cause performance degradation.\n"
- " To keep using the %s internal affinity setting, unset the\n"
- " GOMP_CPU_AFFINITY environment variable.",
- ShortProgram(), ShortProgram());
-
- hw_opt->thread_affinity = threadaffOFF;
+ try
+ {
+ std::string buf = gmx::formatString(
+ "NOTE: GOMP_CPU_AFFINITY set, will turn off %s internal affinity\n"
+ " setting as the two can conflict and cause performance degradation.\n"
+ " To keep using the %s internal affinity setting, unset the\n"
+ " GOMP_CPU_AFFINITY environment variable.",
+ programName, programName);
+ *message = gmx_strdup(buf.c_str());
+ }
+ GMX_CATCH_ALL_AND_EXIT_WITH_FATAL_ERROR;
+ shouldSetAffinity = false;
}
#endif /* __GNUC__ || __INTEL_COMPILER */
/* turn off internal pinning KMP_AFFINITY != "disabled" */
if (bKmpAffinitySet && (gmx_strncasecmp(kmp_env, "disabled", 8) != 0))
{
- /* TODO: with -pin auto we should only warn when using all cores */
- md_print_warn(cr, fplog,
- "NOTE: KMP_AFFINITY set, will turn off %s internal affinity\n"
- " setting as the two can conflict and cause performance degradation.\n"
- " To keep using the %s internal affinity setting, set the\n"
- " KMP_AFFINITY=disabled environment variable.",
- ShortProgram(), ShortProgram());
-
- hw_opt->thread_affinity = threadaffOFF;
+ try
+ {
+ std::string buf = gmx::formatString(
+ "NOTE: KMP_AFFINITY set, will turn off %s internal affinity\n"
+ " setting as the two can conflict and cause performance degradation.\n"
+ " To keep using the %s internal affinity setting, set the\n"
+ " KMP_AFFINITY=disabled environment variable.",
+ programName, programName);
+ *message = gmx_strdup(buf.c_str());
+ }
+ GMX_CATCH_ALL_AND_EXIT_WITH_FATAL_ERROR;
+ shouldSetAffinity = false;
}
#endif /* __INTEL_COMPILER */
#endif /* GMX_OPENMP */
+ return shouldSetAffinity;
}
#ifndef GMX_UTILITY_OMP_H
#define GMX_UTILITY_OMP_H
-#ifdef HAVE_CONFIG_H
#include "config.h"
-#endif
+
+#include <stdio.h>
#ifndef GMX_NATIVE_WINDOWS
/* Ugly hack because the openmp implementation below hacks into the SIMD
#include <windows.h>
#endif
-#include "types/commrec.h"
-#include "mdrun.h"
+#include "basedefinitions.h"
#ifdef __cplusplus
extern "C"
/*! \brief
* Check for externally set thread affinity to avoid conflicts with \Gromacs
* internal setting.
+ *
+ * \param[out] message Receives the message to be shown to the user.
+ * \returns `true` if we can set thread affinity ourselves.
+ *
+ * While GNU OpenMP does not set affinity by default, the Intel OpenMP library
+ * does. This conflicts with the internal affinity (especially thread-MPI)
+ * setting, results in incorrectly locked threads, and causes dreadful performance.
+ *
+ * The KMP_AFFINITY environment variable is used by Intel, GOMP_CPU_AFFINITY
+ * by the GNU compilers (Intel also honors it well). If any of the variables
+ * is set, we should honor it and disable the internal pinning.
+ * When using Intel OpenMP, we will disable affinity if the user did not set it
+ * manually through one of the aforementioned environment variables.
+ *
+ * Note that the Intel OpenMP affinity disabling will only take effect if this
+ * function is called before the OpenMP library gets initialized, which happens
+ * when the first call is made into a compilation unit that contains OpenMP
+ * pragmas.
+ *
+ * If this function returns `false`, the caller is responsible to disable the
+ * pinning, show the message from \p *message to the user, and free the memory
+ * allocated for \p *message.
+ * If the return value is `true`, \p *message is NULL.
*/
-void gmx_omp_check_thread_affinity(FILE *fplog, const t_commrec *cr,
- gmx_hw_opt_t *hw_opt);
+gmx_bool gmx_omp_check_thread_affinity(char **message);
/*! \brief
* Pause for use in a spin-wait loop.
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012, by the GROMACS development team, led by
+ * Copyright (c) 2012,2014, 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 "gmxregex.h"
-#ifdef HAVE_CONFIG_H
#include "config.h"
-#endif
#if defined(HAVE_POSIX_REGEX)
// old Mac needs sys/types.h before regex.h
*/
#include "gromacs/utility/init.h"
-#ifdef HAVE_CONFIG_H
#include "config.h"
-#endif
#ifdef GMX_LIB_MPI
#include "gromacs/utility/gmxmpi.h"
* Implements functions in path.h.
*
* \author Teemu Murtola <teemu.murtola@gmail.com>
- * \ingroup module_fileio
+ * \ingroup module_utility
*/
#include "path.h"
#endif
#endif
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/utility/stringutil.h"
namespace
return path.substr(pos+1);
}
+std::string Path::stripExtension(const std::string &path)
+{
+ size_t dirSeparatorPos = path.find_last_of(cDirSeparators);
+ size_t extPos = path.find_last_of('.');
+ if (extPos == std::string::npos
+ || (dirSeparatorPos != std::string::npos && extPos < dirSeparatorPos))
+ {
+ return path;
+ }
+ return path.substr(0, extPos);
+}
+
std::string Path::normalize(const std::string &path)
{
std::string result(path);
*
* \author Teemu Murtola <teemu.murtola@gmail.com>
* \inlibraryapi
- * \ingroup module_fileio
+ * \ingroup module_utility
*/
-#ifndef GMX_FILEIO_PATH_H
-#define GMX_FILEIO_PATH_H
+#ifndef GMX_UTILITY_PATH_H
+#define GMX_UTILITY_PATH_H
#include <string>
#include <utility>
static std::string normalize(const std::string &path);
static std::string getParentPath(const std::string &path);
static std::string getFilename(const std::string &path);
+ static std::string stripExtension(const std::string &path);
static bool exists(const char *path);
static bool exists(const std::string &path);
--- /dev/null
+/*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+ * 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
+ * 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.
+ *
+ * GROMACS is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1
+ * of the License, or (at your option) any later version.
+ *
+ * GROMACS is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with GROMACS; if not, see
+ * http://www.gnu.org/licenses, or write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * If you want to redistribute modifications to GROMACS, 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 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
+ * \brief
+ * Declares `real` and related constants.
+ *
+ * \inpublicapi
+ * \ingroup module_utility
+ */
+#ifndef GMX_UTILITY_REAL_H
+#define GMX_UTILITY_REAL_H
+
+/*! \brief Double precision accuracy */
+#define GMX_DOUBLE_EPS 2.2204460492503131e-16
+
+/*! \brief Maximum double precision value - reduced 1 unit in last digit for MSVC */
+#define GMX_DOUBLE_MAX 1.7976931348623157e+308
+
+/*! \brief Minimum double precision value */
+#define GMX_DOUBLE_MIN 2.2250738585072014e-308
+
+/*! \brief Single precision accuracy */
+#define GMX_FLOAT_EPS 1.19209290e-07F
+
+/*! \brief Maximum single precision value - reduced 1 unit in last digit for MSVC */
+#define GMX_FLOAT_MAX 3.40282346E+38F
+
+/*! \brief Minimum single precision value */
+#define GMX_FLOAT_MIN 1.175494351E-38F
+
+
+/*! \typedef real
+ * \brief Precision-dependent \Gromacs floating-point type.
+ */
+/*! \def HAVE_REAL
+ * \brief Used to check whether `real` is already defined.
+ */
+/*! \def GMX_MPI_REAL
+ * \brief MPI data type for `real`.
+ */
+/*! \def GMX_REAL_EPS
+ * \brief Accuracy for `real`.
+ */
+/*! \def GMX_REAL_MIN
+ * \brief Smallest non-zero value for `real`.
+ */
+/*! \def GMX_REAL_MAX
+ * \brief Largest finite value for `real`.
+ */
+/*! \def gmx_real_fullprecision_pfmt
+ * \brief Format string for full `real` precision.
+ */
+#ifdef GMX_DOUBLE
+
+#ifndef HAVE_REAL
+typedef double real;
+#define HAVE_REAL
+#endif
+
+#define GMX_MPI_REAL MPI_DOUBLE
+#define GMX_REAL_EPS GMX_DOUBLE_EPS
+#define GMX_REAL_MIN GMX_DOUBLE_MIN
+#define GMX_REAL_MAX GMX_DOUBLE_MAX
+#define gmx_real_fullprecision_pfmt "%21.14e"
+
+#else /* GMX_DOUBLE */
+
+#ifndef HAVE_REAL
+typedef float real;
+#define HAVE_REAL
+#endif
+
+#define GMX_MPI_REAL MPI_FLOAT
+#define GMX_REAL_EPS GMX_FLOAT_EPS
+#define GMX_REAL_MIN GMX_FLOAT_MIN
+#define GMX_REAL_MAX GMX_FLOAT_MAX
+#define gmx_real_fullprecision_pfmt "%14.7e"
+
+#endif /* GMX_DOUBLE */
+
+#endif
*/
#include "gromacs/utility/smalloc.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <errno.h>
#include <stdio.h>
#include <dmalloc.h>
#endif
-#include "gromacs/legacyheaders/gmx_fatal.h"
+#include "thread_mpi/threads.h"
+#include "gromacs/utility/fatalerror.h"
#ifdef PRINT_ALLOC_KB
#include "gromacs/utility/gmxmpi.h"
#endif
-#ifdef DEBUG
-#include "thread_mpi/threads.h"
+static gmx_bool g_bOverAllocDD = FALSE;
+static tMPI_Thread_mutex_t g_over_alloc_mutex = TMPI_THREAD_MUTEX_INITIALIZER;
+#ifdef DEBUG
static void log_action(int bMal, const char *what, const char *file, int line,
int nelem, int size, void *ptr)
{
}
#endif
- allocate_fail = FALSE; /* stop compiler warnings */
#ifdef HAVE_POSIX_MEMALIGN
allocate_fail = (0 != posix_memalign(&malloced, alignment, nelem*elsize));
#elif defined HAVE_MEMALIGN
#endif
}
}
+
+void set_over_alloc_dd(gmx_bool set)
+{
+ tMPI_Thread_mutex_lock(&g_over_alloc_mutex);
+ /* we just make sure that we don't set this at the same time.
+ We don't worry too much about reading this rarely-set variable */
+ g_bOverAllocDD = set;
+ tMPI_Thread_mutex_unlock(&g_over_alloc_mutex);
+}
+
+int over_alloc_dd(int n)
+{
+ if (g_bOverAllocDD)
+ {
+ return OVER_ALLOC_FAC*n + 100;
+ }
+ else
+ {
+ return n;
+ }
+}
#include <stddef.h>
+#include "basedefinitions.h"
+
#ifdef __cplusplus
extern "C" {
#endif
#endif
+#ifdef __cplusplus
+extern "C" {
+#endif
+
/*! \brief
* Frees memory referenced by \p ptr.
*
*/
#define sfree_aligned(ptr) save_free_aligned(#ptr, __FILE__, __LINE__, (ptr))
+/*! \brief
+ * Over allocation factor for memory allocations.
+ *
+ * Memory (re)allocation can be VERY slow, especially with some
+ * MPI libraries that replace the standard malloc and realloc calls.
+ * To avoid slow memory allocation we use over_alloc to set the memory
+ * allocation size for large data blocks. Since this scales the size
+ * with a factor, we use log(n) realloc calls instead of n.
+ * This can reduce allocation times from minutes to seconds.
+ *
+ * This factor leads to 4 realloc calls to double the array size.
+ */
+#define OVER_ALLOC_FAC 1.19
+
+/*! \brief
+ * Turns over allocation for variable size atoms/cg/top arrays on or off,
+ * default is off.
+ *
+ * \todo
+ * This is mdrun-specific, so it might be better to put this and
+ * over_alloc_dd() much higher up.
+ */
+void set_over_alloc_dd(gmx_bool set);
+
+/*! \brief
+ * Returns new allocation count for domain decomposition allocations.
+ *
+ * Returns n when domain decomposition over allocation is off.
+ * Returns OVER_ALLOC_FAC*n + 100 when over allocation in on.
+ * This is to avoid frequent reallocation during domain decomposition in mdrun.
+ */
+int over_alloc_dd(int n);
+
+/** Over allocation for small data types: int, real etc. */
+#define over_alloc_small(n) (int)(OVER_ALLOC_FAC*(n) + 8000)
+
+/** Over allocation for large data types: complex structs */
+#define over_alloc_large(n) (int)(OVER_ALLOC_FAC*(n) + 1000)
+
+#ifdef __cplusplus
+}
+#endif
+
#endif
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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
+/*! \libinternal \file
* \brief
* Declares gmx::gmx_unique_ptr and supporting functionality.
*
#ifndef GMX_UTILITY_UNIQUEPTR_H
#define GMX_UTILITY_UNIQUEPTR_H
-#include "gmx_header_config.h"
+#include "config.h"
#ifdef GMX_CXX11 // C++11 Compiler
#include <memory>
namespace gmx
{
-/*! \class gmx_unique_ptr
+//! \cond libapi
+/*! \libinternal \class gmx_unique_ptr
* \brief
* Smart pointer for unique ownership.
*
* \ingroup module_utility
* \inlibraryapi
*/
-/*! \typedef gmx_unique_ptr::type
+/*! \libinternal \typedef gmx_unique_ptr::type
* \brief The smart pointer type.
* Work-around for the non-existence of template typedefs in C++03.
*/
typedef boost::shared_ptr<T> type;
};
#endif
+//! \endcond
} // namespace gmx
* For 4.6 and 5.0 (and likely for some time in the future as well), this
* tracks the exact \Gromacs version.
*/
-#define GMX_API_VERSION @API_VERSION@
+#define GMX_API_VERSION @GMX_API_VERSION@
/*! \brief
* Exact \Gromacs version of this set of headers.
* This specifies the version number of the actual \Gromacs library that
* installed these headers.
*/
-#define GMX_VERSION @NUM_VERSION@
+#define GMX_VERSION @GMX_VERSION_NUMERIC@
#endif
*/
#include "gromacs/commandline/cmdlinemodulemanager.h"
#include "gromacs/commandline/cmdlineinit.h"
-#include "gromacs/selection/selectioncollection.h"
+#include "gromacs/selection/selhelp.h"
#include "gromacs/trajectoryanalysis/modules.h"
#include "gromacs/utility/exceptions.h"
gmx::CommandLineModuleManager manager("gmx", &context);
registerTrajectoryAnalysisModules(&manager);
registerLegacyModules(&manager);
- manager.addHelpTopic(gmx::SelectionCollection::createDefaultHelpTopic());
+ manager.addHelpTopic(gmx::createSelectionHelpTopic());
int rc = manager.run(argc, argv);
gmx::finalizeForCommandLine();
return rc;
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
+
+#include <stdlib.h>
#include "typedefs.h"
-#include "gromacs/utility/smalloc.h"
-#include "sysstuff.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "vcm.h"
#include "mdebin.h"
#include "nrnb.h"
#include "calcmu.h"
-#include "index.h"
#include "vsite.h"
#include "update.h"
#include "ns.h"
#include "md_support.h"
#include "md_logging.h"
#include "network.h"
-#include "xvgr.h"
-#include "physics.h"
#include "names.h"
#include "force.h"
#include "disre.h"
#include "qmmm.h"
#include "domdec.h"
#include "domdec_network.h"
-#include "gromacs/gmxlib/topsort.h"
#include "coulomb.h"
#include "constr.h"
#include "shellfc.h"
#include "gromacs/gmxpreprocess/compute_io.h"
#include "checkpoint.h"
-#include "mtop_util.h"
+#include "gromacs/topology/mtop_util.h"
#include "sighandler.h"
#include "txtdump.h"
#include "gromacs/utility/cstringutil.h"
#include "membed.h"
#include "types/nlistheuristics.h"
#include "types/iteratedconstraints.h"
-#include "nbnxn_cuda_data_mgmt.h"
+#include "gromacs/mdlib/nbnxn_cuda/nbnxn_cuda_data_mgmt.h"
-#include "gromacs/utility/gmxmpi.h"
#include "gromacs/fileio/confio.h"
+#include "gromacs/fileio/mdoutf.h"
#include "gromacs/fileio/trajectory_writing.h"
#include "gromacs/fileio/trnio.h"
#include "gromacs/fileio/trxio.h"
#include "gromacs/fileio/xtcio.h"
-#include "gromacs/timing/wallcycle.h"
-#include "gromacs/timing/walltime_accounting.h"
+#include "gromacs/imd/imd.h"
+#include "gromacs/pbcutil/mshift.h"
+#include "gromacs/pbcutil/pbc.h"
#include "gromacs/pulling/pull.h"
#include "gromacs/swap/swapcoords.h"
-#include "gromacs/imd/imd.h"
+#include "gromacs/timing/wallcycle.h"
+#include "gromacs/timing/walltime_accounting.h"
+#include "gromacs/utility/gmxmpi.h"
+#include "gromacs/utility/smalloc.h"
#ifdef GMX_FAHCORE
#include "corewrap.h"
gmx_int64_t *step_rel, t_inputrec *ir,
gmx_wallcycle_t wcycle, t_nrnb *nrnb,
gmx_walltime_accounting_t walltime_accounting,
- nbnxn_cuda_ptr_t cu_nbv)
+ struct nonbonded_verlet_t *nbv)
{
char sbuf[STEPSTRSIZE];
md_print_warn(cr, fplog, "step %s: resetting all time and cycle counters\n",
gmx_step_str(step, sbuf));
- if (cu_nbv)
- {
- nbnxn_cuda_reset_timings(cu_nbv);
- }
+ nbnxn_cuda_reset_timings(nbv);
wallcycle_stop(wcycle, ewcRUN);
wallcycle_reset_all(wcycle);
rvec mu_tot;
t_vcm *vcm;
t_state *bufstate = NULL;
- matrix *scale_tot, pcoupl_mu, M, ebox;
+ matrix pcoupl_mu, M;
gmx_nlheur_t nlh;
t_trxframe rerun_fr;
gmx_repl_ex_t repl_ex = NULL;
gmx_ekindata_t *ekind, *ekind_save;
gmx_shellfc_t shellfc;
int count, nconverged = 0;
- real timestep = 0;
- double tcount = 0;
- gmx_bool bConverged = TRUE, bOK, bSumEkinhOld, bDoReplEx, bExchanged, bNeedRepartition;
- gmx_bool bAppend;
+ double tcount = 0;
+ gmx_bool bConverged = TRUE, bSumEkinhOld, bDoReplEx, bExchanged, bNeedRepartition;
gmx_bool bResetCountersHalfMaxH = FALSE;
gmx_bool bVV, bIterativeCase, bFirstIterate, bTemp, bPres, bTrotter;
gmx_bool bUpdateDoLR;
double cycles;
real saved_conserved_quantity = 0;
real last_ekin = 0;
- int iter_i;
t_extmass MassQ;
int **trotter_seq;
char sbuf[STEPSTRSIZE], sbuf2[STEPSTRSIZE];
/* Check for special mdrun options */
bRerunMD = (Flags & MD_RERUN);
- bAppend = (Flags & MD_APPENDFILES);
if (Flags & MD_RESETCOUNTERSHALFWAY)
{
if (ir->nsteps > 0)
*/
if ((Flags & MD_TUNEPME) &&
EEL_PME(fr->eeltype) &&
- ( (fr->cutoff_scheme == ecutsVERLET && fr->nbv->bUseGPU) || !(cr->duty & DUTY_PME)) &&
+ ( use_GPU(fr->nbv) || !(cr->duty & DUTY_PME)) &&
!bRerunMD)
{
pme_loadbal_init(&pme_loadbal, ir, state->box, fr->ic, fr->pmedata);
bStateFromTPX = !bStateFromCP;
bInitStep = bFirstStep && (bStateFromTPX || bVV);
bStartingFromCpt = (Flags & MD_STARTFROMCPT) && bInitStep;
- bLastStep = FALSE;
bSumEkinhOld = FALSE;
- bDoReplEx = FALSE;
bExchanged = FALSE;
bNeedRepartition = FALSE;
step = ir->init_step;
step_rel = 0;
- if (ir->nstlist == -1)
- {
- init_nlistheuristics(&nlh, bGStatEveryStep, step);
- }
+ init_nlistheuristics(&nlh, bGStatEveryStep, step);
if (MULTISIM(cr) && (repl_ex_nst <= 0 ))
{
}
}
- bOK = TRUE;
if (!bRerunMD || rerun_fr.bV || bForceUpdate) /* Why is rerun_fr.bV here? Unclear. */
{
update_constraints(fplog, step, NULL, ir, ekind, mdatoms,
/* Correct the virial for multiple time stepping */
m_sub(shake_vir, fr->vir_twin_constr, shake_vir);
}
-
- if (!bOK)
- {
- gmx_fatal(FARGS, "Constraint error: Shake, Lincs or Settle could not solve the constrains");
- }
-
}
else if (graph)
{
*/
copy_mat(state->box, lastbox);
- bOK = TRUE;
dvdl_constr = 0;
if (!(bRerunMD && !rerun_fr.bV && !bForceUpdate))
FALSE, bCalcVir,
state->veta);
}
- if (!bOK)
- {
- gmx_fatal(FARGS, "Constraint error: Shake, Lincs or Settle could not solve the constrains");
- }
if (fr->bSepDVDL && fplog && do_log)
{
{
/* Reset all the counters related to performance over the run */
reset_all_counters(fplog, cr, step, &step_rel, ir, wcycle, nrnb, walltime_accounting,
- fr->nbv != NULL && fr->nbv->bUseGPU ? fr->nbv->cu_nbv : NULL);
+ use_GPU(fr->nbv) ? fr->nbv : NULL);
wcycle_set_reset_counters(wcycle, -1);
if (!(cr->duty & DUTY_PME))
{
if (pme_loadbal != NULL)
{
pme_loadbal_done(pme_loadbal, cr, fplog,
- fr->nbv != NULL && fr->nbv->bUseGPU);
+ use_GPU(fr->nbv));
}
if (shellfc && fplog)
*/
#include "mdrun_main.h"
-#ifdef HAVE_CONFIG_H
#include "config.h"
-#endif
#include <stdio.h>
+#include <string.h>
#include "gromacs/legacyheaders/checkpoint.h"
#include "gromacs/legacyheaders/copyrite.h"
-#include "gromacs/legacyheaders/gmx_fatal.h"
#include "gromacs/legacyheaders/macros.h"
#include "gromacs/legacyheaders/main.h"
#include "gromacs/legacyheaders/mdrun.h"
#include "gromacs/commandline/pargs.h"
#include "gromacs/fileio/filenm.h"
+#include "gromacs/utility/fatalerror.h"
+
+static bool is_multisim_option_set(int argc, const char *const argv[])
+{
+ for (int i = 0; i < argc; ++i)
+ {
+ if (strcmp(argv[i], "-multi") == 0 || strcmp(argv[i], "-multidir") == 0)
+ {
+ return true;
+ }
+ }
+ return false;
+}
int gmx_mdrun(int argc, char *argv[])
{
{ "-resethway", FALSE, etBOOL, {&bResetCountersHalfWay},
"HIDDENReset the cycle counters after half the number of steps or halfway [TT]-maxh[tt]" }
};
- unsigned long Flags, PCA_Flags;
+ unsigned long Flags;
ivec ddxyz;
int dd_node_order;
gmx_bool bAddPart;
int rc;
char **multidir = NULL;
-
cr = init_commrec();
- PCA_Flags = (PCA_CAN_SET_DEFFNM | (MASTER(cr) ? 0 : PCA_QUIET));
+ unsigned long PCA_Flags = PCA_CAN_SET_DEFFNM;
+ // With -multi or -multidir, the file names are going to get processed
+ // further (or the working directory changed), so we can't check for their
+ // existence during parsing. It isn't useful to do any completion based on
+ // file system contents, either.
+ if (is_multisim_option_set(argc, argv))
+ {
+ PCA_Flags |= PCA_DISABLE_INPUT_FILE_CHECKING;
+ }
/* Comment this in to do fexist calls only on master
* works not with rerun or tables at the moment
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <signal.h>
#include <stdlib.h>
#include "typedefs.h"
#include "types/commrec.h"
#include "gromacs/utility/smalloc.h"
-#include "sysstuff.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "macros.h"
-#include "main.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/essentialdynamics/edsam.h"
-#include "index.h"
-#include "physics.h"
+#include "gromacs/topology/index.h"
#include "names.h"
-#include "mtop_util.h"
+#include "gromacs/topology/mtop_util.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/utility/cstringutil.h"
#include "membed.h"
-#include "pbc.h"
+#include "gromacs/pbcutil/pbc.h"
#include "readinp.h"
#include "gromacs/gmxpreprocess/readir.h"
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012, by the GROMACS development team, led by
+ * Copyright (c) 2012,2014, 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 "typedefs.h"
#include "types/membedt.h"
+#include "gromacs/fileio/filenm.h"
#ifdef __cplusplus
extern "C" {
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
-#include "gromacs/utility/smalloc.h"
#include "types/commrec.h"
#include "network.h"
#include "calcgrid.h"
#include "pme.h"
-#include "vec.h"
#include "domdec.h"
-#include "nbnxn_cuda_data_mgmt.h"
+#include "gromacs/mdlib/nbnxn_cuda/nbnxn_cuda_data_mgmt.h"
#include "force.h"
#include "macros.h"
#include "md_logging.h"
#include "pme_loadbal.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/legacyheaders/sim_util.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/smalloc.h"
+
/* Parameters and setting for one PP-PME setup */
typedef struct {
real rcut_coulomb; /* Coulomb cut-off */
pme_lb->cur = pme_lb->start - 1;
}
-gmx_bool pme_load_balance(pme_load_balancing_t pme_lb,
- t_commrec *cr,
- FILE *fp_err,
- FILE *fp_log,
- t_inputrec *ir,
- t_state *state,
- double cycles,
- interaction_const_t *ic,
- nonbonded_verlet_t *nbv,
- gmx_pme_t *pmedata,
- gmx_int64_t step)
+gmx_bool pme_load_balance(pme_load_balancing_t pme_lb,
+ t_commrec *cr,
+ FILE *fp_err,
+ FILE *fp_log,
+ t_inputrec *ir,
+ t_state *state,
+ double cycles,
+ interaction_const_t *ic,
+ struct nonbonded_verlet_t *nbv,
+ gmx_pme_t *pmedata,
+ gmx_int64_t step)
{
gmx_bool OK;
pme_setup_t *set;
}
bUsesSimpleTables = uses_simple_tables(ir->cutoff_scheme, nbv, 0);
- if (pme_lb->cutoff_scheme == ecutsVERLET &&
- nbv->grp[0].kernel_type == nbnxnk8x8x8_CUDA)
- {
- nbnxn_cuda_pme_loadbal_update_param(nbv->cu_nbv, ic);
-
- /* With tMPI + GPUs some ranks may be sharing GPU(s) and therefore
- * also sharing texture references. To keep the code simple, we don't
- * treat texture references as shared resources, but this means that
- * the coulomb_tab texture ref will get updated by multiple threads.
- * Hence, to ensure that the non-bonded kernels don't start before all
- * texture binding operations are finished, we need to wait for all ranks
- * to arrive here before continuing.
- *
- * Note that we could omit this barrier if GPUs are not shared (or
- * texture objects are used), but as this is initialization code, there
- * is not point in complicating things.
- */
+ nbnxn_cuda_pme_loadbal_update_param(nbv, ic);
+
+ /* With tMPI + GPUs some ranks may be sharing GPU(s) and therefore
+ * also sharing texture references. To keep the code simple, we don't
+ * treat texture references as shared resources, but this means that
+ * the coulomb_tab texture ref will get updated by multiple threads.
+ * Hence, to ensure that the non-bonded kernels don't start before all
+ * texture binding operations are finished, we need to wait for all ranks
+ * to arrive here before continuing.
+ *
+ * Note that we could omit this barrier if GPUs are not shared (or
+ * texture objects are used), but as this is initialization code, there
+ * is not point in complicating things.
+ */
#ifdef GMX_THREAD_MPI
- if (PAR(cr))
- {
- gmx_barrier(cr);
- }
-#endif /* GMX_THREAD_MPI */
+ if (PAR(cr) && use_GPU(nbv))
+ {
+ gmx_barrier(cr);
}
+#endif /* GMX_THREAD_MPI */
/* Usually we won't need the simple tables with GPUs.
* But we do with hybrid acceleration and with free energy.
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, 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.
#ifndef _pme_loadbal_h
#define _pme_loadbal_h
+#ifdef __cplusplus
+extern "C" {
+#endif
+
typedef struct pme_load_balancing *pme_load_balancing_t;
/* Initialze the PP-PME load balacing data and infrastructure */
* factors as well as DD load balancing.
* Returns TRUE the load balancing continues, FALSE is the balancing is done.
*/
-gmx_bool pme_load_balance(pme_load_balancing_t pme_lb,
- t_commrec *cr,
- FILE *fp_err,
- FILE *fp_log,
- t_inputrec *ir,
- t_state *state,
- double cycles,
- interaction_const_t *ic,
- nonbonded_verlet_t *nbv,
- gmx_pme_t *pmedata,
- gmx_int64_t step);
+gmx_bool pme_load_balance(pme_load_balancing_t pme_lb,
+ t_commrec *cr,
+ FILE *fp_err,
+ FILE *fp_log,
+ t_inputrec *ir,
+ t_state *state,
+ double cycles,
+ interaction_const_t *ic,
+ struct nonbonded_verlet_t *nbv,
+ gmx_pme_t *pmedata,
+ gmx_int64_t step);
/* Restart the PME load balancing discarding all timings gathered up till now */
void restart_pme_loadbal(pme_load_balancing_t pme_lb, int n);
t_commrec *cr, FILE *fplog,
gmx_bool bNonBondedOnGPU);
+#ifdef __cplusplus
+}
+#endif
+
#endif /* _pme_loadbal_h */
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <math.h>
#include "repl_ex.h"
+
+#include "config.h"
+
+#include <math.h>
+
#include "network.h"
#include "gromacs/random/random.h"
#include "gromacs/utility/smalloc.h"
-#include "physics.h"
+#include "gromacs/math/units.h"
#include "copyrite.h"
-#include "macros.h"
-#include "vec.h"
+#include "gromacs/math/vec.h"
#include "names.h"
#include "domdec.h"
+#include "main.h"
#include "gromacs/random/random.h"
#define PROBABILITYCUTOFF 100
{
real *qall;
gmx_bool bDiff;
- int i, s;
+ int s;
snew(qall, ms->nsim);
qall[re->repl] = q;
const t_inputrec *ir,
int nst, int nex, int init_seed)
{
- real temp, pres;
+ real pres;
int i, j, k;
struct gmx_repl_ex *re;
gmx_bool bTemp;
real time)
{
int m, i, j, a, b, ap, bp, i0, i1, tmp;
- real ediff = 0, delta = 0, dpV = 0;
+ real delta = 0;
gmx_bool bPrint, bMultiEx;
gmx_bool *bEx = re->bEx;
real *prob = re->prob;
gmx_bool bEpot = FALSE;
gmx_bool bDLambda = FALSE;
gmx_bool bVol = FALSE;
- gmx_rng_t rng;
bMultiEx = (re->nex > 1); /* multiple exchanges at each state */
- fprintf(fplog, "Replica exchange at step " "%"GMX_PRId64 " time %.5f\n", step, time);
+ fprintf(fplog, "Replica exchange at step %" GMX_PRId64 " time %.5f\n", step, time);
if (re->bNPT)
{
t_state *state, gmx_enerdata_t *enerd,
t_state *state_local, gmx_int64_t step, real time)
{
- int i, j;
+ int j;
int replica_id = 0;
int exchange_partner;
int maxswap = 0;
#include "typedefs.h"
#include "types/commrec.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
/* Abstract type for replica exchange */
typedef struct gmx_repl_ex *gmx_repl_ex_t;
extern void print_replica_exchange_statistics(FILE *fplog, gmx_repl_ex_t re);
/* Should only be called on the master nodes */
+#ifdef __cplusplus
+}
+#endif
+
#endif /* _repl_ex_h */
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+
+#include "config.h"
+
+#include <algorithm>
+
+#include <assert.h>
#include <signal.h>
#include <stdlib.h>
+#include <string.h>
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
-#include <string.h>
-#include <assert.h>
#include "typedefs.h"
-#include "gromacs/utility/smalloc.h"
-#include "sysstuff.h"
-#include "copyrite.h"
+#include "oenv.h"
#include "force.h"
#include "mdrun.h"
#include "md_logging.h"
#include "constr.h"
#include "mvdata.h"
#include "checkpoint.h"
-#include "mtop_util.h"
+#include "gromacs/topology/mtop_util.h"
#include "sighandler.h"
#include "txtdump.h"
#include "gmx_detect_hardware.h"
#include "gmx_omp_nthreads.h"
#include "gromacs/gmxpreprocess/calc_verletbuf.h"
-#include "gmx_fatal_collective.h"
#include "membed.h"
-#include "macros.h"
#include "gmx_thread_affinity.h"
#include "inputrec.h"
+#include "main.h"
+#include "gromacs/essentialdynamics/edsam.h"
#include "gromacs/fileio/tpxio.h"
+#include "gromacs/math/vec.h"
#include "gromacs/mdlib/nbnxn_search.h"
#include "gromacs/mdlib/nbnxn_consts.h"
-#include "gromacs/timing/wallcycle.h"
-#include "gromacs/utility/gmxmpi.h"
-#include "gromacs/utility/gmxomp.h"
-#include "gromacs/swap/swapcoords.h"
-#include "gromacs/essentialdynamics/edsam.h"
+#include "gromacs/pbcutil/pbc.h"
#include "gromacs/pulling/pull.h"
#include "gromacs/pulling/pull_rotation.h"
+#include "gromacs/swap/swapcoords.h"
+#include "gromacs/timing/wallcycle.h"
+#include "gromacs/utility/gmxassert.h"
+#include "gromacs/utility/gmxmpi.h"
+#include "gromacs/utility/smalloc.h"
#ifdef GMX_FAHCORE
#include "corewrap.h"
#endif
#include "gpu_utils.h"
-#include "nbnxn_cuda_data_mgmt.h"
typedef struct {
gmx_integrator_t *func;
else if (hw_opt->nthreads_omp > 0)
{
/* Here we could oversubscribe, when we do, we issue a warning later */
- nthreads_tmpi = max(1, nthreads_tot/hw_opt->nthreads_omp);
+ nthreads_tmpi = std::max(1, nthreads_tot/hw_opt->nthreads_omp);
}
else
{
const int nthreads_omp_always_faster = 4;
const int nthreads_omp_always_faster_Nehalem = 12;
const int nthreads_omp_always_faster_SandyBridge = 16;
- const int first_model_Nehalem = 0x1A;
- const int first_model_SandyBridge = 0x2A;
gmx_bool bIntel_Family6;
bIntel_Family6 =
{
int nthreads_hw, nthreads_tot_max, nthreads_tmpi, nthreads_new, ngpu;
int min_atoms_per_mpi_thread;
- char *env;
- char sbuf[STRLEN];
gmx_bool bCanUseGPU;
if (hw_opt->nthreads_tmpi > 0)
{
/* the thread number was chosen automatically, but there are too many
threads (too few atoms per thread) */
- nthreads_new = max(1, mtop->natoms/min_atoms_per_mpi_thread);
+ nthreads_new = std::max(1, mtop->natoms/min_atoms_per_mpi_thread);
/* Avoid partial use of Hyper-Threading */
if (gmx_cpuid_x86_smt(hwinfo->cpuid_info) == GMX_CPUID_X86_SMT_ENABLED &&
/* We determine the extra cost of the non-bonded kernels compared to
* a reference nstlist value of 10 (which is the default in grompp).
*/
-static const int nbnxn_reference_nstlist = 10;
+static const int nbnxnReferenceNstlist = 10;
/* The values to try when switching */
const int nstlist_try[] = { 20, 25, 40 };
#define NNSTL sizeof(nstlist_try)/sizeof(nstlist_try[0])
float listfac_ok, listfac_max;
int nstlist_orig, nstlist_prev;
verletbuf_list_setup_t ls;
- real rlist_nstlist10, rlist_inc, rlist_ok, rlist_max;
+ real rlistWithReferenceNstlist, rlist_inc, rlist_ok, rlist_max;
real rlist_new, rlist_prev;
- int nstlist_ind = 0;
+ size_t nstlist_ind = 0;
t_state state_tmp;
gmx_bool bBox, bDD, bCont;
const char *nstl_gpu = "\nFor optimal performance with a GPU nstlist (now %d) should be larger.\nThe optimum depends on your CPU and GPU resources.\nYou might want to try several nstlist values.\n";
const char *box_err = "Can not increase nstlist because the box is too small";
const char *dd_err = "Can not increase nstlist because of domain decomposition limitations";
char buf[STRLEN];
+ const float oneThird = 1.0f / 3.0f;
if (nstlist_cmdline <= 0)
{
verletbuf_get_list_setup(bGPU, &ls);
/* Allow rlist to make the list a given factor larger than the list
- * would be with nstlist=10.
+ * would be with the reference value for nstlist (10).
*/
nstlist_prev = ir->nstlist;
- ir->nstlist = 10;
+ ir->nstlist = nbnxnReferenceNstlist;
calc_verlet_buffer_size(mtop, det(box), ir, -1, &ls, NULL,
- &rlist_nstlist10);
+ &rlistWithReferenceNstlist);
ir->nstlist = nstlist_prev;
/* Determine the pair list size increase due to zero interactions */
rlist_inc = nbnxn_get_rlist_effective_inc(ls.cluster_size_j,
mtop->natoms/det(box));
- rlist_ok = (rlist_nstlist10 + rlist_inc)*pow(listfac_ok, 1.0/3.0) - rlist_inc;
- rlist_max = (rlist_nstlist10 + rlist_inc)*pow(listfac_max, 1.0/3.0) - rlist_inc;
+ rlist_ok = (rlistWithReferenceNstlist + rlist_inc)*pow(listfac_ok, oneThird) - rlist_inc;
+ rlist_max = (rlistWithReferenceNstlist + rlist_inc)*pow(listfac_max, oneThird) - rlist_inc;
if (debug)
{
fprintf(debug, "nstlist tuning: rlist_inc %.3f rlist_ok %.3f rlist_max %.3f\n",
t_inputrec *ir,
gmx_mtop_t *mtop, real box_vol)
{
- char *conv_mesg = "Converting input file with group cut-off scheme to the Verlet cut-off scheme";
+ const char *conv_mesg = "Converting input file with group cut-off scheme to the Verlet cut-off scheme";
md_print_warn(NULL, fplog, "%s\n", conv_mesg);
rlist_fac = 1 + verlet_buffer_ratio_nodynamics;
}
ir->verletbuf_tol = -1;
- ir->rlist = rlist_fac*max(ir->rvdw, ir->rcoulomb);
+ ir->rlist = rlist_fac*std::max(ir->rvdw, ir->rcoulomb);
}
gmx_mtop_remove_chargegroups(mtop);
}
}
-/* Frees GPU memory and destroys the CUDA context.
- *
- * Note that this function needs to be called even if GPUs are not used
- * in this run because the PME ranks have no knowledge of whether GPUs
- * are used or not, but all ranks need to enter the barrier below.
- */
-static void free_gpu_resources(const t_forcerec *fr,
- const t_commrec *cr)
-{
- gmx_bool bIsPPrankUsingGPU;
- char gpu_err_str[STRLEN];
-
- bIsPPrankUsingGPU = (cr->duty & DUTY_PP) && fr->nbv != NULL && fr->nbv->bUseGPU;
-
- if (bIsPPrankUsingGPU)
- {
- /* free nbnxn data in GPU memory */
- nbnxn_cuda_free(fr->nbv->cu_nbv);
-
- /* With tMPI we need to wait for all ranks to finish deallocation before
- * destroying the context in free_gpu() as some ranks may be sharing
- * GPU and context.
- * Note: as only PP ranks need to free GPU resources, so it is safe to
- * not call the barrier on PME ranks.
- */
-#ifdef GMX_THREAD_MPI
- if (PAR(cr))
- {
- gmx_barrier(cr);
- }
-#endif /* GMX_THREAD_MPI */
-
- /* uninitialize GPU (by destroying the context) */
- if (!free_gpu(gpu_err_str))
- {
- gmx_warning("On rank %d failed to free GPU #%d: %s",
- cr->nodeid, get_current_gpu_device_id(), gpu_err_str);
- }
- }
-}
-
int mdrunner(gmx_hw_opt_t *hw_opt,
FILE *fplog, t_commrec *cr, int nfile,
const t_filenm fnm[], const output_env_t oenv, gmx_bool bVerbose,
const char *deviceOptions, int imdport, unsigned long Flags)
{
gmx_bool bForceUseGPU, bTryUseGPU;
- double nodetime = 0, realtime;
t_inputrec *inputrec;
t_state *state = NULL;
matrix box;
gmx_ddbox_t ddbox = {0};
int npme_major, npme_minor;
- real tmpr1, tmpr2;
t_nrnb *nrnb;
gmx_mtop_t *mtop = NULL;
t_mdatoms *mdatoms = NULL;
gmx_pme_t *pmedata = NULL;
gmx_vsite_t *vsite = NULL;
gmx_constr_t constr;
- int i, m, nChargePerturbed = -1, nTypePerturbed = 0, status, nalloc;
- char *gro;
+ int nChargePerturbed = -1, nTypePerturbed = 0, status;
gmx_wallcycle_t wcycle;
gmx_bool bReadEkin;
- int list;
gmx_walltime_accounting_t walltime_accounting = NULL;
int rc;
gmx_int64_t reset_counters;
gmx_edsam_t ed = NULL;
- t_commrec *cr_old = cr;
int nthreads_pme = 1;
int nthreads_pp = 1;
gmx_membed_t membed = NULL;
}
}
- /* Check for externally set OpenMP affinity and turn off internal
- * pinning if any is found. We need to do this check early to tell
- * thread-MPI whether it should do pinning when spawning threads.
- * TODO: the above no longer holds, we should move these checks down
- */
- gmx_omp_check_thread_affinity(fplog, cr, hw_opt);
-
/* Check and update the hardware options for internal consistency */
check_and_update_hw_opt_1(hw_opt, SIMMASTER(cr));
+ /* Early check for externally set process affinity. */
+ gmx_check_thread_affinity_set(fplog, cr,
+ hw_opt, hwinfo->nthreads_hw_avail, FALSE);
if (SIMMASTER(cr))
{
-#ifdef GMX_THREAD_MPI
- /* Early check for externally set process affinity.
- * With thread-MPI this is needed as pinning might get turned off,
- * which needs to be known before starting thread-MPI.
- * With thread-MPI hw_opt is processed here on the master rank
- * and passed to the other ranks later, so we only do this on master.
- */
- gmx_check_thread_affinity_set(fplog,
- NULL,
- hw_opt, hwinfo->nthreads_hw_avail, FALSE);
-#endif
#ifdef GMX_THREAD_MPI
if (cr->npmenodes > 0 && hw_opt->nthreads_tmpi <= 0)
if (hw_opt->nthreads_tmpi > 1)
{
+ t_commrec *cr_old = cr;
/* now start the threads. */
cr = mdrunner_start_threads(hw_opt, fplog, cr_old, nfile, fnm,
oenv, bVerbose, bCompact, nstglobalcomm,
"but %s was not started through mpirun/mpiexec or only one rank was requested through mpirun/mpiexec"
#endif
#endif
- , ShortProgram()
+ , output_env_get_program_display_name(oenv)
);
}
if (DOMAINDECOMP(cr))
{
+ GMX_RELEASE_ASSERT(fr, "fr was NULL while cr->duty was DUTY_PP");
dd_init_bondeds(fplog, cr->dd, mtop, vsite, inputrec,
Flags & MD_DDBONDCHECK, fr->cginfo_mb);
}
else
{
+ GMX_RELEASE_ASSERT(pmedata, "pmedata was NULL while cr->duty was not DUTY_PP");
/* do PME only */
walltime_accounting = walltime_accounting_init(gmx_omp_nthreads_get(emntPME));
gmx_pmeonly(*pmedata, cr, nrnb, wcycle, walltime_accounting, ewaldcoeff_q, ewaldcoeff_lj, inputrec);
*/
finish_run(fplog, cr,
inputrec, nrnb, wcycle, walltime_accounting,
- fr != NULL && fr->nbv != NULL && fr->nbv->bUseGPU ?
- nbnxn_cuda_get_timings(fr->nbv->cu_nbv) : NULL,
+ fr ? fr->nbv : NULL,
EI_DYNAMICS(inputrec->eI) && !MULTISIM(cr));
*/
#include "moduletest.h"
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
+#include "config.h"
-#include "testutils/integrationtests.h"
-#include "testutils/testoptions.h"
-#include "testutils/cmdlinetest.h"
-#include "gromacs/options/options.h"
+#include "gromacs/gmxpreprocess/grompp.h"
#include "gromacs/options/basicoptions.h"
+#include "gromacs/options/options.h"
+#include "gromacs/utility/basedefinitions.h"
+#include "gromacs/utility/basenetwork.h"
#include "gromacs/utility/file.h"
-#include "gromacs/legacyheaders/network.h"
-#include "gromacs/legacyheaders/types/simple.h"
-#include "gromacs/gmxpreprocess/grompp.h"
+
#include "programs/mdrun/mdrun_main.h"
+#include "testutils/integrationtests.h"
+#include "testutils/testoptions.h"
+#include "testutils/cmdlinetest.h"
+
namespace gmx
{
namespace test
#include <gtest/gtest.h>
-#include "gromacs/legacyheaders/network.h"
-#include "gromacs/legacyheaders/types/simple.h"
-#include "gromacs/fileio/path.h"
+#include "gromacs/utility/basenetwork.h"
+#include "gromacs/utility/path.h"
+#include "gromacs/utility/real.h"
#include "gromacs/utility/stringutil.h"
-#include "../mdrun_main.h"
+#include "programs/mdrun/mdrun_main.h"
#include "testutils/cmdlinetest.h"
#include "gromacs/options/filenameoption.h"
#include "gromacs/utility/stringutil.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
namespace
{
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#include "gromacs/math/3dview.h"
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "3dview.h"
#include <math.h>
-#include "sysstuff.h"
-#include "gromacs/utility/smalloc.h"
-#include "macros.h"
-#include "physics.h"
-#include "pbc.h"
-#include "vec.h"
-
-#include "gmx_fatal.h"
-
-#define N 4
-
-void m4_op(mat4 m, rvec x, vec4 v)
-{
- int i;
-
- for (i = 0; (i < N); i++)
- {
- v[i] = m[XX][i]*x[XX]+m[YY][i]*x[YY]+m[ZZ][i]*x[ZZ]+m[WW][i];
- }
-}
-
-void unity_m4(mat4 m)
-{
- int i, j;
-
- for (i = 0; (i < N); i++)
- {
- for (j = 0; (j < N); j++)
- {
- if (i == j)
- {
- m[i][j] = 1.0;
- }
- else
- {
- m[i][j] = 0.0;
- }
- }
- }
-}
-
-void print_m4(FILE *fp, const char *s, mat4 A)
-{
- int i, j;
-
- if (fp)
- {
- fprintf(fp, "%s: ", s);
- for (i = 0; i < N; i++)
- {
- fprintf(fp, "\t");
- for (j = 0; j < N; j++)
- {
- fprintf(fp, "%10.5f", A[i][j]);
- }
- fprintf(fp, "\n");
- }
- }
-}
-
-void print_v4(FILE *fp, char *s, int dim, real *a)
-{
- int j;
-
- if (fp)
- {
- fprintf(fp, "%s: ", s);
- for (j = 0; j < dim; j++)
- {
- fprintf(fp, "%10.5f", a[j]);
- }
- fprintf(fp, "\n");
- }
-}
-void mult_matrix(mat4 A, mat4 B, mat4 C)
-{
- int i, j, k;
-
- for (i = 0; i < N; i++)
- {
- for (j = 0; j < N; j++)
- {
- A[i][j] = 0;
- for (k = 0; (k < N); k++)
- {
- A[i][j] += B[i][k]*C[k][j];
- }
- }
- }
-}
+#include <algorithm>
-void rotate(int axis, real angle, mat4 A)
-{
- unity_m4(A);
-
- switch (axis)
- {
- case XX:
- A[YY][YY] = cos(angle);
- A[YY][ZZ] = -sin(angle);
- A[ZZ][YY] = sin(angle);
- A[ZZ][ZZ] = cos(angle);
- break;
- case YY:
- A[XX][XX] = cos(angle);
- A[XX][ZZ] = sin(angle);
- A[ZZ][XX] = -sin(angle);
- A[ZZ][ZZ] = cos(angle);
- break;
- case ZZ:
- A[XX][XX] = cos(angle);
- A[XX][YY] = -sin(angle);
- A[YY][XX] = sin(angle);
- A[YY][YY] = cos(angle);
- break;
- default:
- gmx_fatal(FARGS, "Error: invalid axis: %d", axis);
- }
-}
-
-void translate(real tx, real ty, real tz, mat4 A)
-{
- unity_m4(A);
- A[3][XX] = tx;
- A[3][YY] = ty;
- A[3][ZZ] = tz;
-}
+#include "gromacs/math/3dtransforms.h"
+#include "gromacs/math/units.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
static void set_scale(t_3dview *view, real sx, real sy)
{
view->sc_y = sy;
}
-void calculate_view(t_3dview *view)
+static void calculate_view(t_3dview *view)
{
#define SMALL 1e-6
mat4 To, Te, T1, T2, T3, T4, T5, N1, D1, D2, D3, D4, D5;
l = sqrt(dx*dx+dy*dy+dz*dz);
r = sqrt(dx*dx+dy*dy);
#ifdef DEBUG
- print_v4(debug, "eye", N, view->eye);
+ gmx_vec4_print(debug, "eye", view->eye);
printf("del: %10.5f%10.5f%10.5f l: %10.5f, r: %10.5f\n", dx, dy, dz, l, r);
#endif
if (l < SMALL)
{
gmx_fatal(FARGS, "Error: Zero Length Vector - No View Specified");
}
- translate((real)(-view->origin[XX]),
- (real)(-view->origin[YY]), (real)(-view->origin[ZZ]), To);
- translate((real)(-view->eye[XX]),
- (real)(-view->eye[YY]), (real)(-view->eye[ZZ]), Te);
+ gmx_mat4_init_translation(-view->origin[XX], -view->origin[YY], -view->origin[ZZ], To);
+ gmx_mat4_init_translation(-view->eye[XX], -view->eye[YY], -view->eye[ZZ], Te);
- unity_m4(T2);
+ gmx_mat4_init_unity(T2);
T2[YY][YY] = 0, T2[YY][ZZ] = -1, T2[ZZ][YY] = 1, T2[ZZ][ZZ] = 0;
- unity_m4(T3);
+ gmx_mat4_init_unity(T3);
if (r > 0)
{
T3[XX][XX] = -dy/r, T3[XX][ZZ] = dx/r, T3[ZZ][XX] = -dx/r, T3[ZZ][ZZ] = -dy/r;
}
- unity_m4(T4);
+ gmx_mat4_init_unity(T4);
T4[YY][YY] = r/l, T4[YY][ZZ] = dz/l, T4[ZZ][YY] = -dz/l, T4[ZZ][ZZ] = r/l;
- unity_m4(T5);
+ gmx_mat4_init_unity(T5);
T5[ZZ][ZZ] = -1;
- unity_m4(N1);
+ gmx_mat4_init_unity(N1);
/* N1[XX][XX]=4,N1[YY][YY]=4; */
- mult_matrix(T1, To, view->Rot);
- mult_matrix(D1, Te, T2);
- mult_matrix(D2, T3, T4);
- mult_matrix(D3, T5, N1);
- mult_matrix(D4, T1, D1);
- mult_matrix(D5, D2, D3);
+ gmx_mat4_mmul(T1, To, view->Rot);
+ gmx_mat4_mmul(D1, Te, T2);
+ gmx_mat4_mmul(D2, T3, T4);
+ gmx_mat4_mmul(D3, T5, N1);
+ gmx_mat4_mmul(D4, T1, D1);
+ gmx_mat4_mmul(D5, D2, D3);
- mult_matrix(view->proj, D4, D5);
+ gmx_mat4_mmul(view->proj, D4, D5);
#ifdef DEBUG
- print_m4(debug, "T1", T1);
- print_m4(debug, "T2", T2);
- print_m4(debug, "T3", T3);
- print_m4(debug, "T4", T4);
- print_m4(debug, "T5", T5);
- print_m4(debug, "N1", N1);
- print_m4(debug, "Rot", view->Rot);
- print_m4(debug, "Proj", view->proj);
+ gmx_mat4_print(debug, "T1", T1);
+ gmx_mat4_print(debug, "T2", T2);
+ gmx_mat4_print(debug, "T3", T3);
+ gmx_mat4_print(debug, "T4", T4);
+ gmx_mat4_print(debug, "T5", T5);
+ gmx_mat4_print(debug, "N1", N1);
+ gmx_mat4_print(debug, "Rot", view->Rot);
+ gmx_mat4_print(debug, "Proj", view->proj);
#endif
}
dr1 = sqrt(dr2);
if (fac < 1)
{
- bm = max(norm(view->box[XX]), max(norm(view->box[YY]), norm(view->box[ZZ])));
+ bm = std::max(norm(view->box[XX]), std::max(norm(view->box[YY]), norm(view->box[ZZ])));
if (dr1*fac < 1.1*bm) /* Don't come to close */
{
return FALSE;
return TRUE;
}
-void init_rotate_3d(t_3dview *view)
+/* Initiates the state of 3d rotation matrices in the structure */
+static void init_rotate_3d(t_3dview *view)
{
real rot = DEG2RAD*15;
int i;
for (i = 0; (i < DIM); i++)
{
- rotate(i, rot, view->RotP[i]);
- rotate(i, (real)(-rot), view->RotM[i]);
+ gmx_mat4_init_rotation(i, rot, view->RotP[i]);
+ gmx_mat4_init_rotation(i, -rot, view->RotM[i]);
#ifdef DEBUG
- print_m4(debug, "RotP", view->RotP[i]);
- print_m4(debug, "RotM", view->RotM[i]);
+ gmx_mat4_print(debug, "RotP", view->RotP[i]);
+ gmx_mat4_print(debug, "RotM", view->RotM[i]);
#endif
}
}
void rotate_3d(t_3dview *view, int axis, gmx_bool bPositive)
{
- int i, j;
mat4 m4;
if (bPositive)
{
- mult_matrix(m4, view->Rot, view->RotP[axis]);
+ gmx_mat4_mmul(m4, view->Rot, view->RotP[axis]);
}
else
{
- mult_matrix(m4, view->Rot, view->RotM[axis]);
- }
- for (i = 0; (i < N); i++)
- {
- for (j = 0; (j < N); j++)
- {
- view->Rot[i][j] = m4[i][j];
- }
+ gmx_mat4_mmul(m4, view->Rot, view->RotM[axis]);
}
-
+ gmx_mat4_copy(m4, view->Rot);
calculate_view(view);
}
void reset_view(t_3dview *view)
{
- int i;
-
#ifdef DEBUG
printf("Reset view called\n");
#endif
set_scale(view, 4.0, 4.0);
clear_rvec(view->eye);
calc_box_center(view->ecenter, view->box, view->origin);
- view->eye[ZZ] = 3.0*max(view->box[XX][XX], view->box[YY][YY]);
+ view->eye[ZZ] = 3.0*std::max(view->box[XX][XX], view->box[YY][YY]);
zoom_3d(view, 1.0);
view->eye[WW] = view->origin[WW] = 0.0;
/* Initiate the matrix */
- unity_m4(view->Rot);
+ gmx_mat4_init_unity(view->Rot);
calculate_view(view);
init_rotate_3d(view);
t_3dview *init_view(matrix box)
{
t_3dview *view;
- int i, j;
snew(view, 1);
-
- /* Copy parameters into variables */
- for (i = 0; (i < DIM); i++)
- {
- for (j = 0; (j < DIM); j++)
- {
- view->box[i][j] = box[i][j];
- }
- }
-
+ copy_mat(box, view->box);
view->ecenter = ecenterDEF;
-
reset_view(view);
return view;
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifndef GMX_MATH_3DVIEW_H
-#define GMX_MATH_3DVIEW_H
+#ifndef GMX_VIEW_3DVIEW_H
+#define GMX_VIEW_3DVIEW_H
-#include <stdio.h>
-
-#include "../legacyheaders/types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define WW 3
-
-typedef real vec4[4];
-
-typedef real mat4[4][4];
+#include "gromacs/math/3dtransforms.h"
+#include "gromacs/math/vectypes.h"
+#include "gromacs/utility/basedefinitions.h"
+#include "gromacs/utility/real.h"
typedef int iv2[2];
typedef struct {
matrix box;
- int ecenter; /* enum for centering, see pbc.h */
- vec4 eye, origin; /* The eye and origin position */
- mat4 proj; /* Projection matrix */
- mat4 Rot; /* Total rotation matrix */
- real sc_x, sc_y; /* Scaling for aspect ratio */
- mat4 RotP[DIM]; /* state for 3d rotations */
+ int ecenter; /* enum for centering, see pbc.h */
+ vec4 eye, origin; /* The eye and origin position */
+ mat4 proj; /* Projection matrix */
+ mat4 Rot; /* Total rotation matrix */
+ real sc_x, sc_y; /* Scaling for aspect ratio */
+ mat4 RotP[DIM]; /* state for 3d rotations */
mat4 RotM[DIM];
} t_3dview;
-extern void print_m4(FILE *fp, const char *s, mat4 A);
-
-extern void print_v4(FILE *fp, char *s, int dim, real *a);
-
-extern void m4_op(mat4 m, rvec x, vec4 v);
-
-extern void unity_m4(mat4 m);
-
-extern void mult_matrix(mat4 A, mat4 B, mat4 C);
-
-extern void rotate(int axis, real angle, mat4 A);
-
-extern void translate(real tx, real ty, real tz, mat4 A);
-
-extern void m4_op(mat4 m, rvec x, vec4 v);
-
-extern void calculate_view(t_3dview *view);
-
-extern t_3dview *init_view(matrix box);
+t_3dview *init_view(matrix box);
/* Generate the view matrix from the eye pos and the origin,
* applying also the scaling for the aspect ration.
* There is no accompanying done_view routine: the struct can simply
* reset the view
*/
-extern gmx_bool zoom_3d(t_3dview *view, real fac);
+gmx_bool zoom_3d(t_3dview *view, real fac);
/* Zoom in or out with factor fac, returns TRUE when zoom successful,
* FALSE otherwise.
*/
-extern void init_rotate_3d(t_3dview *view);
-/* Initiates the state of 3d rotation matrices in the structure */
-
-extern void rotate_3d(t_3dview *view, int axis, gmx_bool bPositive);
+void rotate_3d(t_3dview *view, int axis, gmx_bool bPositive);
/* Rotate the eye around the center of the box, around axis */
-extern void translate_view(t_3dview *view, int axis, gmx_bool bPositive);
+void translate_view(t_3dview *view, int axis, gmx_bool bPositive);
/* Translate the origin at which one is looking */
-extern void reset_view(t_3dview *view);
+void reset_view(t_3dview *view);
/* Reset the viewing to the initial view */
-#ifdef __cplusplus
-}
-#endif
-
#endif
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
+#include <stdlib.h>
#include <string.h>
#include <algorithm>
#include "macros.h"
+#include "gromacs/utility/cstringutil.h"
#include "gromacs/utility/smalloc.h"
-#include "sysstuff.h"
#include "x11.h"
#include "xutil.h"
void set_vbtime(t_x11 *x11, t_butbox *vbox, char *text)
{
sfree(vbox->wd.text);
- vbox->wd.text = strdup(text);
+ vbox->wd.text = gmx_strdup(text);
ExposeWin(x11->disp, vbox->wd.self);
}
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
+#include <stdlib.h>
#ifdef HAVE_UNISTD_H
#include <unistd.h> // for fork()
#endif
-#include "gromacs/utility/smalloc.h"
-#include "sysstuff.h"
#include "macros.h"
-#include "gromacs/utility/cstringutil.h"
#include "x11.h"
#include "xdlghi.h"
#include "xmb.h"
#include "names.h"
#include "nmol.h"
#include "manager.h"
-#include "gromacs/fileio/futil.h"
-#include "gmx_fatal.h"
+
+#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/futil.h"
+#include "gromacs/utility/smalloc.h"
#define MBFLAGS /* MB_APPLMODAL | */ MB_DONTSHOW
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
+#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-#include <ctype.h>
+
+#include "fgrid.h"
+
#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/utility/smalloc.h"
-#include "fgrid.h"
-#include "gromacs/fileio/futil.h"
static const char *type[] = {
"button", "radiobuttons", "groupbox", "checkbox",
static void ReadAccOpen(const char *infile, FILE *in)
{
char buf[STRLEN];
+ int result;
- fscanf(in, "%4s", buf);
- if (strcmp(buf, "{") != 0)
+ result = fscanf(in, "%4s", buf);
+ if ((1 != result) || strcmp(buf, "{") != 0)
{
ReadDlgErr(infile, eACCOEXP, buf);
}
static void ReadAccClose(const char *infile, FILE *in)
{
char buf[STRLEN];
+ int result;
- fscanf(in, "%4s", buf);
- if (strcmp(buf, "}") != 0)
+ result = fscanf(in, "%4s", buf);
+ if ((1 != result) || strcmp(buf, "}") != 0)
{
ReadDlgErr(infile, eACCCEXP, buf);
}
static void AddFItemName(t_fitem *fitem, char *name)
{
srenew(fitem->name, ++fitem->nname);
- fitem->name[fitem->nname-1] = strdup(name);
+ fitem->name[fitem->nname-1] = gmx_strdup(name);
}
static t_fgroup *NewFGroup(void)
ReadQuoteString(infile, in, get);
ReadQuoteString(infile, in, def);
ReadQuoteString(infile, in, help);
- fitem->set = strdup(set);
- fitem->get = strdup(get);
- fitem->def = strdup(def);
- fitem->help = strdup(help);
+ fitem->set = gmx_strdup(set);
+ fitem->get = gmx_strdup(get);
+ fitem->def = gmx_strdup(def);
+ fitem->help = gmx_strdup(help);
return fitem;
}
{
FILE *in;
char buf[STRLEN];
+ int result;
t_fgrid *fgrid;
t_fgroup *fgroup;
t_fsimple *fsimple;
int gridx, gridy;
- in = libopen(infile);
- fscanf(in, "%6s", buf);
- if (strcmp(buf, "grid") != 0)
+ in = libopen(infile);
+ result = fscanf(in, "%6s", buf);
+ if ((1 != result) || strcmp(buf, "grid") != 0)
{
ReadDlgErr(infile, eGRIDEXP, buf);
}
fgrid->w = gridx;
fgrid->h = gridy;
ReadAccOpen(infile, in);
- fscanf(in, "%15s", buf);
- while (bNotAccClose(buf))
+ result = fscanf(in, "%15s", buf);
+ while ((1 == result) && bNotAccClose(buf))
{
if (strcmp(buf, "group") == 0)
{
fgroup = AddFGridFGroup(fgrid);
ReadQuoteString(infile, in, buf);
- fgroup->name = strdup(buf);
+ fgroup->name = gmx_strdup(buf);
if ((fscanf(in, "%5d%5d%5d%5d", &fgroup->x, &fgroup->y, &fgroup->w, &fgroup->h)) != 4)
{
ReadDlgErr(infile, eNOVALS, "group x,y,w,h");
ReadDlgErr(infile, eTOOHIGH, buf);
}
ReadAccOpen(infile, in);
- fscanf(in, "%15s", buf);
- while (bNotAccClose(buf))
+ result = fscanf(in, "%15s", buf);
+ while ((1 == result) && bNotAccClose(buf))
{
AddFGroupFItem(fgroup, ScanFItem(infile, in, buf));
- fscanf(in, "%15s", buf);
+ result = fscanf(in, "%15s", buf);
}
}
else if (strcmp(buf, "simple") == 0)
ReadDlgErr(infile, eTOOHIGH, "simple");
}
ReadAccOpen(infile, in);
- fscanf(in, "%15s", buf);
- fsimple->fitem = ScanFItem(infile, in, buf);
- ReadAccClose(infile, in);
+ result = fscanf(in, "%15s", buf);
+ if (1 == result)
+ {
+ fsimple->fitem = ScanFItem(infile, in, buf);
+ ReadAccClose(infile, in);
+ }
+ }
+ if (1 == result)
+ {
+ result = fscanf(in, "%15s", buf);
}
- fscanf(in, "%15s", buf);
}
gmx_ffclose(in);
+ /* Since we always read one variable at a time the result from
+ * fscanf should always be 1.
+ */
+ if (1 != result)
+ {
+ ReadDlgErr(infile, eNOVALS, "fgrid");
+ }
return fgrid;
}
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <string.h>
#include <algorithm>
-#include "sysstuff.h"
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/utility/smalloc.h"
#include "macros.h"
-#include "index.h"
+#include "gromacs/topology/index.h"
#include "xdlghi.h"
#include "dialogs.h"
-#include "index.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
t_filter *init_filter(t_atoms *atoms, const char *fn, int natom_trx)
{
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
+
+#include <stdlib.h>
-#include "sysstuff.h"
#include "macros.h"
#include "xutil.h"
#include "Xstuff.h"
-#include "gromacs/utility/smalloc.h"
#include "copyrite.h"
#include "logo.h"
+#include "gromacs/utility/real.h"
+#include "gromacs/utility/smalloc.h"
+
typedef struct {
int x, y, rad;
unsigned long *col;
};
#define NMESS asize(Mess)
int i;
- real wfac, hfac;
t_logo *logo;
t_windata *wd;
wd = &(logo->wd);
if (bFirst)
{
- wfac = wd->width/110.0;
- hfac = wd->height/110.0;
+ const real wfac = wd->width/110.0;
+ const real hfac = wd->height/110.0;
for (i = 0; (i < asize(c)); i++)
{
c[i].x *= wfac;
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <ctype.h>
+#include <stdlib.h>
#include <string.h>
#ifdef HAVE_UNISTD_H
#include <unistd.h> // for usleep()
#endif
-#include "sysstuff.h"
-#include "gromacs/utility/smalloc.h"
#include "typedefs.h"
#include "macros.h"
-#include "atomprop.h"
#include "names.h"
-#include "manager.h"
-#include "pbc.h"
-#include "nmol.h"
#include "copyrite.h"
-#include "vec.h"
-#include "gromacs/utility/cstringutil.h"
-#include "gromacs/fileio/futil.h"
#include "gromacs/fileio/tpxio.h"
#include "gromacs/math/utilities.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/topology/atomprop.h"
+#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/futil.h"
+#include "gromacs/utility/smalloc.h"
+
+#include "3dview.h"
+#include "manager.h"
+#include "nmol.h"
static void add_object(t_manager *man, eObject eO, atom_id ai, atom_id aj)
{
man->natom =
read_first_x(man->oenv, &man->status, trajectory, &(man->time), &(man->x),
man->box);
- man->trajfile = strdup(trajectory);
+ man->trajfile = gmx_strdup(trajectory);
if (man->natom > man->top.atoms.nr)
{
gmx_fatal(FARGS, "Topology %s (%d atoms) and trajectory %s (%d atoms) "
cool_quote(quote, 255, NULL);
sprintf(buf, "%s: %s", *man->top.name, quote);
- man->title.text = strdup(buf);
+ man->title.text = gmx_strdup(buf);
man->view = init_view(man->box);
at = &(man->top.atoms);
aps = gmx_atomprop_init();
#define _manager_h
#include <stdio.h>
+
#include "typedefs.h"
+#include "gromacs/fileio/trxio.h"
+#include "gromacs/pbcutil/rmpbc.h"
+
+#include "3dview.h"
+#include "buttons.h"
+#include "nleg.h"
#include "x11.h"
#include "xutil.h"
-#include "gromacs/math/3dview.h"
-#include "nleg.h"
-#include "buttons.h"
-#include "rmpbc.h"
-#include "gromacs/fileio/trxio.h"
/* Some window sizes */
#define EWIDTH 200
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
-#include "sysstuff.h"
+#include <stdlib.h>
#include <string.h>
-#include "gromacs/utility/smalloc.h"
+
#include "macros.h"
-#include "xutil.h"
+
+#include "gromacs/fileio/writeps.h"
+#include "gromacs/utility/smalloc.h"
+
+#include "3dview.h"
#include "buttons.h"
#include "manager.h"
-#include "nmol.h"
#include "nleg.h"
-
-#include "gromacs/fileio/writeps.h"
-#include "gromacs/math/3dview.h"
+#include "nmol.h"
+#include "xutil.h"
#define MSIZE 4
{
corner[i][j] = ivec[i][j]*box[j][j];
}
- m4_op(view->proj, corner[i], x4);
+ gmx_mat4_transform_point(view->proj, corner[i], x4);
v4_to_iv2(x4, vec2[i], x0, y0, sx, sy);
}
ps_color(ps, 0, 0, 0.5);
{
if (man->bVis[i])
{
- m4_op(view->proj, man->x[i], x4);
+ gmx_mat4_transform_point(view->proj, man->x[i], x4);
man->zz[i] = x4[ZZ];
v4_to_iv2(x4, vec2[i], x0, y0, sx, sy);
}
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <string.h>
#include <algorithm>
-#include "macros.h"
+#include "gromacs/legacyheaders/types/rgb.h"
+#include "gromacs/legacyheaders/macros.h"
#include "gromacs/utility/smalloc.h"
#include "buttons.h"
#ifndef _nleg_h
#define _nleg_h
+#include "gromacs/legacyheaders/types/rgb.h"
+
#include "x11.h"
#include "xutil.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
-#include "sysstuff.h"
+#include <stdlib.h>
#include <string.h>
-#include "gromacs/utility/smalloc.h"
+
#include "macros.h"
-#include "xutil.h"
-#include "gromacs/math/3dview.h"
-#include "gmx_fatal.h"
+#include "txtdump.h"
+#include "gromacs/pbcutil/pbc.h"
+
+#include "gromacs/math/vec.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
+
+#include "3dview.h"
#include "buttons.h"
#include "manager.h"
#include "nmol.h"
-#include "vec.h"
-#include "txtdump.h"
-#include "pbc.h"
+#include "xutil.h"
#define MSIZE 4
for (i = 0; (i < NCUCEDGE); i++)
{
- m4_op(view->proj, corner[i], x4);
+ gmx_mat4_transform_point(view->proj, corner[i], x4);
v4_to_iv2(x4, vec2[i], x0, y0, sx, sy);
}
XSetForeground(x11->disp, x11->gc, YELLOW);
}
}
rvec_inc(corner[i], box_center);
- m4_op(view->proj, corner[i], x4);
+ gmx_mat4_transform_point(view->proj, corner[i], x4);
v4_to_iv2(x4, vec2[i], x0, y0, sx, sy);
}
if (debug)
{
if (man->bVis[i])
{
- m4_op(view->proj, man->x[i], x4);
+ gmx_mat4_transform_point(view->proj, man->x[i], x4);
man->zz[i] = x4[ZZ];
v4_to_iv2(x4, vec2[i], x0, y0, sx, sy);
}
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <math.h>
#include <string.h>
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <string.h>
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdio.h>
#include <string.h>
-#include "sysstuff.h"
#include "macros.h"
#include "gromacs/utility/smalloc.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "typedefs.h"
#include "gromacs/commandline/pargs.h"
#include "copyrite.h"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
+#include <stdlib.h>
#include <string.h>
+
#include "typedefs.h"
-#include "sysstuff.h"
+#include "gromacs/utility/cstringutil.h"
#include "gromacs/utility/smalloc.h"
#include "Xstuff.h"
#include "x11.h"
bool bVerbose = false;
int i;
- title = strdup(argv[0]);
+ title = gmx_strdup(argv[0]);
/* First check environment */
fontname = getenv("GMX_FONT");
break;
case 't':
sfree(title);
- title = strdup(argv[++i]);
+ title = gmx_strdup(argv[++i]);
break;
case 'v':
bVerbose = true;
{
x11->bg = LIGHTGREY;
}
- x11->title = strdup(title);
+ x11->title = gmx_strdup(title);
sfree(title);
x11->wlist = NULL;
x11->GetNamedColor = &GetNamedColor;
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdio.h>
#include <stdlib.h>
#include "xutil.h"
#include "xdlg.h"
#include "xmb.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
/*****************************
*
* Helpful routines
if (bCont)
{
srenew(lines, ++nlines);
- lines[nlines-1] = strdup(buf);
+ lines[nlines-1] = gmx_strdup(buf);
}
}
}
dlg->data = data;
if (title)
{
- dlg->title = strdup(title);
+ dlg->title = gmx_strdup(title);
}
else
{
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
+#include <stdlib.h>
#include <string.h>
#include <algorithm>
-#include "gmx_fatal.h"
-#include "gromacs/utility/cstringutil.h"
-#include "sysstuff.h"
-#include "gromacs/utility/smalloc.h"
#include "macros.h"
#include "xutil.h"
#include "xdlghi.h"
#include "fgrid.h"
+#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
+
t_dlgitem **CreateRadioButtonGroup(t_x11 *x11, char *szTitle,
t_id GroupID, int nrb, t_id rb[],
int nSelect,
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <ctype.h>
#include <stdio.h>
#include <algorithm>
-#include "gmx_fatal.h"
-#include "gromacs/utility/smalloc.h"
#include "macros.h"
#include "Xstuff.h"
#include "xdlgitem.h"
+#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/fatalerror.h"
+#include "gromacs/utility/smalloc.h"
+
#define BUFSIZE 16
static t_dlgitem *newitem(void)
case ButtonPress:
/* Calculate new position for caret */
et->pos = strlen(et->buf);
- bp = strdup(et->buf);
+ bp = gmx_strdup(et->buf);
xp = event->xbutton.x-XTextWidth(x11->font, win->text, strlen(win->text))-
XCARET;
while ((et->pos > 0) && (XTextWidth(x11->font, bp, strlen(bp)) > xp))
}
else
{
- lab = strdup(szLab);
+ lab = gmx_strdup(szLab);
}
InitWin(&(dlgitem->win), x0, y0, w, h, bw, szLab);
sfree(lab);
snew(dlgitem->u.statictext.lines, nlines);
for (i = 0; (i < nlines); i++)
{
- dlgitem->u.statictext.lines[i] = strdup(lines[i]);
+ dlgitem->u.statictext.lines[i] = gmx_strdup(lines[i]);
}
dlgitem->WndProc = WndProcST;
return dlgitem;
}
-#define SC(src) (strlen(src) ? strdup(src) : NULL)
+#define SC(src) (strlen(src) ? gmx_strdup(src) : NULL)
void SetDlgitemOpts(t_dlgitem *dlgitem, bool bUseMon,
char *set, char *get, char *help)
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2013, The GROMACS development team.
- * Copyright (c) 2013, by the GROMACS development team, led by
+ * Copyright (c) 2013,2014, 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.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdio.h>
#include <stdlib.h>
#include "xutil.h"
#include "xdlg.h"
#include "xmb.h"
-#include "gmx_fatal.h"
+#include "gromacs/utility/fatalerror.h"
#include "gromacs.bm"
#include "stop.bm"
#include "info.bm"
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include "gromacs/utility/cstringutil.h"
#include "gromacs/utility/smalloc.h"
#include "typedefs.h"
#include "xutil.h"
win->cursor = 0;
if (text)
{
- win->text = strdup(text);
+ win->text = gmx_strdup(text);
}
else
{
#include <stdlib.h>
#include <stdio.h>
+#include "config.h"
+
namespace gmx
{
namespace test
#include <libxml/parser.h>
#include <libxml/xmlmemory.h>
-#include "gromacs/fileio/path.h"
#include "gromacs/options/basicoptions.h"
#include "gromacs/options/options.h"
#include "gromacs/utility/exceptions.h"
#include "gromacs/utility/gmxassert.h"
+#include "gromacs/utility/path.h"
#include "gromacs/utility/stringutil.h"
#include "testutils/testasserts.h"
#include <iterator>
#include <string>
-#include "gromacs/legacyheaders/types/simple.h"
+#include "gromacs/utility/basedefinitions.h"
#include "gromacs/utility/common.h"
namespace gmx
#include <gtest/gtest.h>
-#include "gromacs/legacyheaders/types/simple.h"
-
+#include "gromacs/utility/basedefinitions.h"
#include "gromacs/utility/stringutil.h"
namespace gmx
#include <gtest/gtest.h>
-#include "gromacs/legacyheaders/types/simple.h"
-
+#include "gromacs/utility/basedefinitions.h"
#include "gromacs/utility/exceptions.h"
+#include "gromacs/utility/real.h"
namespace gmx
{
#include <gtest/gtest.h>
-#include "gromacs/fileio/path.h"
#include "gromacs/options/options.h"
#include "gromacs/options/basicoptions.h"
#include "gromacs/utility/gmxassert.h"
+#include "gromacs/utility/path.h"
#include "testutils/testoptions.h"
"Automatically download regressiontests. Tests can be run with ctest." OFF)
if(REGRESSIONTEST_DOWNLOAD)
- if("${PROJECT_VERSION}" MATCHES "-dev")
- set(REGRESSIONTEST_URL http://gerrit.gromacs.org/snapshot/${REGRESSIONTEST_BRANCH})
- set(REGRESSIONTEST_PATH "${CMAKE_CURRENT_BINARY_DIR}/regressiontests"
- CACHE PATH "Path to auto-downloaded regressiontests" FORCE)
+ if (NOT SOURCE_IS_SOURCE_DISTRIBUTION)
+ set(REGRESSIONTEST_URL http://gerrit.gromacs.org/snapshot/${REGRESSIONTEST_BRANCH})
+ set(REGRESSIONTEST_PATH "${CMAKE_CURRENT_BINARY_DIR}/regressiontests"
+ CACHE PATH "Path to auto-downloaded regressiontests" FORCE)
else()
set(REGRESSIONTEST_URL http://gerrit.gromacs.org/download/regressiontests-${REGRESSIONTEST_VERSION}.tar.gz)
set(REGRESSIONTEST_PATH
- "${CMAKE_CURRENT_BINARY_DIR}/regressiontests-${REGRESSIONTEST_VERSION}"
- CACHE PATH "Path to auto-downloaded regressiontests" FORCE)
+ "${CMAKE_CURRENT_BINARY_DIR}/regressiontests-${REGRESSIONTEST_VERSION}"
+ CACHE PATH "Path to auto-downloaded regressiontests" FORCE)
endif()
set(REGRESSIONTEST_FILE "${CMAKE_CURRENT_BINARY_DIR}/regressiontests.tgz")
message("Downloading: ${REGRESSIONTEST_URL}")
status_string: ${status_string}
log: ${log}")
endif()
- if(NOT "${PROJECT_VERSION}" MATCHES "-dev")
+ if (SOURCE_IS_SOURCE_DISTRIBUTION)
file(MD5 ${REGRESSIONTEST_FILE} COMPUTED_MD5SUM)
if(NOT ${REGRESSIONTEST_MD5SUM} STREQUAL ${COMPUTED_MD5SUM})
message(FATAL_ERROR "Download of regressiontests failed. Expected MD5 of ${REGRESSIONTEST_MD5SUM} but download has ${COMPUTED_MD5SUM}")
${CMAKE_SOURCE_DIR}/src/external/*.c
${CMAKE_SOURCE_DIR}/src/external/*.cpp
${CMAKE_SOURCE_DIR}/src/external/*.cu
+ ${CMAKE_SOURCE_DIR}/src/gromacs/selection/scanner.cpp
+ ${CMAKE_SOURCE_DIR}/src/gromacs/selection/parser.cpp
)
list(REMOVE_ITEM _inputfiles ${_files_to_ignore})
set(_outputopt --xml)
endif()
set(_common_flags
- --enable=style -DLINUX
+ --enable=style -DLINUX -DHAVE_UNISTD_H
-I src/gromacs/legacyheaders -I src
-I src/external/thread_mpi/include
-I src/external/tng_io/include
-I ${CMAKE_BINARY_DIR}/src -I ${CMAKE_BINARY_DIR}/src/gromacs/utility
--quiet
+ --inline-suppr
${_outputopt})
set(_c_flags
--suppress=variableScope
--suppress=sizeofCalculation
--suppress=missingInclude:src/programs/mdrun/gmx_gpu_utils/gmx_gpu_utils.cu
--suppress=*:src/external/Random123-1.08/include/Random123/features/compilerfeatures.h
- --inline-suppr)
+ --suppress=assignIfError:src/gromacs/mdlib/nbnxn_atomdata.c #Ticket 5695
+ --suppress=invalidPointerCast:src/gromacs/mdlib/nbnxn_cuda/nbnxn_cuda_kernel.cuh
+ --suppress=passedByValue:src/gromacs/mdlib/nbnxn_cuda/nbnxn_cuda_kernel.cuh
+ --suppress=passedByValue:src/gromacs/mdlib/nbnxn_cuda/nbnxn_cuda_kernel_utils.cuh
+ )
set(_cxx_flags
-D__cplusplus
--suppress=variableScope
--suppress=unnecessaryForwardDeclaration
--suppress=invalidscanf:src/gromacs/fileio/matio.cpp
- --suppress=invalidscanf:src/gromacs/gmxlib/xvgr.cpp
+ --suppress=invalidscanf:src/gromacs/fileio/xvgr.cpp
+ --suppress=invalidscanf:src/gromacs/topology/index.cpp
--suppress=invalidscanf:src/gromacs/gmxpreprocess/pdb2top.cpp
- --suppress=*:src/gromacs/selection/scanner.cpp)
+ --suppress=passedByValue:src/gromacs/simd/tests/*
+ )
# This list will hold the list of all files with cppcheck errors
# (one per input file)