#include <math.h> // <cmath> en C++
double fma( double x, double y, double z ); // C99
float fmaf( float x, float y, float z ); // C99
long double fmal( long double x, long double y, long double z ); // C99
Ces trois fonctions calculent x * y + z comme une opération fusionnée, avec un seul arrondi final.
Ces éléments ont été ajoutés par la version C99 du standard du langage C.
Ces fonctions renvoient (x * y) + z, arrondi une seule fois.
L'exemple suivant montre une utilisation simple de ces fonctions.
1 2 3 4 5 6 7 8 |
#include <math.h> #include <stdio.h> #include <stdlib.h> int main() { printf( "fma(2.0, 3.0, 4.0) == %g\n", fma(2.0, 3.0, 4.0) ); return EXIT_SUCCESS; } |
Il est à noter que la librairie mathématique doit être ajoutée durant l'étape de "link" (édition des liens)
de votre exécutable. Cela se réalise en ajoutant l'option -lm à votre compilateur GCC. En cas
d'utilisation d'un autre compilateur, je vous renvoie vers la documentation de ce dernier.
$> gcc -o sample sample.c -lm $> ./sample fma(2.0, 3.0, 4.0) == 10 $>
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :