侧边栏壁纸
博主头像
noerror

虚灵不寐,众理具而万事出。

  • 累计撰写 239 篇文章
  • 累计创建 9 个标签
  • 累计收到 2 条评论
标签搜索

目 录CONTENT

文章目录

fma函数用法详解

noerror
2022-10-04 / 0 评论 / 0 点赞 / 135 阅读 / 533 字 / 正在检测是否收录...

fma函数用法详解

fma函数简介

  • 头文件包含
#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

fma函数常见使用错误

  • 链接错误
    undefined reference to `fma'
    解决办法:添加链接选项
-lm
  • 编译错误
    warning: implicit declaration of function ‘fma’ [-Wimplicit-function-declaration]
    解决办法:包含头文件
#include <math.h>

fma函数详细描述

这些函数计算x " * " y " + " z ,根据当前舍入模式将结果舍入为一个三值运算(请参见fenv (3))

fma函数返回值

这些函数返回x " * " y " + " z 的值,舍入为一个三进制运算。
如果x或y是NaN,则返回NaN。
如果x乘以y是精确的无穷大,而z是带有相反符号的无穷大,则发生域错误,并返回NaN。
如果x或y中的一个是无穷大,另一个是0,并且z不是NaN,则发生域错误,并返回NaN。
如果x或y中的一个是无穷大,另一个是0,并且z是NaN,则发生域错误,并返回NaN。
如果x乘以y不是无穷乘以零(反之亦然),并且z是NaN,则返回NaN。
如果结果溢出,则发生范围错误,并返回带正确符号的无穷大。
如果结果下溢,则发生范围错误,并返回带符号的0。

fma函数错误码

有关如何确定调用这些函数时是否发生错误的信息,请参见math_error (7)。
可能出现以下错误:

  • 域错误:xy+z、\或PPPP1PPPP2无效且PPPP3不是NaN。引发无效浮点异常( FE_INVALID )。
  • 范围错误:结果溢出引发溢出浮点异常( FE_OVERFLOW )。
  • 范围错误:结果下溢引发下溢浮点异常( FE_UNDERFLOW )。

这些函数不设置errno

0

评论区