fma , fmaf , fmal 和 fmad128 子例程
用途
浮点乘-加。
语法
描述
法马, 弗马夫, 菲马尔和 fmad128 子例程计算 (X * Y) + Z,取整为一个三元运算。 它们根据以 FLT_ROUNES 值为特征的舍入方式计算值 (如假设) 为无限精度,并对结果格式进行一次舍入。
希望检查错误情况的应用程序应该将 错误号 全局变量设置为零,并在调用这些子例程之前调用 费克莱雷克斯普(FE_ALL_EXCEPT)。 返回时,如果 错误号 为非零或 费泰斯特西普(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW) 为非零,那么表示发生了错误。
参数
| 项 | 描述 |
|---|---|
| X | 指定要与 Y 参数相乘的值。 |
| y | 指定要与 X 参数相乘的值。 |
| z | 指定要添加到 X 和 Y 参数的乘积中的值。 |
返回值
成功完成后, 法马, 弗马夫, 菲马尔和 fmad128 子例程将返回 (X * Y) + Z,舍入为一个三元运算。
如果x或y为NaN,返回NaN。
如果 x 乘以 y 是精确的无穷大,并且 z 也是无穷大但带有相反符号,那么将发生域错误,并返回 NaN 。
如果x和y参数中的一个为无限大,另一个为零,且z参数不是NaN,发生域错误,并返回NaN。
如果x和y参数之一为无限大,另一个为零,而z为NaN,返回NaN,并可能出现域错误。
If x*y is not 0*Inf nor Inf*0 and z is a NaN, a NaN is returned.