9.149 Fused Multiply Add (FMA) intrinsics

These intrinsics perform the calculation result = a × b + c, incurring only a single rounding step.

Performing the calculation with a single rounding step, rather than multiplying and then adding with two roundings, can result in a better degree of accuracy.
Declared in math.h, the FMA intrinsics are:
double fma(double a, double b, double c);
float fmaf(float a, float b, float c);
long double fmal(long double a, long double b, long double c);


  • These intrinsics are only available in C99 mode.
  • They are only supported for the Cortex-M4 processor.
  • If compiling for the Cortex-M4 processor, only fmaf() is available.
Non-ConfidentialPDF file icon PDF versionARM DUI0375F
Copyright © 2007, 2008, 2011, 2012, 2014 ARM. All rights reserved.