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
,則返回類型 Promoted
是 long double
。如果不是,則返回類型 Promoted
是 double
。
[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()用法及代碼示例
- C++ fmax()用法及代碼示例
- C++ fmax() and fmin()用法及代碼示例
- C++ fmin()用法及代碼示例
- C++ fmod()用法及代碼示例
- C++ fcvt()用法及代碼示例
- C++ fwscanf()用法及代碼示例
- C++ fdim()用法及代碼示例
- C++ fetestexcept()用法及代碼示例
- C++ forward_list::unique()用法及代碼示例
- C++ forward_list::emplace_front()用法及代碼示例
- C++ fopen()用法及代碼示例
- C++ forward_list::max_size()用法及代碼示例
- C++ forward_list::reverse()用法及代碼示例
- C++ feupdateenv()用法及代碼示例
- C++ forward_list::swap()用法及代碼示例
- C++ forward_list::front()、forward_list::empty()用法及代碼示例
- C++ functional::bad_function_call用法及代碼示例
- C++ find_if()用法及代碼示例
- C++ find()用法及代碼示例
注:本文由純淨天空篩選整理自 C++ fma()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。