URL: https://linuxfr.org/users/niconico/journaux/comment-les-programmeurs-%C3%A9crivent-du-code-flottant Title: Comment les programmeurs écrivent du code flottant ? Authors: Nicolas Boulay Date: 2007年12月03日T21:03:39+01:00 Tags: Score: 0 Une petite question métaphysique m'a traversé l'esprit ce soir : Comment les codeurs codent avec du code flottant ? Cela a l'air bien complexe. Si on reste sur PC x86, il y a les instructions x87, le SEE et les nombres sur 32, 64 et 80 bits, tout sachant que Intel calcule en interne sur 80 et non 64 bits pour les double au contraire de AMD. Comment s'écrit un code ? Par essais erreurs ? On doit évaluer "à la main" les fuites de précision et écrire l'algorithme en conséquence ? J'imagine que c'est la démarche des codes scientifiques pour éviter d'utiliser des nombres étendus plus lent. Ensuite, il y a bien des codeurs "3D" qui ne doivent jurer que par les 4 vecteurs floats SSE et les option type --fast-math qui se permettre de changer l'ordre des opération pour la vitesse (donc en cassant toutes étude de limitation d'erreurs de précision). Le codeur 3D doit tout de même avoir besoin d'un minimum de précision et doit à un moment ou un autre faire attention à son code, si il ne veut pas trop d'aberration dans l'image. Il doit y avoir aussi tous les intermédiaires entre ses 2 extrêmes. D'ailleurs comment choisi-t-on d'utiliser un type d'arrondi plutôt qu'un autre ? Quel est l'intérêt de gérer les NaN ou les infinis qui ralentissent tellement un code c ? Bref, je cherche des retours d'expériences sur la méthode choisie pour coder un algorithme utilisant les flottants.