Ads by ProfitSence
Close

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.

Syntax

			
					fma(double x, double y, double z)

			
	

Parameters

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);
#else
  result = x*y+z;
#endif
  printf ("11.0 * 22.0 + 33.0 = %f\n", result);
  return 0;
}

			
	

Output

			
					11.0 * 22.0 + 33.0 = 275.000000