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 maping the std implementation
fam, fanm, fma, fms, fnma, fnmsfsm, fsnm.
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 substract of its three parameters. | |
| constexpr auto | eve::fnma = functor<fnma_t> |
strict_elementwise_callable computing the fused multiply add of its three parameters. | |
| constexpr auto | eve::fnms = functor<fnms_t> |
strict_elementwise_callable computing the fused multiply add of its three parameters. | |
| constexpr auto | eve::fsm = functor<fsm_t> |
strict_elementwise_callable computing the fused add multiply of its three parameters. | |
| constexpr auto | eve::fsnm = functor<fsnm_t> |
strict_elementwise_callable computing the fused add multiply of its three parameters. | |