Merge branch release-2016
authorMark Abraham <mark.j.abraham@gmail.com>
Sun, 17 Sep 2017 21:43:42 +0000 (23:43 +0200)
committerMark Abraham <mark.j.abraham@gmail.com>
Sun, 17 Sep 2017 21:43:42 +0000 (23:43 +0200)
Kept a cmake variable description string from release-2016

Change-Id: I2077780afbbe3cc610d699ea498caa6959e4000c

1  2 
cmake/gmxVersionInfo.cmake
src/gromacs/mdlib/nbnxn_kernels/simd_2xnn/nbnxn_kernel_simd_2xnn_inner.h

index ec96b3b60f6f8d202bef41236ea1e8df7236610b,d8ff6b58d607352370dbfa01252615b81e67f8a0..48fa2b5b67023fe6384ef855c6636d65a93b3b65
  # 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]
 +#                              [REMOTE_HASH]
  #                              [TARGET <target>]
  #                              [COMMENT <comment>])
  #   <input>      Specify the input and output files as for configure_file().
  #                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
  
  # 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 2016)
 -set(GMX_VERSION_PATCH 5)
 +set(GMX_VERSION_MAJOR 2017)
 +set(GMX_VERSION_PATCH 0)
  # The suffix, on the other hand, is used mainly for betas and release
  # candidates, where it signifies the most recent such release from
  # this branch; it will be empty before the first such release, as well
@@@ -201,8 -204,8 +201,8 @@@ set(GMX_VERSION_SUFFIX ""
  # here. The important thing is to minimize the chance of third-party
  # code being able to dynamically link with a version of libgromacs
  # that might not work.
 -set(LIBRARY_SOVERSION_MAJOR 2)
 -set(LIBRARY_SOVERSION_MINOR 4)
 +set(LIBRARY_SOVERSION_MAJOR 3)
 +set(LIBRARY_SOVERSION_MINOR 0)
  set(LIBRARY_VERSION ${LIBRARY_SOVERSION_MAJOR}.${LIBRARY_SOVERSION_MINOR}.0)
  
  #####################################################################
@@@ -224,8 -227,8 +224,8 @@@ if (NOT SOURCE_IS_SOURCE_DISTRIBUTION A
  endif()
  
  set(REGRESSIONTEST_VERSION "${GMX_VERSION_STRING}")
 -set(REGRESSIONTEST_BRANCH "refs/heads/release-2016")
 -set(REGRESSIONTEST_MD5SUM "a1625834b5fc8dcde0b8ef40cf64910c" CACHE INTERNAL "MD5 sum of the regressiontests tarball")
 +set(REGRESSIONTEST_BRANCH "refs/heads/master")
- set(REGRESSIONTEST_MD5SUM "366438549270d005fa6def6e56ca0256")
++set(REGRESSIONTEST_MD5SUM "366438549270d005fa6def6e56ca0256" CACHE INTERNAL "MD5 sum of the regressiontests tarball")
  
  math(EXPR GMX_VERSION_NUMERIC
       "${GMX_VERSION_MAJOR}*10000 + ${GMX_VERSION_PATCH}")
@@@ -353,7 -356,7 +353,7 @@@ unset(GMX_VERSION_CENTRAL_BASE_HASH
  # See documentation at the top of the script.
  function (gmx_configure_version_file INFILE OUTFILE)
      include(CMakeParseArguments)
 -    set(_options REMOTE_HASH SOURCE_FILE)
 +    set(_options REMOTE_HASH)
      set(_one_value_args COMMENT TARGET)
      set(_multi_value_args EXTRA_VARS)
      cmake_parse_arguments(
          add_custom_target(${ARG_TARGET} DEPENDS ${OUTFILE} VERBATIM)
          gmx_set_custom_target_output(${ARG_TARGET} ${OUTFILE})
      endif()
 -    if (ARG_SOURCE_FILE)
 -        set_source_files_properties(${OUTFILE} PROPERTIES GENERATED true)
 -    endif()
  endfunction()
index 77d697a6530d739068d64063f6dfd98852499301,a680aff199e26c6d0b045f20ed5d3444dd6868be..3dfc89b2ade33b763745af51d5c79accb7d4392e
  #else
      gatherLoadUBySimdIntTranspose<1>(tab_coul_F, ti_S0, &ctab0_S0, &ctab1_S0);
      gatherLoadUBySimdIntTranspose<1>(tab_coul_F, ti_S2, &ctab0_S2, &ctab1_S2);
+     ctab1_S0 = ctab1_S0 - ctab0_S0;
+     ctab1_S2 = ctab1_S2 - ctab0_S2;
  #endif
  #else
  #ifdef TAB_FDV0
  #endif
      fsub_S0     = fma(frac_S0, ctab1_S0, ctab0_S0);
      fsub_S2     = fma(frac_S2, ctab1_S2, ctab0_S2);
-     frcoul_S0   = qq_S0, fnma(fsub_S0, r_S0, rinv_ex_S0);
-     frcoul_S2   = qq_S2, fnma(fsub_S2, r_S2, rinv_ex_S2);
+     frcoul_S0   = qq_S0 * fnma(fsub_S0, r_S0, rinv_ex_S0);
+     frcoul_S2   = qq_S2 * fnma(fsub_S2, r_S2, rinv_ex_S2);
  
  #ifdef CALC_ENERGIES
-     vc_sub_S0   = ctabv_S0 + (mhalfsp_S * frac_S0 * (ctab0_S0 + fsub_S0));
-     vc_sub_S2   = ctabv_S2 + (mhalfsp_S * frac_S2 * (ctab0_S2 + fsub_S2));
+     vc_sub_S0   = fma((mhalfsp_S * frac_S0), (ctab0_S0 + fsub_S0), ctabv_S0);
+     vc_sub_S2   = fma((mhalfsp_S * frac_S2), (ctab0_S2 + fsub_S2), ctabv_S2);
  #endif
  #endif /* CALC_COUL_TAB */
  
  
      vcoul_S0    = qq_S0 * (rinv_ex_S0 - vc_sub_S0);
      vcoul_S2    = qq_S2 * (rinv_ex_S2 - vc_sub_S2);
  #endif
  
  #ifdef CALC_ENERGIES
  #ifndef HALF_LJ
          cr2_S2        = lje_c2_S * selectByMask(rsq_S2, wco_vdw_S2);
  #endif
 -        expmcr2_S0    = exp( -cr2_S0);
 +        // Unsafe version of our exp() should be fine, since these arguments should never
 +        // be smaller than -127 for any reasonable choice of cutoff or ewald coefficients.
 +        expmcr2_S0    = exp<MathOptimization::Unsafe>( -cr2_S0);
  #ifndef HALF_LJ
 -        expmcr2_S2    = exp( -cr2_S2);
 +        expmcr2_S2    = exp<MathOptimization::Unsafe>( -cr2_S2);
  #endif
  
          /* 1 + cr2 + 1/2*cr2^2 */