C ++ fma () - Biblioteca standard C ++

Funcția fma () ia trei argumente x, y și z și returnează x * y + z fără a pierde precizia

Această funcție este definită în fișierul antet.

prototip fma () (începând cu standardul C ++ 11)

dublu fma (dublu x, dublu y, dublu z); float fma (float x, float y, float z); lung dublu fma (lung dublu x, lung dublu y, lung dublu z); FMA promovat (Type1 x, Type2 y, Type z); // Pentru combinații de tipuri aritmetice

Din moment ce C ++ 11, dacă vreun argument trecut la fma () este long double, tipul de returnare Promovat este long double. Dacă nu, tipul de returnare Promovat este double.

 (Matematică) x * y + z = fma (x, y, z) (Programare C ++)

fma () Parametri

Fma () ia trei argumente.

  • x - Primul argument care trebuie înmulțit.
  • y - Al doilea argument care trebuie înmulțit cu x.
  • z - Al treilea argument care trebuie adăugat produsului lui x și y.

fma () Valoare returnată

Funcția fma () revine x*y+zca și cum ar fi calculată la o precizie infinită și rotunjită o dată pentru a se potrivi tipului de rezultat.

Exemplu: Cum funcționează 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; )

Când rulați programul, ieșirea va fi:

 fma (x, y, z) = 9,2 fma (xLD, y, z) = 13,54

Articole interesante...