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);
double fma (double x , double y , double z); float fma (float x , float y , float z);long double fma (long double x, long double y, long double z); double fma (Type1 x , Type2 y , Type3 z); // additional overloads
x*y+z
算术运算提供更高的效率(例如当使用硬件乘加指令时):宏 | 描述 |
---|---|
FP_FAST_FMA | 对于 double 类型的参数,其执行速度通常与 x*y+z 一样快或更快。 |
FP_FAST_FMAF | 对于 float 类型的参数,其执行速度通常与 x*y+z 一样快或更快。 |
FP_FAST_FMAL | 对于 long double 类型的参数,其执行速度通常与 x*y+z 一样快或更快。 |
x*y+z
的结果
|
|
10.0 * 20.0 + 30.0 = 230.000000 |