FMA(3) Library Functions Manual FMA(3)

fmamultiply and add, then round

#include <math.h>

double
fma(double x, double y, double z);

long double
fmal(long double x, long double y, long double z);

float
fmaf(float x, float y, float z);

The () functions compute (x*y)+z, rounded as one ternary operation: they compute the value (as if) to infinite precision and round once to the result format, according to the current rounding mode.

fma(x, y, z) returns a NaN and optionally raises the "invalid" floating-point exception if one of x and y is infinite, the other is 0, and z is a NaN.

(x, y, z) returns a NaN and raises the "invalid" floating-point exception if one of x and y is infinite, the other is 0, and z is not NaN.

(x, y, z) returns a NaN and raises the "invalid" floating-point exception if x times y is an exact infinity, and z is also an infinity but with the opposite sign.

fdim(3), fmax(3), fmin(3)

The fma() functions conform to ISO/IEC 9899:2011.

May 28, 2008 macOS 15.2