FMA(3) NEWLIB FMA(3)NAME
1.21 `fma', `fmaf'-floating multiply add
SYNOPSIS
#include <math.h>
double fma(double X, double Y, double Z);
float fmaf(float X, float Y, float Z);
DESCRIPTION
The `fma' functions compute (X * Y) + Z, rounded as one ternary opera‐
tion: they compute the value (as if) to infinite precision and round
once to the result format, according to the rounding mode characterized
by the value of FLT_ROUNDS. That is, they are supposed to do this:
see below.
RETURNS
The `fma' functions return (X * Y) + Z, rounded as one ternary opera‐
tion.
*Bugs*
This implementation does not provide the function that it should,
purely returning "(X * Y) + Z;" with no attempt at all to provide the
simulated infinite precision intermediates which are required. DO NOT
USE THEM.
If double has enough more precision than float, then `fmaf' should
provide the expected numeric results, as it does use double for the
calculation. But since this is not the case for all platforms, this
manual cannot determine if it is so for your case.
PORTABILITY
ANSI C, POSIX.
SEE ALSO
fma is part of the library. The full documentation for is maintained
as a Texinfo manual. If info and are properly installed at your site,
the command
info
will give you access to the complete manual.
NEWLIB April 2010 FMA(3)