.\" Copyright 2002 Walter Harms (walter.harms@informatik.uni-oldenburg.de) .\" Distributed under GPL, 2002-07-27 Walter Harms .\" Modified 2004-11-15, Added further text on FLT_ROUNDS .\" as suggested by AEB and Fabian Kreutz .\" .TH FMA 3 2002-07-27 "" "Linux Programmer's Manual" .SH NAME fma, fmaf, fmal \- floating-point multiply and add .SH SYNOPSIS .nf .B #include .sp .BI "double fma(double " x ", double " y ", double " z ); .br .BI "float fmaf(float " x ", float " y ", float " z ); .br .BI "long double fmal(long double " x ", long double " y ", long double " z ); .fi .sp Compile with \-std=c99; link with \-lm. .SH DESCRIPTION The .BR fma () function computes .IR x " * " y " + " z . The result is rounded according to the rounding mode determined by the value of FLT_ROUNDS. FLT_ROUNDS indicates the implementation-defined rounding behaviour for floating-point addition, and has one of the following values: .IP \-1 The rounding mode is not determinable. .IP 0 Rounding is towards 0. .IP 1 Rounding is towards nearest number. .IP 2 Rounding is towards positive infinity. .IP 3 Rounding is towards negative infinity. .PP Other values represent machine-dependent, non-standard rounding modes. .SH "CONFORMING TO" C99 .SH "SEE ALSO" .BR fenv (3), .BR remainder (3), .BR remquo (3)