La fonction fma () prend trois arguments x, y et z, et renvoie x * y + z sans perdre en précision
Cette fonction est définie dans le fichier d'en-tête.
prototype fma () (à partir de la norme C ++ 11)
double fma (double x, double y, double z); float fma (float x, float y, float z); long double fma (long double x, long double y, long double z); Promu fma (Type1 x, Type2 y, Type z); // Pour les combinaisons de types arithmétiques
Depuis C ++ 11, si un argument passé à fma () est long double
, le type de retour Promoted est long double
. Sinon, le type de retour Promu est double
.
(Mathématiques) x * y + z = fma (x, y, z) (Programmation C ++)
Paramètres fma ()
Le fma () prend trois arguments.
- x - Le premier argument à multiplier.
- y - Le deuxième argument à multiplier par x.
- z - Le troisième argument à ajouter au produit de x et y.
Valeur de retour fma ()
La fonction fma () renvoie x*y+z
comme si elle était calculée avec une précision infinie et arrondie une fois pour s'adapter au type de résultat.
Exemple: Comment fonctionne fma ()?
#include using namespace std; int main() ( double x = 2.0, y = 3.1, z = 3.0, result; result = fma(x, y, z); cout << "fma(x, y, z) = " << result << endl; long double xLD = 3.4, resultLD; resultLD = fma(xLD, y, z); cout << "fma(xLD, y, z) = " << resultLD << endl; return 0; )
Lorsque vous exécutez le programme, la sortie sera:
fma (x, y, z) = 9,2 fma (xLD, y, z) = 13,54