glibc conditioning
Stephen L Moshier
moshier@mediaone.net
Thu Aug 30 16:00:00 GMT 2001
> the math library will produce wrong results.
Here is a rough comparison between 64-bit and 80-bit coprocessor settings
for about two dozen of the functions. The situation looks better
than it once was.
Consistency test of math functions, glibc-2.1.3, x86-linux libm.
Max and rms relative errors for 1000000 random arguments.
In general, arguments are chosen to avoid generating denormal results.
Coprocessor Setting
80-bit 64-bit
peak rms peak rms
x = cbrt( cube(x) ): 1.76E-16 5.11E-17 4.80E-16 1.15E-16
x = atan( tan(x) ): 1.97E-16 1.16E-17 1.45E-16 1.16E-17
x = sin( asin(x) ): 1.32E-16 1.22E-17 2.31E-16 5.54E-17
x = sqrt( square(x) ): 0.00E+00 0.00E+00 0.00E+00 0.00E+00
x = log( exp(x) ): 1.11E-16 A 4.06E-18 A 2.22E-16 A 4.81E-17 A
x = tanh( atanh(x) ): 2.17E-16 1.45E-17 6.56E-16 1.16E-16
x = asinh( sinh(x) ): 1.26E-16 8.73E-19 4.33E-16 4.65E-17
x = acosh( cosh(x) ): 1.04E-13 A 1.69E-16 A 1.04E-13 A 1.79E-16 A
x = log10( exp10(x) ): 5.55E-17 A 1.26E-18 A 1.84E-16 A 5.05E-17 A
x = pow( pow(x,a),1/a ): 4.36E-12 4.56E-15 5.80E-12 5.94E-15
x = cos( acos(x) ): 2.22E-16 A 6.62E-17 A 2.22E-16 A 6.84E-17 A
Wronksian of Yn, Jn: 6.95E-13 A 7.98E-16 A 6.81E-13 A 9.02E-16 A
(A = absolute error criterion)
More information about the Libc-alpha
mailing list