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 ternary
operation. They compute the value (as if) to infinite preci-
sion and round once to the result format, according to the
rounding mode characterized by the value of FLTROUNDS.
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.
ERORS
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 (matherrhandling
& MATHEREXCEPT) 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 (matherrhandling
& MATHEREXCEPT) is non-zero, the overflow
floating-point exception will be raised.
USAGE
An application wanting to check for exceptions should call
feclearexcept(FEALEXCEPT) before calling these functions.
On return, if fetestexcept(FEINVALID FEDIVBYZERO
FEOVERFLOW FEUNDERFLOW) 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.
ATRIBUTES
See attributes(5) for descriptions of the following attri-
butes:
ATRIBUTE TYPE ATRIBUTE VALUE
Interface Stability Standard
MT-Level MT-Safe
SEE ALSO
feclearexcept(3M), fetestexcept(3M), math.h(3HEAD), attri-
butes(5), standards(5)
SunOS 5.11 Last change: 12 Jul 2006 2
|