Funkcija fma () sprejme tri argumente x, y in z ter vrne x * y + z, ne da bi izgubila natančnost
Ta funkcija je definirana v datoteki glave.
prototip fma () (od standarda C ++ 11)
dvojni fma (dvojni x, dvojni y, dvojni z); float fma (float x, float y, float z); dolga dvojna fma (dolga dvojna x, dolga dvojna y, dolga dvojna z); Promoted fma (Type1 x, Type2 y, Type z); // Za kombinacije aritmetičnih vrst
Ker je C ++ 11, če je kateri koli argument, poslan v fma () long double
, je vrsta vrnjenega Promoted long double
. V nasprotnem primeru je vrsta vračila Promoted double
.
(Matematika) x * y + z = fma (x, y, z) (programiranje na C ++)
fma () parametri
Fma () ima tri argumente.
- x - prvi argument, ki ga je treba pomnožiti.
- y - Drugi argument, ki ga je treba pomnožiti z x.
- z - Tretji argument, ki ga je treba dodati zmnožku x in y.
fma () Vrnjena vrednost
Funkcija fma () se vrne, x*y+z
kot da je izračunana do neskončne natančnosti in enkrat zaokrožena, da ustreza vrsti rezultata.
Primer: Kako deluje 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; )
Ko zaženete program, bo rezultat:
fma (x, y, z) = 9,2 fma (xLD, y, z) = 13,54