mercredi 24 septembre 2008
Le C doit mourir
mercredi 24 septembre 2008 - Geek
Le C est basé sur des standards désuets, et en voici encore une preuve : dans la norme ISO la conversion d'un float vers un int est une troncation de la partie flottante, tout programmeur le sait. Pourtant le FPU fait tous ses calculs dans un autre mode qui arrondit les valeurs, passer de ce mode au mode troncation vide le pipeline du FPU, ce qui fait perdre toute optimisation. Il existe une manière jusqu'à 10x plus rapide de convertir des floats en int en bénéficiant en plus d'un arrondi grace à la fonction lrint(3), comme l'explique cet excellent article de l'auteur de la libsndfile : Faster Floating Point to Integer Conversions.
