A função fma () recebe três argumentos x, y e z e retorna x * y + z sem perder a precisão
Esta função é definida no arquivo de cabeçalho.
protótipo fma () (a partir do padrão C ++ 11)
fma duplo (duplo x, duplo y, duplo z); float fma (float x, float y, float z); fma duplo longo (duplo x longo, duplo longo y, duplo longo z); Fma promovida (Tipo1 x, Tipo2 y, Tipo z); // Para combinações de tipos aritméticos
Desde C ++ 11, se qualquer argumento passado para fma () for long double
, o tipo de retorno Promovido será long double
. Caso contrário, o tipo de retorno promovido é double
.
(Matemática) x * y + z = fma (x, y, z) (Programação C ++)
Parâmetros fma ()
O fma () leva três argumentos.
- x - O primeiro argumento a ser multiplicado.
- y - o segundo argumento a ser multiplicado por x.
- z - o terceiro argumento a ser adicionado ao produto de x e y.
fma () Valor de retorno
A função fma () retorna x*y+z
como se calculada com precisão infinita e arredondada uma vez para se ajustar ao tipo de resultado.
Exemplo: Como funciona o fma ()?
#include 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; )
Quando você executa o programa, a saída será:
fma (x, y, z) = 9,2 fma (xLD, y, z) = 13,54