Funkcja fma () przyjmuje trzy argumenty x, yiz i zwraca x * y + z bez utraty precyzji
Ta funkcja jest zdefiniowana w pliku nagłówkowym.
prototyp fma () (w standardzie C ++ 11)
podwójne fma (podwójne x, podwójne y, podwójne z); float fma (float x, float y, float z); długie podwójne fma (długie podwójne x, długie podwójne y, długie podwójne z); Promowany fma (Type1 x, Type2 y, Type z); // Dla kombinacji typów arytmetycznych
Od C ++ 11, jeśli jakikolwiek argument przekazany do fma () jest long double
, zwracany typ Promoted to long double
. Jeśli nie, typ zwracany Promoted to double
.
(Matematyka) x * y + z = fma (x, y, z) (Programowanie w C ++)
Parametry fma ()
Fma () przyjmuje trzy argumenty.
- x - pierwszy argument do pomnożenia.
- y - drugi argument do pomnożenia przez x.
- z - Trzeci argument dodawany do iloczynu x i y.
fma () Wartość zwracana
Funkcja fma () zwraca x*y+z
tak, jakby została obliczona z nieskończoną precyzją i raz zaokrąglona w celu dopasowania do typu wyniku.
Przykład: Jak działa 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; )
Po uruchomieniu programu wynik będzie następujący:
fma (x, y, z) = 9,2 fma (xLD, y, z) = 13,54