De functie fma () heeft drie argumenten x, y en z en retourneert x * y + z zonder verlies van precisie
Deze functie is gedefinieerd in het header-bestand.
fma () prototype (vanaf C ++ 11 standaard)
dubbele fma (dubbele x, dubbele y, dubbele z); float fma (float x, float y, float z); lange dubbele fma (lange dubbele x, lange dubbele y, lange dubbele z); Gepromoveerde fma (Type1 x, Type2 y, Type z); // Voor combinaties van rekenkundige typen
Sinds C ++ 11, als een argument is doorgegeven aan fma (), is long double
het retourtype Promoted long double
. Zo niet, dan is het retourtype Gepromoot double
.
(Wiskunde) x * y + z = fma (x, y, z) (C ++ programmeren)
fma () Parameters
De fma () heeft drie argumenten.
- x - Het eerste argument dat moet worden vermenigvuldigd.
- y - Het tweede argument dat moet worden vermenigvuldigd met x.
- z - Het derde argument dat moet worden toegevoegd aan het product van x en y.
fma () Retourwaarde
De functie fma () wordt geretourneerd x*y+z
alsof deze met een oneindige precisie is berekend en eenmaal is afgerond om in het resultaattype te passen.
Voorbeeld: hoe werkt 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; )
Wanneer u het programma uitvoert, is de uitvoer:
fma (x, y, z) = 9,2 fma (xLD, y, z) = 13,54