These functions implements accurate versions of the operations \(\pm x \pm yz\) and \(\pm xy \pm z\).
The required accuracy is in two directions
The implementation of these two properties can always be obtained calling the decorated pedantic version of these functions. (or the lower or upper versions, that must guarantee on ordering against the mathematical correct result)
Take care that can be very expensive if the proper hardware capabilities are not present.
By themselves the regular version of these function acts with mere operators * + and minus if the intrinsics are not at hand and if there is no possibility of mapping the std implementation
Variables | |
| constexpr auto | eve::fam = functor<fam_t> |
| strict_elementwise_callable computing the fused add multiply of its three parameters. | |
| constexpr auto | eve::fanm = functor<fanm_t> |
| Computes the fused add negate multiply of its three parameters. | |
| constexpr auto | eve::fma = functor<fma_t> |
| strict_elementwise_callable computing the fused multiply add of its three parameters. | |
| constexpr auto | eve::fms = functor<fms_t> |
| strict_elementwise_callable computing the fused multiply subtract of its three parameters. | |
| constexpr auto | eve::fnma = functor<fnma_t> |
| strict_elementwise_callable computing the fused negated multiply add of its three parameters. | |
| constexpr auto | eve::fnms = functor<fnms_t> |
| strict_elementwise_callable computing the fused negated multiply subtract of its three parameters. | |
| constexpr auto | eve::fsm = functor<fsm_t> |
| strict_elementwise_callable computing the fused subtract multiply of its three parameters. | |
| constexpr auto | eve::fsnm = functor<fsnm_t> |
| strict_elementwise_callable computing the fused negated subtract multiply of its three parameters. | |