#include <math.h> double fma(double x, double y, double z); float fmaf(float x, float y, float z); long double fmal(long double x, long double y, long double z);
-lm でリンクする。
glibc 向けの機能検査マクロの要件 (feature_test_macros(7) 参照):
fma(), fmaf(), fmal():
x か y が NaN の場合、NaN が返される。
y の x 倍がちょうど無限大で、 z がそれとは反対の符号の無限大の場合、 領域エラー (domain error) が発生し、NaN が返される。
x と y のうち一方が無限大で、もう一方が 0 で、 z が NaN でない場合、領域エラーが発生し、NaN が返される。
x と y のうち一方が無限大で、もう一方が 0 で、 z が NaN の場合、領域エラーが発生し、NaN が返される。
y の x 倍が 0 の無限大倍 (もしくはその逆) ではなく、 z が NaN の場合、NaN が返される。
結果がオーバーフローする場合、範囲エラー (range error) が発生し、 正しい符号の無限大が返される。
結果がアンダーフローする場合、 範囲エラーが発生し、符号付きの 0 が返される。
以下のエラーが発生する可能性がある。
インターフェース | 属性 | 値 |
fma(), fmaf(), fmal() | Thread safety | MT-Safe |
[man1]
[man2]
[man3]
[man4]
[man5]
[man6]
[man7]
[man8]
[a]
[b]
[c]
[d]
[e]
[f]
[g]
[h]
[i]
[j]
[k]
[l]
[m]
[n]
[o]
[p]
[q]
[r]
[s]
[t]
[u]
[v]
[w]
[x]
[y]
[z]