fma
, fmaf
, fmal
Mengalikan dua nilai bersama-sama, menambahkan nilai ketiga, lalu membulatkan hasil, sementara hanya kehilangan sejumlah kecil presisi karena pembulatan perantara.
Sintaks
double fma(
double x,
double y,
double z
);
float fma(
float x,
float y,
float z
); //C++ only
long double fma(
long double x,
long double y,
long double z
); //C++ only
float fmaf(
float x,
float y,
float z
);
long double fmal(
long double x,
long double y,
long double z
);
#define fma(X, Y, Z) // Requires C11 or higher
Parameter
x
Nilai pertama untuk dikalikan.
y
Nilai kedua untuk dikalikan.
z
Nilai yang akan ditambahkan.
Nilai hasil
Mengembalikan sekitar (x * y) + z
. Nilai yang dikembalikan kemudian dibulatkan menggunakan format pembulatan saat ini, meskipun dalam banyak kasus, nilai tersebut mengembalikan hasil yang salah dibulatkan dan dengan demikian nilainya mungkin tidak ada hingga setengah ulp dari nilai yang benar.
Jika tidak, dapat mengembalikan salah satu nilai berikut:
Masalah | Tampilkan |
---|---|
x = INFINITY, y = 0 ataux = 0, y = TAK TERBATAS |
NaN |
x atau y = persis ± INFINITY, z = INFINITY dengan tanda berlawanan |
NaN |
x atau y = NaN |
NaN |
not (x = 0, y = indefinite) dan z = NaNnot ( x =indefinite, y =0) dan z = NaN |
NaN |
Kesalahan rentang luapan | HUGE_VAL ±, ±HUGE_VALF , atau ±HUGE_VALL |
Kesalahan rentang aliran bawah | nilai yang benar, setelah pembulatan. |
Kesalahan dilaporkan seperti yang ditentukan dalam _matherr
.
Keterangan
Karena C++ memungkinkan kelebihan beban, Anda dapat memanggil kelebihan beban fma
yang mengambil dan mengembalikan float
dan long double
jenis. Dalam program C, kecuali Anda menggunakan <makro tgmath.h> untuk memanggil fungsi ini, fma
selalu mengambil dan mengembalikan double
.
Jika Anda menggunakan <makro tgmath.h>fma()
, jenis argumen menentukan versi fungsi mana yang dipilih. Lihat Matematika generik jenis untuk detailnya.
Fungsi ini menghitung nilai seolah-olah diambil untuk presisi tak terbatas, dan kemudian membulatkan hasil akhir.
Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.
Persyaratan
Function | Header C | Header C++ |
---|---|---|
fma , fmaf , fmal |
<matematika.h> | <cmath> |
fma makro |
<tgmath.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Baca juga
Referensi fungsi alfabet
remainder
, remainderf
, remainderl
remquo
, remquof
, remquol
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk