Errors are indeed listed here , but IMHO the assumption that “-” means “correctly rounded” (ie 1/2 ulp) is almost certainly refuted by the expression at the top of the page
[T] The GNU C library is not aimed at correct rounded results for a function in the math library ... Instead, the goals for accuracy of a function without fully defined results are as follows: some functions have errors, which means that they do not meet these goals in all cases. In the future, the GNU C library may provide some other correct rounding of functions under names, such as crsin, proposed for the extension of ISO C.
After studying the source code, I found that the ulp test results (for x86-64) seemed to be. It seems that for the default rounding mode (from rounded to nearest, the bindings go to even), they explicitly check for double
when ulp long double
(80 bit IEEE) is worse than float
. An implicit assumption seems to be that double
cannot be worse than long double
. For directional rounding modes, they seem to always check both float
and double
explicitly.
However, there is a strange thing.
- There are no test results for
exp
. - For
cos
and tan
they only check real / complex long double
.
source share