当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C++ fma()用法及代码示例


fma() 函数接受三个参数 x、y 和 z,并在不丢失精度的情况下返回 x*y+z

该函数在<cmath> 头文件中定义。

fma() 原型 [从 C++ 11 标准开始]

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); 
Promoted fma(Type1 x, Type2 y, Type z); // For combinations of arithmetic types

从 C++11 开始,如果传递给 fma() 的任何参数是 long double ,则返回类型 Promotedlong double 。如果不是,则返回类型 Promoteddouble

[Mathematics] x*y+z = fma(x, y, z) [C++ Programming]

参数:

fma() 接受三个参数。

  • x- 要相乘的第一个参数。
  • y- 第二个参数与 x 相乘。
  • z- 要添加到 x 和 y 乘积的第三个参数。

返回:

fma() 函数返回x*y+z,就像计算到无限精度并四舍五入一次以适合结果类型。

示例:fma() 如何工作?

#include <cmath>
using namespace std;

int main()
{
    double x = 2.0, y = 3.1, z = 3.0, result;
    result = fma(x, y, z);
    cout << "fma(x, y, z) = " << result << endl;

    long double xLD = 3.4, resultLD;
    resultLD = fma(xLD, y, z);
    cout << "fma(xLD, y, z) = " << resultLD << endl;
		
    return 0;
}

运行程序时,输出将是:

fma(x, y, z) = 9.2
fma(xLD, y, z) = 13.54

相关用法


注:本文由纯净天空筛选整理自 C++ fma()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。