public static double fma (double a, double b, double c)

Returns the fused multiply add of the three arguments; that is, returns the exact product of the first two arguments summed with the third argument and then rounded once to the nearest double. The rounding is done using the round to nearest even. In contrast, if a * b + c is evaluated as a regular floating-point expression, two rounding errors are involved, the first for the multiply operation, the second for the addition operation.

Special cases:

Note that fusedMac(a, 1.0, c) returns the same result as ( a + c). However, fusedMac(a, b, +0.0) does not always return the same result as ( a * b) since fusedMac(-0.0, +0.0, +0.0) is +0.0 while ( -0.0 * +0.0) is -0.0; fusedMac(a, b, -0.0) is equivalent to ( a * b) however.

Parameters:
a    a value
b    a value
c    a value

Returns:  (a × b + c) computed, as if with unlimited range and precision, and rounded once to the nearest double value

Since:  9

@apiNote This method corresponds to the fusedMultiplyAdd operation defined in IEEE 754-2008.