Version française

Test of Mathematical Functions of the Standard C Library

Some of the mathematical functions of the standard C library have been tested on worst cases for correct rounding in double precision. The following table gives the ratio or the number of incorrect roundings for various machines, in the rounding to nearest mode. If your browser has CSS 2 support, you can put the pointer over the machine name to have some information about the machine (you can also look at the details host by host). Greyed cells (or with brackets) contain a link to explanations below the table. This table is quite old (latest changes in 2005 and a bit in 2006), but this gives an idea about the problem.

Function exp log exp2 log2 exp10 log10 sinh asinh cosh acosh sin asin cos acos tan atan isq isqrt cube cbrt
Number of tests 2268 2813 1145 929 1668 1883 2215 2262 2026 1877 1611 1655 1576 1569 1706 1735 58 78 150 138
jules
49 % 43 % 52 % 46 % 49 % 100 % 50 % 41 % 100 % 49 % 100 % 83 % 100 % 100 % 55 % 51 %
laudomia5
greux
tate
dixsept
hermione
ble
spe186
49 % 43 % 48 % 45 % 52 % 46 % 49 % 52 % 50 % 41 % 51 % 49 % 49 % 83 % 52 % 50 % 55 % 51 % 53 % 43 %
vin (old)
49 % 43 % 48 % 45 % 52 % 46 % 52 % 52 % 50 % 41 % 51 % 49 % 49 % 83 % 52 % 50 % 55 % 51 % 53 % 43 %
spe152
49 % 43 % 46 % 51 % 49 % 46 % 49 % 51 % 50 % 49 % 50 % 52 % 50 % 53 % 51 % 51 % 58 %
spe143 (old)
49 % 43 % 46 % 51 % 82 % 46 % 86 % 51 % 51 % 49 % 95 % 52 % 50 % 53 % 51 %
spe143
49 % 43 % 46 % 51 % 50 % 46 % 50 % 51 % 51 % 49 % 95 % 52 % 50 % 53 % 51 % 51 % 58 %
lepuid
lucrezia
courge
49 % 43 % 48 % 44 % 52 % 47 % 49 % 51 % 50 % 41 % 51 % 49 % 49 % 83 % 52 % 50 % 55 % 51 % 53 % 43 %
l.ldh.org
49 % 42 % 48 % 44 % 52 % 48 % 49 % 50 % 50 % 41 % 51 % 49 % 49 % 83 % 51 % 50 % 55 % 51 % 53 % 43 %
prunille (macosx)
49 % 31 % 46 % 29 % 41 % 50 % 50 % 50 % 49 % 49 % 48 % 44 % 50 % 46 % 44 % 41 % 50 % 47 % 58 %
zaurus
49 % 30 % 70 % 48 % 51 % 50 % 46 % 48 % 49 % 48 % 45 % 30 % 51 % 51 % 53 % 51 %
spe153
spe158
49 % 30 % 51 % 50 % 51 % 50 % 46 % 48 % 49 % 48 % 45 % 30 % 51 % 51 % 53 % 51 %
spe149 (old)
spe149
50 % 30 % 48 % 51 % 50 % 47 % 48 % 49 % 47 % 45 % 29 % 51 % 51 % 53 % 51 %
spe192
spe191
50 % 31 % 50 % 47 % 50 % 49 % 54 % 50 % 48 % 49 % 49 % 50 % 50 % 45 % 45 % 43 % 57 %
ange
50 % 31 % 51 % 48 % 51 % 48 % 53 % 49 % 48 % 51 % 49 % 49 % 50 % 55 % 60 % 49 % 58 %
spe145
51 % 31 % 47 % 42 % 44 % 47 % 47 % 45 % 51 % 51 % 47 % 50 % 41 % 49 % 46 % 48 % 55 % 45 % 51 %
jean
51 % 31 % 44 % 47 % 47 % 45 % 51 % 51 % 47 % 50 % 41 % 49 % 46 % 48 % 55 %
eleonore
51 % 31 % 44 % 47 % 47 % 45 % 51 % 51 % 47 % 50 % 41 % 49 % 46 % 48 % 55 % 45 % 51 %
leon1
cosimo
ginevra
spe206
51 % 31 % 44 % 47 % 46 % 45 % 50 % 51 % 47 % 50 % 41 % 49 % 46 % 48 % 55 % 45 % 51 %
spe171
51 % 31 % 47 % 42 % 44 % 47 % 46 % 45 % 50 % 51 % 47 % 50 % 41 % 49 % 46 % 48 % 55 % 45 % 51 %
marie (libc232)
50 % 30 % 46 % 38 % 50 % 42 % 50 % 50 % 46 % 49 % 48 % 47 % 48 % 29 % 50 % 45 % 48 % 47 %
spe190
50 % 30 % 46 % 38 % 50 % 42 % 50 % 50 % 47 % 49 % 48 % 47 % 48 % 29 % 50 % 45 % 48 % 47 % 49 % 62 %
spe166
49 % 30 % 52 % 50 % 51 % 50 % 46 % 48 % 49 % 47 % 45 % 28 % 50 % 51 % 53 % 51 %
spe156
43 % 52 % 52 % 50 % 66 % 46 % 49 % 50 % 40 % 49 % 51 % 50 % 50 % 41 % 46 % 46 % 55 % 54 % 48 % 46 %
spe176 (old)
47 % 43 % 46 % 46 % 47 % 49 % 46 % 44 % 52 % 49 % 50 % 39 % 49 % 41 % 59 % 49 %
spe176
47 % 43 % 46 % 46 % 44 % 49 % 38 % 44 % 52 % 49 % 50 % 39 % 49 % 41 % 59 % 49 % 45 % 43 %
bar
craffe
50 % 30 % 47 % 49 % 51 % 48 % 50 % 50 % 46 % 49 % 49 % 47 % 50 % 29 % 51 % 50 % 57 % 53 % 40 % 58 %
riscpc
42 % 34 % 66 % 45 % 80 % 50 % 48 % 49 % 47 % 50 % 50 % 37 % 50 % 44 % 59 % 59 %
iyonix
42 % 34 % 51 % 50 % 66 % 45 % 80 % 50 % 48 % 49 % 47 % 50 % 50 % 37 % 50 % 44 % 59 % 59 %
spe170
0 0 51 % 50 % 66 % 47 % 45 % 50 % 45 % 49 % 0 0 17 % 0 0 0 0 0 62 %
lepois
0 0 51 % 50 % 66 % 47 % 45 % 50 % 45 % 49 % 0 0 17 % 0 0 0
lepois (sid)
julien1
0 0 51 % 50 % 66 % 47 % 45 % 50 % 45 % 49 % 0 0 0 17 % 0 0 0
madeleine1
doubleeagle
0 0 51 % 50 % 66 % 47 % 45 % 50 % 45 % 49 % 0 0 0 17 % 0 0 0 0 62 %
marie (libc233)
spe189
helene
vin
n810
0 0 51 % 50 % 66 % 47 % 45 % 50 % 45 % 49 % 0 0 0 17 % 0 0 0 0 0 62 %
ay (libc236)
0 0 52 % 50 % 66 % 47 % 45 % 50 % 45 % 49 % 0 0 0 17 % 0 0 0 0 0 62 %
ay (libc235)
0 0 52 % 50 % 66 % 48 % 45 % 50 % 45 % 49 % 0 0 0 17 % 0 0 0 0 0 62 %
ay (libc232)
doublejack
0 52 % 50 % 66 % 48 % 45 % 50 % 45 % 49 % 0 0 0 17 % 0 0 0 0 0 62 %

Notes:

Distribution:

The search for worst cases for the tests above (except precomputations and postcomputations) required 49130 hours of computation on a cluster of the Centre Charles Hermite (8 biprocessor machines), 42129 hours on machines of the Laboratoire de l'Informatique du Parallélisme (ENS de Lyon, France), 9333 hours on machines of the MEDICIS computation center, and 5767 hours on machines of the Loria, in the 2000s.

This page deals with correct rounding only. For error analysis of the mathematical functions, you can look at Gaston H. Gonnet's page or at MPCHECK (by Paul Zimmermann and Nathalie Revol).



webmaster@vinc17.org