Funktionen fma () tar tre argument x, y och z och returnerar x * y + z utan att förlora precision
Denna funktion definieras i rubrikfilen.
fma () prototyp (Från och med C ++ 11-standarden)
dubbel fma (dubbel x, dubbel y, dubbel z); float fma (float x, float y, float z); lång dubbel fma (lång dubbel x, lång dubbel y, lång dubbel z); Främjad fma (Type1 x, Type2 y, Type z); // För kombinationer av aritmetiska typer
Eftersom C ++ 11, om något argument skickat till fma () är long double
, är returtypen Promoted long double
. Om inte är returtypen Promoted double
.
(Matematik) x * y + z = fma (x, y, z) (C ++ programmering)
fma () Parametrar
Fma () tar tre argument.
- x - Det första argumentet som ska multipliceras.
- y - Det andra argumentet som ska multipliceras med x.
- z - Det tredje argumentet som ska läggas till produkten av x och y.
fma () Returvärde
Funktionen fma () återgår x*y+z
som om den beräknas till oändlig precision och avrundas en gång för att passa resultatstypen.
Exempel: Hur fungerar 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; )
När du kör programmet blir resultatet:
fma (x, y, z) = 9,2 fma (xLD, y, z) = 13,54