Ads by ProfitSence

C++ fma()

Last Updated on Wednesday 5th Oct 2022

The fma() function takes three arguments x, y and z, and returns x*y+z without losing precision. It is defined in <cmath> header file.


					fma(double x, double y, double z)



The fma() takes three arguments.

  • x - The first argument to be multiplied.
  • y - The second argument to be multiplied with x.
  • z - The third argument to be added to the product of x and y.

Return value

Returns x*y+z as if calculated to infinite precision and rounded once to fit the result type.

fma() prototype [As of C++ 11 standard]

					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);


Example : C++ fma()

					#include <stdio.h>
#include <math.h>

int main () {
  double x,y,z,result;
  x = 11.0, y = 22.0, z = 33.0;
#ifdef FP_FAST_FMA
  result = fma(x,y,z);
  result = x*y+z;
  printf ("11.0 * 22.0 + 33.0 = %f\n", result);
  return 0;



					11.0 * 22.0 + 33.0 = 275.000000