telsoa01 | c577f2c | 2018-08-31 09:22:23 +0100 | [diff] [blame] | 1 | Release Notes {#changelog}
|
| 2 | =============
|
| 3 |
|
| 4 | 1.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 |
|
| 15 | 1.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 |
|
| 26 | 1.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 |
|
| 38 | 1.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 |
|
| 46 | 1.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 |
|
| 53 | 1.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 |
|
| 65 | 1.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 |
|
| 72 | 1.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 |
|
| 85 | 1.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 |
|
| 92 | 1.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 |
|
| 99 | 1.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 |
|
| 107 | 1.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 |
|
| 115 | 1.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 |
|
| 123 | 1.4.0 release (2012-08-12):
|
| 124 | ---------------------------
|
| 125 |
|
| 126 | - Added support for C++11 generalized constant expressions (`constexpr`).
|
| 127 |
|
| 128 |
|
| 129 | 1.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 |
|
| 136 | 1.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 |
|
| 147 | 1.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 |
|
| 155 | 1.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 |
|
| 165 | 1.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 |
|
| 175 | 1.1.0 release (2012-08-06):
|
| 176 | ---------------------------
|
| 177 |
|
| 178 | - Added half-precision literals.
|
| 179 |
|
| 180 |
|
| 181 | 1.0.0 release (2012-08-05):
|
| 182 | ---------------------------
|
| 183 |
|
| 184 | - First release.
|