|
half
2.2
IEEE 754-based half-precision floating-point library
|
rsqrt function for inverse square root.pow function.<immintrin.h> for F16C intrinsics.pow and atan2 functions.constexpr support to comparison and classification functions.half_cast to perform conversions to/from double and long double directly according to specified rounding mode, without an intermediate float conversion.noexcept specifiers to constructors.logb and ilogb.HALF_ROUND_TIES_TO_EVEN macro.<cmath> are unsupported.HALF_ROUND_STYLE macro.HALF_ENABLE_CPP11_TYPE_TRAITS preprocessor flag for checking support for C++11 type traits and TMP features.half_cast to support built-in arithmetic types only.half_cast to respect rounding mode when casting to/from integer types.remainder and remquo.nearbyint, rint, lrint and llrint to use rounding mode of half-precision implementation (which is truncating/indeterminate) instead of single-precision rounding mode.<cmath> are unsupported, in particular remainder, remquo and cbrt.nanh function due to a missing inline specification.<cmath> are unsupported, in particular exponential and logarithm functions, hyperbolic area functions and the hypotenuse function.fma function use default implementation if single-precision version from <cmath> is not faster and thus FP_FAST_FMAH to be defined always.noexcept specifiers.long long to be supported on VC++ 2003 and up.fma and fdim functions available even if corresponding single-precision functions are not.HALF_ENABLE_CPP11_LONG_LONG to control support for long long integers and corresponding mathematical functions.std::numeric_limits::round_style to always return std::round_indeterminate, due to overflow-handling deviating from correct round-toward-zero behaviour.half_cast for explicitly casting between half and any type convertible to/from float and allowing the explicit specification of the rounding mode to use.constexpr).std::signbit and std::isnan (even if C++11 <cmath> functions disabled) on non-VC compilers.<cstdint> and static_assert optional and thus made the library C++98-compatible.HALF_ENABLE_HASH to HALF_ENABLE_CPP11_HASH in correspondence with other C++11 preprocessor symbols.HUGE_VALH and FP_FAST_FMAH in correspondence with their single-precision counterparts from <cmath>.std::numeric_limits::round_style to return std::round_toward_zero if the float version also does and std::round_indeterminate otherwise.std::numeric_limits::round_error to reflect worst-case round toward zero behaviour.std::numeric_limits::min to return smallest positive normal number, instead of subnormal number.std::numeric_limits::round_style to return std::round_indeterminate due to mixture of separately rounded single-precision arithmetics with truncating single-to-half conversions.