Funkcia fma () prijíma tri argumenty x, yaz a vracia x * y + z bez straty presnosti
Táto funkcia je definovaná v hlavičkovom súbore.
prototyp fma () (od štandardu C ++ 11)
dvojité fma (dvojité x, dvojité y, dvojité z); float fma (float x, float y, float z); dlhé dvojité fma (dlhé dvojité x, dlhé dvojité y, dlhé dvojité z); Propagované fma (Typ1 x, Typ2 y, Typ z); // Pre kombinácie aritmetických typov
Od verzie C ++ 11, ak je nejaký argument odovzdaný fma () long double
, je návratový typ Propagovaný long double
. Ak nie, návratový typ Propagovaný je double
.
(Matematika) x * y + z = fma (x, y, z) (programovanie v C ++)
Parametre fma ()
Fma () má tri argumenty.
- x - Prvý argument, ktorý sa má vynásobiť.
- y - Druhý argument, ktorý sa má vynásobiť x.
- z - Tretí argument, ktorý sa má pridať k súčinu x a y.
fma () návratová hodnota
Funkcia fma () sa vráti x*y+z
, akoby bola vypočítaná s nekonečnou presnosťou a zaokrúhlená jedenkrát tak, aby zodpovedala typu výsledku.
Príklad: Ako funguje 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; )
Po spustení programu bude výstup:
fma (x, y, z) = 9,2 fma (xLD, y, z) = 13,54