English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Metodo e esempio di utilizzo della funzione fma() in C++

函数库 <cmath>C++

La funzione fma() utilizza tre parametri x, y e z e restituisce x * y + z senza perdere precisione

Questa funzione è definita in<cmath>Definito nel file di intestazione.

Prototipo di fma() [dalla versione standard 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); // Utilizzato per la combinazione di tipi aritmetici

Dalla versione C ++ 11 in poi, se i parametri passati a fma() sono di tipo long double, il tipo restituito Promoted è long double. Altrimenti, il tipo restituito Promoted è double.

[Matematica] x*y+z = fma(x, y, z) [Linguaggio C++]

Parametri di fma()

fma() accetta tre parametri.

  • x -Il primo parametro da moltiplicare.

  • y -Il secondo parametro deve essere moltiplicato per x.

  • z -Il terzo parametro deve essere aggiunto al prodotto x*y.

Valore restituito da fma()

Il risultato restituito dalla funzione fma() x*y+z è come se calcolato con precisione e arrotondato una volta per adattarsi al tipo di risultato.

Esempio: come funziona 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

函数库 <cmath>C++