Mathematical Library Functions fma(3M)
NAME
fma, fmaf, fmal - floating-point multiply-add
SYNOPSIS
c99 [ flag... ] file... -lm [ library... ]
#include
double fma(double x, double y, double z);
float fmaf(float x, float y, float z);
long double fmal(long double x, long double y, long double z);
DESCRIPTION
These functions compute (x * y) + z, rounded as one ternaryoperation. They compute the value (as if) to infinite preci-
sion and round once to the result format, according to therounding mode characterized by the value of FLT_ROUNDS.
RETURN VALUES
Upon successful completion, these functions return (x * y) + z, rounded as one ternary operation. If x or y are NaN, a NaN is returned. If x multiplied by y is an exact infinity and z is also an infinity but with the opposite sign, a domain error occurs and a NaN is returned. If one of x and y is infinite, the other is 0, and z is not a NaN, a domain error occurs and a NaN is returned. If x*y is not 0*Inf nor Inf*0 and z is a NaN, a NaN is returned.ERRORS
These functions will fail if: Domain Error The value of x*y+z is invalid or the value x*y is invalid.If the integer expression (math_errhandling
& MATH_ERREXCEPT) is non-zero, the invalid
floating-point exception will be raised.
SunOS 5.11 Last change: 12 Jul 2006 1
Mathematical Library Functions fma(3M)
Range Error The result overflows.If the integer expression (math_errhandling
& MATH_ERREXCEPT) is non-zero, the overflow
floating-point exception will be raised.
USAGE
An application wanting to check for exceptions should callfeclearexcept(FE_ALL_EXCEPT) before calling these functions.
On return, if fetestexcept(FE_INVALID | FE_DIVBYZERO |
FE_OVERFLOW | FE_UNDERFLOW) is non-zero, an exception has
been raised. An application should either examine the return value or check the floating point exception flags to detect exceptions.ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| Interface Stability | Committed ||_____________________________|_____________________________|
| MT-Level | MT-Safe |
|_____________________________|_____________________________|
| Standard | See standards(5). ||_____________________________|_____________________________|
SEE ALSO
feclearexcept(3M), fetestexcept(3M), math.h(3HEAD), attri-
butes(5), standards(5)SunOS 5.11 Last change: 12 Jul 2006 2