C ++ fma () - C ++ standaardbibliotheek

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 doublehet 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+zalsof 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

Interessante artikelen...