|
inlineconstexpr |
Computes the fused multiply substract of its three parameters.
The call fms(x, y, z)
is similar to x*y-z
as if calculated to infinite precision and rounded once to fit the result as much as supported by the hardware.
Defined in Header
Parameters
x
, y
, z
: arguments.Return value
The value of x*y-z
as if calculated to infinite precision and rounded once is returned, but only if the hardware is in capacity to do it at reasonable cost.
fms
implementation provides those properties for all integral real value and when possible for floating real value.Masked Call
The call eve::fms[mask](x, ...)
provides a masked version of fms
which is equivalent to if_else(mask, fms(x, ...), x)
Example
pedantic(fms)(x,y,z)
ensures the one rounding property. This can be very expensive if the system has no hardware capability.numeric(fms)(x,y,z)
ensures the full compliance to fms properties. This can be very expensive if the system has no hardware capability.