|
| 1 | +Release Notes |
| 2 | +============= |
| 3 | + |
| 4 | +2.2.1 release (2025-03-02): |
| 5 | +--------------------------- |
| 6 | + |
| 7 | +- Fixed error when converting minimum negative integer value to half. |
| 8 | +- Added more type conversions to remove warnings on some 64-bit platforms. |
| 9 | +- Removed potential naming conflicts of internal functions with C standard |
| 10 | + library functions. |
| 11 | + |
| 12 | + |
| 13 | +2.2.0 release (2021-06-12): |
| 14 | +--------------------------- |
| 15 | + |
| 16 | +- Added `rsqrt` function for inverse square root. |
| 17 | +- Improved performance of `pow` function. |
| 18 | +- Fixed bug that forgot to include `<immintrin.h>` for F16C intrinsics. |
| 19 | + |
| 20 | + |
| 21 | +2.1.0 release (2019-08-05): |
| 22 | +--------------------------- |
| 23 | + |
| 24 | +- Added detection of IEEE floating-point exceptions to operators and functions. |
| 25 | +- Added configuration options for automatic exception handling. |
| 26 | +- Added functions for explicitly managing floating-point exception flags. |
| 27 | +- Improved accuracy of `pow` and `atan2` functions. |
| 28 | + |
| 29 | + |
| 30 | +2.0.0 release (2019-07-23): |
| 31 | +--------------------------- |
| 32 | + |
| 33 | +- Made internal implementation independent from built-in floating point |
| 34 | + facilities for increased reliability and IEEE-conformance. |
| 35 | +- Changed default rounding mode to rounding to nearest. |
| 36 | +- Always round ties to even when rounding to nearest. |
| 37 | +- Extended `constexpr` support to comparison and classification functions. |
| 38 | +- Added support for F16C compiler intrinsics for conversions. |
| 39 | +- Enabled C++11 feature detection for Intel compilers. |
| 40 | + |
| 41 | + |
| 42 | +1.12.0 release (2017-03-06): |
| 43 | +---------------------------- |
| 44 | + |
| 45 | +- Changed behaviour of `half_cast` to perform conversions to/from `double` |
| 46 | + and `long double` directly according to specified rounding mode, without an |
| 47 | + intermediate `float` conversion. |
| 48 | +- Added `noexcept` specifiers to constructors. |
| 49 | +- Fixed minor portability problem with `logb` and `ilogb`. |
| 50 | +- Tested for *VC++ 2015*. |
| 51 | + |
| 52 | + |
| 53 | +1.11.0 release (2013-11-16): |
| 54 | +---------------------------- |
| 55 | + |
| 56 | +- Made tie-breaking behaviour in round to nearest configurable by |
| 57 | + `HALF_ROUND_TIES_TO_EVEN` macro. |
| 58 | +- Completed support for all C++11 mathematical functions even if single- |
| 59 | + precision versions from `<cmath>` are unsupported. |
| 60 | +- Fixed inability to disable support for C++11 mathematical functions on |
| 61 | + *VC++ 2013*. |
| 62 | + |
| 63 | + |
| 64 | +1.10.0 release (2013-11-09): |
| 65 | +---------------------------- |
| 66 | + |
| 67 | +- Made default rounding mode configurable by `HALF_ROUND_STYLE` macro. |
| 68 | +- Added support for non-IEEE single-precision implementations. |
| 69 | +- Added `HALF_ENABLE_CPP11_TYPE_TRAITS` preprocessor flag for checking |
| 70 | + support for C++11 type traits and TMP features. |
| 71 | +- Restricted `half_cast` to support built-in arithmetic types only. |
| 72 | +- Changed behaviour of `half_cast` to respect rounding mode when casting |
| 73 | + to/from integer types. |
| 74 | + |
| 75 | + |
| 76 | +1.9.2 release (2013-11-01): |
| 77 | +--------------------------- |
| 78 | + |
| 79 | +- Tested for *gcc 4.8*. |
| 80 | +- Tested and fixed for *VC++ 2013*. |
| 81 | +- Removed unnecessary warnings in *MSVC*. |
| 82 | + |
| 83 | + |
| 84 | +1.9.1 release (2013-08-08): |
| 85 | +--------------------------- |
| 86 | + |
| 87 | +- Fixed problems with older gcc and MSVC versions. |
| 88 | +- Small fix to non-C++11 implementations of `remainder` and `remquo`. |
| 89 | + |
| 90 | + |
| 91 | +1.9.0 release (2013-08-07): |
| 92 | +--------------------------- |
| 93 | + |
| 94 | +- Changed behaviour of `nearbyint`, `rint`, `lrint` and `llrint` to use |
| 95 | + rounding mode of half-precision implementation (which is |
| 96 | + truncating/indeterminate) instead of single-precision rounding mode. |
| 97 | +- Added support for more C++11 mathematical functions even if single- |
| 98 | + precision versions from `<cmath>` are unsupported, in particular |
| 99 | + `remainder`, `remquo` and `cbrt`. |
| 100 | +- Minor implementation changes. |
| 101 | + |
| 102 | + |
| 103 | +1.8.1 release (2013-01-22): |
| 104 | +--------------------------- |
| 105 | + |
| 106 | +- Fixed bug resulting in multiple definitions of the `nanh` function due to |
| 107 | + a missing `inline` specification. |
| 108 | + |
| 109 | + |
| 110 | +1.8.0 release (2013-01-19): |
| 111 | +--------------------------- |
| 112 | + |
| 113 | +- Added support for more C++11 mathematical functions even if single- |
| 114 | + precision versions from `<cmath>` are unsupported, in particular |
| 115 | + exponential and logarithm functions, hyperbolic area functions and the |
| 116 | + hypotenuse function. |
| 117 | +- Made `fma` function use default implementation if single-precision version |
| 118 | + from `<cmath>` is not faster and thus `FP_FAST_FMAH` to be defined always. |
| 119 | +- Fixed overload resolution issues when invoking certain mathematical |
| 120 | + functions by unqualified calls. |
| 121 | + |
| 122 | + |
| 123 | +1.7.0 release (2012-10-26): |
| 124 | +--------------------------- |
| 125 | + |
| 126 | +- Added support for C++11 `noexcept` specifiers. |
| 127 | +- Changed C++11 `long long` to be supported on *VC++ 2003* and up. |
| 128 | + |
| 129 | + |
| 130 | +1.6.1 release (2012-09-13): |
| 131 | +--------------------------- |
| 132 | + |
| 133 | +- Made `fma` and `fdim` functions available even if corresponding |
| 134 | + single-precision functions are not. |
| 135 | + |
| 136 | + |
| 137 | +1.6.0 release (2012-09-12): |
| 138 | +--------------------------- |
| 139 | + |
| 140 | +- Added `HALF_ENABLE_CPP11_LONG_LONG` to control support for `long long` |
| 141 | + integers and corresponding mathematical functions. |
| 142 | +- Fixed C++98 compatibility on non-VC compilers. |
| 143 | + |
| 144 | + |
| 145 | +1.5.1 release (2012-08-17): |
| 146 | +--------------------------- |
| 147 | + |
| 148 | +- Recorrected `std::numeric_limits::round_style` to always return |
| 149 | + `std::round_indeterminate`, due to overflow-handling deviating from |
| 150 | + correct round-toward-zero behaviour. |
| 151 | + |
| 152 | + |
| 153 | +1.5.0 release (2012-08-16): |
| 154 | +--------------------------- |
| 155 | + |
| 156 | +- Added `half_cast` for explicitly casting between half and any type |
| 157 | + convertible to/from `float` and allowing the explicit specification of |
| 158 | + the rounding mode to use. |
| 159 | + |
| 160 | + |
| 161 | +1.4.0 release (2012-08-12): |
| 162 | +--------------------------- |
| 163 | + |
| 164 | +- Added support for C++11 generalized constant expressions (`constexpr`). |
| 165 | + |
| 166 | + |
| 167 | +1.3.1 release (2012-08-11): |
| 168 | +--------------------------- |
| 169 | + |
| 170 | +- Fixed requirement for `std::signbit` and `std::isnan` (even if C++11 |
| 171 | + `<cmath>` functions disabled) on non-VC compilers. |
| 172 | + |
| 173 | + |
| 174 | +1.3.0 release (2012-08-10): |
| 175 | +--------------------------- |
| 176 | + |
| 177 | +- Made requirement for `<cstdint>` and `static_assert` optional and thus |
| 178 | + made the library C++98-compatible. |
| 179 | +- Made support for C++11 features user-overridable through explicit |
| 180 | + definition of corresponding preprocessor symbols to either 0 or 1. |
| 181 | +- Renamed `HALF_ENABLE_HASH` to `HALF_ENABLE_CPP11_HASH` in correspondence |
| 182 | + with other C++11 preprocessor symbols. |
| 183 | + |
| 184 | + |
| 185 | +1.2.0 release (2012-08-07): |
| 186 | +--------------------------- |
| 187 | + |
| 188 | +- Added proper preprocessor definitions for `HUGE_VALH` and `FP_FAST_FMAH` |
| 189 | + in correspondence with their single-precision counterparts from `<cmath>`. |
| 190 | +- Fixed internal preprocessor macros to be properly undefined after use. |
| 191 | + |
| 192 | + |
| 193 | +1.1.2 release (2012-08-07): |
| 194 | +--------------------------- |
| 195 | + |
| 196 | +- Revised `std::numeric_limits::round_style` to return |
| 197 | + `std::round_toward_zero` if the `float` version also does and |
| 198 | + `std::round_indeterminate` otherwise. |
| 199 | +- Fixed `std::numeric_limits::round_error` to reflect worst-case round |
| 200 | + toward zero behaviour. |
| 201 | + |
| 202 | + |
| 203 | +1.1.1 release (2012-08-06): |
| 204 | +--------------------------- |
| 205 | + |
| 206 | +- Fixed `std::numeric_limits::min` to return smallest positive normal |
| 207 | + number, instead of subnormal number. |
| 208 | +- Fixed `std::numeric_limits::round_style` to return |
| 209 | + `std::round_indeterminate` due to mixture of separately rounded |
| 210 | + single-precision arithmetics with truncating single-to-half conversions. |
| 211 | + |
| 212 | + |
| 213 | +1.1.0 release (2012-08-06): |
| 214 | +--------------------------- |
| 215 | + |
| 216 | +- Added half-precision literals. |
| 217 | + |
| 218 | + |
| 219 | +1.0.0 release (2012-08-05): |
| 220 | +--------------------------- |
| 221 | + |
| 222 | +- First release. |
0 commit comments