tree 3ad5e8ecfa6bd54f002ec406b462070e70edcd8e
parent d1db92e03f96aa905a64ccedc8a826f8d61c9ba1
author Szabolcs Nagy <szabolcs.nagy@arm.com> 1563441428 +0100
committer Szabolcs Nagy <szabolcs.nagy@arm.com> 1563441428 +0100

Add simple ULP error check code

Check ULP error by random sampling and comparing against a higher
precision implmenetation.

This is similar to the randomized tests in the mathtest code, but it
runs on the target only and is much faster to allow exhaustive ULP
checks for single precision functions.  It also supports non-nearest
rounding modes.

The ULP error is reported in an unconventional way: instead of the
difference between the observed rounded result and accurate result, the
minimum error is reported that makes the accurate result round to the
observed result.  This is more useful for comparing errors across
different rounding modes.  In nearest-rounding mode usually 0.5 has to
be added to the reported error to get the conventional ULP error.

The code optionally depends on mpfr.  On targets where double has the
same format as long double, mpfr is required for testing double
precision functions.  By default there is no dependency on mpfr on the
target, to use mpfr add -DUSE_MPFR to the CFLAGS and -lmpfr to LDLIBS.

ucheck is a new make target for running ulp error checks.

Typical usage and output of the new ulp tool:

$ build/bin/ulp -e .001 exp 1.0 2.0 12345
exp(0x1.79ef3658a63c9p+0) got 0x1.181caa32757a7p+2 want 0x1.181caa32757a6p+2 +0.499708 ulp err 0.000291756
exp(0x1.9c8a65340f80cp+0) got 0x1.40a8032e5f576p+2 want 0x1.40a8032e5f575p+2 +0.498903 ulp err 0.00109668
FAIL exp in [0x1p+0;0x1p+1] round n errlim 0.001 maxerr 0.00109668 +0.5 cnt 12345 cnt1 6 0.0486027% cnt2 0 0% cntfail 1 0.00810045%

Floating-point exceptions are not guaranteed to be reported accurately
and can be turned off by -f.

The implementation is generic over the argument types which complicates
the code, but at least the difficult inner loop logic is not repeated
many times this way.

To add support for a new function foo, the fun array needs to be updated
with an entry for foo.  (This usually requires the functions foo, fool
and mpfr_foo to be defined.)
