Fungsi fma () mengambil tiga argumen x, y dan z, dan mengembalikan x * y + z tanpa kehilangan presisi
Fungsi ini didefinisikan dalam file header.
fma () prototipe (Sesuai standar C ++ 11)
fma ganda (x ganda, y ganda, z ganda); float fma (float x, float y, float z); panjang ganda fma (panjang ganda x, panjang ganda y, panjang ganda z); Fma yang dipromosikan (Type1 x, Type2 y, Type z); // Untuk kombinasi tipe aritmatika
Sejak C ++ 11, jika ada argumen yang diteruskan ke fma () adalah long double
, tipe kembalian Dipromosikan adalah long double
. Jika tidak, jenis pengembalian Dipromosikan adalah double
.
(Matematika) x * y + z = fma (x, y, z) (Pemrograman C ++)
fma () Parameter
Fma () membutuhkan tiga argumen.
- x - Argumen pertama yang akan dikalikan.
- y - Argumen kedua yang akan dikalikan dengan x.
- z - Argumen ketiga yang akan ditambahkan ke produk dari x dan y.
fma () Nilai Kembali
Fungsi fma () mengembalikan x*y+z
seolah-olah dihitung dengan presisi tak terbatas dan dibulatkan sekali agar sesuai dengan jenis hasil.
Contoh: Bagaimana fma () bekerja?
#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; )
Saat Anda menjalankan program, hasilnya adalah:
fma (x, y, z) = 9,2 fma (xLD, y, z) = 13,54