Funkce fma () přebírá tři argumenty x, yaz a vrací x * y + z bez ztráty přesnosti
Tato funkce je definována v hlavičkovém souboru.
prototyp fma () (podle standardu C ++ 11)
double fma (double x, double y, double z); float fma (float x, float y, float z); long double fma (long double x, long double y, long double z); Propagované fma (Type1 x, Type2 y, Type z); // Pro kombinace aritmetických typů
Vzhledem k tomu, že v jazyce C ++ 11 je jakýkoli argument předaný fma () long double
, je návratový typ povýšen long double
. Pokud ne, je návratový typ Propagovaný double
.
(Mathematics) x * y + z = fma (x, y, z) (C ++ Programming)
Parametry fma ()
Fma () má tři argumenty.
- x - První argument, který se má vynásobit.
- y - Druhý argument, který se má vynásobit x.
- z - Třetí argument, který se má přidat k součinu x a y.
fma () návratová hodnota
Funkce fma () se vrací, x*y+z
jako by byla vypočítána s nekonečnou přesností, a jednou zaokrouhlena tak, aby odpovídala typu výsledku.
Příklad: Jak 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; )
Když spustíte program, výstup bude:
fma (x, y, z) = 9,2 fma (xLD, y, z) = 13,54