当前位置: C语言 -- 标准库 -- <math.h> -- fmad64

fmad64函数


概要:
#include <math.h>
#ifdef __STDC_IEC_60559_DFP__
    _Decimal64 fmad64(_Decimal64 x, _Decimal64 y, _Decimal64 z);
#endif 

描述:

该函数计算表达式(x×y)+z的值,整个运算作为一个三元操作舍入:该函数(好像)以无限的精度计算值,并根据当前舍入模式一次舍入到返回类型。

对于某些有限参数,会发生范围错误。对于无穷大参数,会发生域错误。


参数:
_Decimal64 x

参数为_Decimal64类型的浮点数。

_Decimal64 y

参数为_Decimal64类型的浮点数。

_Decimal64 z

参数为_Decimal64类型的浮点数。


返回值:

函数返回(x×y)+z的值,并按一次三元运算进行舍入。


范例:
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
/*函数fmad64范例*/

#include <math.h>
#include <stdio.h>

int main(void)
{
    #if __STDC_VERSION_MATH_H__ >= 202311L && defined(__STDC_IEC_60559_DFP__)
        _Decimal64 x = 2.0dd;
        _Decimal64 y = 2.5dd;
        _Decimal64 z = 3.0dd;
        
        printf("fmad64(%.2Df,%.2Df,%.2Df) = %.2Df\n", x, y, z, fmad64(x,y,z));
    #else
        puts("The implementation does not support fmad64 function.");
    #endif

    return 0;
}

输出:

The implementation does not support fmad64 function.


相关内容:
fma double类型的融合乘加运算函数。
fmaf float类型的融合乘加运算函数。
fmal long double类型的融合乘加运算函数。
fmad32 _Decimal32类型的融合乘加运算函数。
fmad128 _Decimal128类型的融合乘加运算函数。


主要参考资料:

1、ISO/IEC 9899:2024