English version

Test de fonctions mathématiques de la bibliothèque standard C

Certaines des fonctions mathématiques de la bibliothèque standard C ont été testées sur des pires cas pour l'arrondi correct en double précision. Le tableau suivant donne le pourcentage ou le nombre d'arrondis incorrects pour diverses machines, dans le mode d'arrondi au plus près. Si votre navigateur supporte CSS 2, vous pouvez placer le pointeur au-dessus du nom de la machine pour avoir des informations sur cette machine (vous pouvez aussi voir les détails machine par machine). Les cellules grisées (ou avec des crochets) contiennent un lien vers des explications au bas du tableau. Ce tableau est assez vieux (derniers changements en 2005, 5 ajouts en 2006 et 2 en 2009), mais cela donne une idée du problème.

Fonction exp log exp2 log2 exp10 log10 sinh asinh cosh acosh sin asin cos acos tan atan isq isqrt cube cbrt
Nombre de 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 %

Des résultats plus récents:

Fonction exp log expm1 log1p exp2 log2 exp10 log10 sinh asinh cosh acosh tanh atanh sin asin cos acos tan atan isq isqrt cube cbrt
Nombre de tests 2268 2813 7578 7550 1145 929 1668 1883 2215 2262 2026 1877 1852 1552 1611 1655 1576 1569 1706 1735 58 78 150 138
unstable9x
49 % 43 % 50 % 52 % 48 % 44 % 52 % 47 % 51 % 50 % 49 % 50 % 52 % 51 % 51 % 49 % 49 % 40 % 52 % 50 % 53 % 51 % 49 % 49 %
unstable10x
49 % 43 % 50 % 52 % 48 % 44 % 52 % 47 % 51 % 50 % 49 % 48 % 52 % 51 % 51 % 49 % 49 % 40 % 52 % 50 % 53 % 51 % 49 % 49 %
gcc302
49 % 43 % 44 % 52 % 48 % 50 % 46 % 51 % 50 % 46 % 49 % 50 % 51 % 51 % 49 % 49 % 83 % 52 % 50 % 53 % 47 % 51 % 58 %
gcc300
49 % 43 % 44 % 52 % 48 % 45 % 46 % 51 % 50 % 46 % 49 % 50 % 51 % 49 % 49 % 45 % 83 % 51 % 50 % 53 % 51 % 51 % 58 %
gcc303
50 % 30 % 44 % 48 % 48 % 37 % 42 % 51 % 50 % 47 % 48 % 50 % 51 % 49 % 47 % 44 % 29 % 51 % 51 % 53 % 47 % 51 % 56 %
gcc304
48 % 31 % 47 % 49 % 49 % 30 % 40 % 48 % 50 % 45 % 49 % 46 % 50 % 49 % 52 % 43 % 47 % 51 % 52 % 53 % 63 % 41 % 47 %
unstable11s
unstable11x
50 % 31 % 44 % 48 % 47 % 51 % 51 % 49 % 50 % 50 % 46 % 49 % 50 % 50 % 49 % 47 % 48 % 29 % 50 % 48 % 57 % 53 % 40 % 43 %
unstable9s
50 % 30 % 44 % 48 % 47 % 50 % 51 % 48 % 50 % 50 % 46 % 49 % 50 % 50 % 49 % 47 % 50 % 29 % 51 % 50 % 57 % 53 % 40 % 43 %
unstable10s
50 % 30 % 44 % 48 % 47 % 49 % 51 % 48 % 50 % 50 % 46 % 49 % 50 % 50 % 49 % 47 % 47 % 29 % 50 % 48 % 57 % 53 % 40 % 43 %
gcc119
49 % 31 % 43 % 51 % 0 0 41 % 50 % 50 % 46 % 54 % 50 % 50 % 49 % 48 % 44 % 25 % 46 % 44 % 52 % 53 % 50 % 58 %
gcc185
51 % 29 % 44 % 48 % 52 % 50 % 50 % 47 % 51 % 50 % 46 % 49 % 50 % 51 % 47 % 0 44 % 17 % 0 0 47 % 50 % 53 % 62 %
joooj
51 % 29 % 44 % 48 % 51 % 50 % 50 % 47 % 51 % 50 % 46 % 49 % 50 % 51 % 47 % 0 44 % 17 % 0 0 47 % 50 % 53 % 62 %
gcc24
50 % 29 % 44 % 48 % 51 % 50 % 50 % 47 % 51 % 50 % 46 % 49 % 50 % 51 % 47 % 0 44 % 17 % 0 0 50 % 44 % 55 % 62 %
cventin (libc 2.34)
50 % 28 % 44 % 48 % 49 % 37 % 50 % 47 % 51 % 50 % 47 % 49 % 50 % 51 % 47 % 52 % 44 % 29 % 46 % 44 % 60 % 46 % 47 % 62 %
cventin (libc 2.31)
50 % 28 % 44 % 48 % 49 % 37 % 50 % 47 % 51 % 50 % 47 % 49 % 50 % 51 % 47 % 0 44 % 17 % 0 0 60 % 46 % 47 % 62 %
gcc202
49 % 27 % 44 % 48 % 49 % 37 % 50 % 47 % 51 % 50 % 47 % 49 % 50 % 51 % 47 % 0 44 % 17 % 0 0 50 % 42 % 51 % 62 %
gcc115
0 26 % 44 % 48 % 52 % 50 % 50 % 47 % 45 % 50 % 45 % 49 % 50 % 51 % 0 0 0 17 % 0 2 % 0 0 32 % 62 %
gcc110
gcc112
gcc135
22 26 % 44 % 48 % 52 % 50 % 50 % 47 % 45 % 50 % 45 % 49 % 50 % 51 % 0 0 0 17 % 0 2 % 0 0 0 62 %
gcc12
0 0 44 % 48 % 66 % 47 % 45 % 50 % 45 % 49 % 50 % 51 % 0 0 0 17 % 0 0 0 0 0 62 %
gcc118
0 0 44 % 48 % 52 % 50 % 50 % 47 % 45 % 50 % 45 % 49 % 50 % 51 % 0 0 0 17 % 0 0 0 0 0 62 %
gcc70
0 0 44 % 48 % 51 % 50 % 50 % 47 % 45 % 50 % 45 % 49 % 50 % 51 % 0 0 0 17 % 0 0 0 0 0 62 %

Notes:

Distribution:

Mes publications:

La recherche des pires cas pour les tests ci-dessus (hors précalculs et postcalculs) a nécessité 49130 heures de calcul sur un cluster du Centre Charles Hermite (8 machines biprocesseurs), 42129 heures de calcul sur des machines du Laboratoire de l'Informatique du Parallélisme (ENS de Lyon, France), 9333 heures de calcul sur des machines du centre de calcul MEDICIS, et 5767 heures de calcul sur des machines du Loria, dans les années 2000.

Cette page traite seulement de l'arrondi correct. Pour une analyse d'erreur des fonctions mathématiques, vous pouvez voir la page de Gaston H. Gonnet ou MPCHECK (par Paul Zimmermann et Nathalie Revol).



webmaster@vinc17.org