forked from gromacs/gromacs
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix portability/reproducibility of erfinv
The tabulated normal distribution used to generate velocities in grompp relies on erfinv(), which we previously implemented with Newton-Raphson iterations. This worked well on x86 that uses denormal fp numbers, but it loses accuracy on Arm. This replaces the erfinv functions with more accurate implementations that at least appear to generate identical results on different platforms, which means the generated TPR files should also be identical. It also tightens the tolerances for all math functions so we are more likely to detect similar issues in the future, and adjust other reference values that appear to have been produced at lower accuracy. Fixes #4824.
- Loading branch information
Showing
10 changed files
with
529 additions
and
300 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.