Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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 later
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
Fungsi | Header C | Header C++ |
---|---|---|
fma , , fmaf fmal |
<matematika.h> | <cmath> |
fma makro |
<tgmath.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Lihat juga
Referensi fungsi alfabet
remainder
, , remainderf
remainderl
remquo
, , remquof
remquol