1Release Notes {#changelog} 2============= 3 41.12.0 release (2017-03-06): 5---------------------------- 6 7- Changed behaviour of `half_cast` to perform conversions to/from `double` 8 and `long double` directly according to specified rounding mode, without an 9 intermediate `float` conversion. 10- Added `noexcept` specifiers to constructors. 11- Fixed minor portability problem with `logb` and `ilogb`. 12- Tested for *VC++ 2015*. 13 14 151.11.0 release (2013-11-16): 16---------------------------- 17 18- Made tie-breaking behaviour in round to nearest configurable by 19 `HALF_ROUND_TIES_TO_EVEN` macro. 20- Completed support for all C++11 mathematical functions even if single- 21 precision versions from `<cmath>` are unsupported. 22- Fixed inability to disable support for C++11 mathematical functions on 23 *VC++ 2013*. 24 25 261.10.0 release (2013-11-09): 27---------------------------- 28 29- Made default rounding mode configurable by `HALF_ROUND_STYLE` macro. 30- Added support for non-IEEE single-precision implementations. 31- Added `HALF_ENABLE_CPP11_TYPE_TRAITS` preprocessor flag for checking 32 support for C++11 type traits and TMP features. 33- Restricted `half_cast` to support built-in arithmetic types only. 34- Changed behaviour of `half_cast` to respect rounding mode when casting 35 to/from integer types. 36 37 381.9.2 release (2013-11-01): 39--------------------------- 40 41- Tested for *gcc 4.8*. 42- Tested and fixed for *VC++ 2013*. 43- Removed unnecessary warnings in *MSVC*. 44 45 461.9.1 release (2013-08-08): 47--------------------------- 48 49- Fixed problems with older gcc and MSVC versions. 50- Small fix to non-C++11 implementations of `remainder` and `remquo`. 51 52 531.9.0 release (2013-08-07): 54--------------------------- 55 56- Changed behaviour of `nearbyint`, `rint`, `lrint` and `llrint` to use 57 rounding mode of half-precision implementation (which is 58 truncating/indeterminate) instead of single-precision rounding mode. 59- Added support for more C++11 mathematical functions even if single- 60 precision versions from `<cmath>` are unsupported, in particular 61 `remainder`, `remquo` and `cbrt`. 62- Minor implementation changes. 63 64 651.8.1 release (2013-01-22): 66--------------------------- 67 68- Fixed bug resulting in multiple definitions of the `nanh` function due to 69 a missing `inline` specification. 70 71 721.8.0 release (2013-01-19): 73--------------------------- 74 75- Added support for more C++11 mathematical functions even if single- 76 precision versions from `<cmath>` are unsupported, in particular 77 exponential and logarithm functions, hyperbolic area functions and the 78 hypotenuse function. 79- Made `fma` function use default implementation if single-precision version 80 from `<cmath>` is not faster and thus `FP_FAST_FMAH` to be defined always. 81- Fixed overload resolution issues when invoking certain mathematical 82 functions by unqualified calls. 83 84 851.7.0 release (2012-10-26): 86--------------------------- 87 88- Added support for C++11 `noexcept` specifiers. 89- Changed C++11 `long long` to be supported on *VC++ 2003* and up. 90 91 921.6.1 release (2012-09-13): 93--------------------------- 94 95- Made `fma` and `fdim` functions available even if corresponding 96 single-precision functions are not. 97 98 991.6.0 release (2012-09-12): 100--------------------------- 101 102- Added `HALF_ENABLE_CPP11_LONG_LONG` to control support for `long long` 103 integers and corresponding mathematical functions. 104- Fixed C++98 compatibility on non-VC compilers. 105 106 1071.5.1 release (2012-08-17): 108--------------------------- 109 110- Recorrected `std::numeric_limits::round_style` to always return 111 `std::round_indeterminate`, due to overflow-handling deviating from 112 correct round-toward-zero behaviour. 113 114 1151.5.0 release (2012-08-16): 116--------------------------- 117 118- Added `half_cast` for explicitly casting between half and any type 119 convertible to/from `float` and allowing the explicit specification of 120 the rounding mode to use. 121 122 1231.4.0 release (2012-08-12): 124--------------------------- 125 126- Added support for C++11 generalized constant expressions (`constexpr`). 127 128 1291.3.1 release (2012-08-11): 130--------------------------- 131 132- Fixed requirement for `std::signbit` and `std::isnan` (even if C++11 133 `<cmath>` functions disabled) on non-VC compilers. 134 135 1361.3.0 release (2012-08-10): 137--------------------------- 138 139- Made requirement for `<cstdint>` and `static_assert` optional and thus 140 made the library C++98-compatible. 141- Made support for C++11 features user-overridable through explicit 142 definition of corresponding preprocessor symbols to either 0 or 1. 143- Renamed `HALF_ENABLE_HASH` to `HALF_ENABLE_CPP11_HASH` in correspondence 144 with other C++11 preprocessor symbols. 145 146 1471.2.0 release (2012-08-07): 148--------------------------- 149 150- Added proper preprocessor definitions for `HUGE_VALH` and `FP_FAST_FMAH` 151 in correspondence with their single-precision counterparts from `<cmath>`. 152- Fixed internal preprocessor macros to be properly undefined after use. 153 154 1551.1.2 release (2012-08-07): 156--------------------------- 157 158- Revised `std::numeric_limits::round_style` to return 159 `std::round_toward_zero` if the `float` version also does and 160 `std::round_indeterminate` otherwise. 161- Fixed `std::numeric_limits::round_error` to reflect worst-case round 162 toward zero behaviour. 163 164 1651.1.1 release (2012-08-06): 166--------------------------- 167 168- Fixed `std::numeric_limits::min` to return smallest positive normal 169 number, instead of subnormal number. 170- Fixed `std::numeric_limits::round_style` to return 171 `std::round_indeterminate` due to mixture of separately rounded 172 single-precision arithmetics with truncating single-to-half conversions. 173 174 1751.1.0 release (2012-08-06): 176--------------------------- 177 178- Added half-precision literals. 179 180 1811.0.0 release (2012-08-05): 182--------------------------- 183 184- First release. 185