With ICC 18.1, no-simd, Release:
ShakeTest.ConstrainsThreeBondsWithCommonAtoms ../src/gromacs/mdlib/tests/shake.cpp:222: Failure Value of: finalDistancesSquared[i] Actual: 1.0000100135803223 Expected: constrainedDistancesSquared[i] Which is: 1 Difference: 1.00136e-05 (84 single-prec. ULPs, rel. 1e-05) Tolerance: abs. 1e-05, rel. 1e-05
Correct Shake test tolerances
The shake test used a tolerance on the square of the distance instead
of the distance itself as the documentation says.
Added tolerance for rounding errors due to the absolute size of the
coordinate values involved.
Update double-precision test configurations
These changes improve coverage of double precision, using more release
mode, particularly with latest gcc and icc, and using 128-bit SIMD,
which have been cases that were buggy recently. The other aspects of
the configurations that have been modified have been
non-critical. Where appropriate, brief rationales are recorded. This
resolves an old TODO item in the post-submit matrix.
Fixed a sign mismatch in initializing an OpenCL variable that didn't
need to be initialized.
Noted relevant new TODOs.
#2 Updated by Berk Hess about 2 years ago
- Category set to testing
- Status changed from New to Fix uploaded
- Assignee set to Berk Hess
- Target version set to 2018-beta2
I think this is because the distance calculation during Shake and in the check might not be binary identical, so we need to add a tolerance of real_eps*max(coord).
I also noticed that the test checks distance^2 instead of distance like the documentation says.