These functions allows performing some basic arithmetics operations with greater accuracy even when a truly upgraded type is not available.
diff_of_prod, safe_scale, sufp, sulp, sum_of_prod, three_fma, two_add, two_prod, two_sub, veltkamp.
Variables | |
| constexpr auto | eve::diff_of_prod = functor<diff_of_prod_t> |
| elementwise_callable object computing the difference of products operation with better accuracy than the naive formula. | |
| constexpr auto | eve::safe_scale = functor<safe_scale_t> |
| elementwise_callable object computing underflow-safe and almost overflow-free scaling factor for the input. | |
| constexpr auto | eve::sufp = functor<sufp_t> |
| elementwise_callable object computing the signed unit value in the first place of the input i.e. the greatest integer power of 2 less than or equal to |x|, multiplied by the sign of x. | |
| constexpr auto | eve::sulp = functor<sulp_t> |
| elementwise_callable object computing the classical unit in the last place (Kahan) or the harrisson version multiplied by the sign of the input. | |
| constexpr auto | eve::sum_of_prod = functor<sum_of_prod_t> |
| elementwise_callable object computing the sum of products operation with better accuracy than the naive formula. | |
| constexpr auto | eve::three_fma = functor<three_fma_t> |
| Computes the elementwise triplet of an fma value f and two errors e1 and e2 such that \(ax+y = f+r_1+r_2\). | |
| constexpr auto | eve::two_add = functor<two_add_t> |
| Computes the elementwise pair consisting of the sum and its resulting rounding error. | |
| constexpr auto | eve::two_div_approx = functor<two_div_approx_t> |
| Computes the elementwise pair of division and error,. | |
| constexpr auto | eve::two_prod = functor<two_prod_t> |
| Computes the elementwise pair of product and error,. | |
| constexpr auto | eve::two_sub = functor<two_sub_t> |
| Computes the elementwise pair consisting of the difference of the parameters and its resulting rounding error. | |
| constexpr auto | eve::veltkamp = functor<veltkamp_t> |
| split a loating-point number with radix 2 and p mantissa bits x into two floating-point numbers xh and xl such that, the significand of xh fits in p-floor(p/2), the significand of xl fits in floor(p/2) digits, and x = xh + xl exactly. Where p is the number of mantissa bits of the floating type element. | |