1 Release Notes {#changelog}
\r
4 1.12.0 release (2017-03-06):
\r
5 ----------------------------
\r
7 - Changed behaviour of `half_cast` to perform conversions to/from `double`
\r
8 and `long double` directly according to specified rounding mode, without an
\r
9 intermediate `float` conversion.
\r
10 - Added `noexcept` specifiers to constructors.
\r
11 - Fixed minor portability problem with `logb` and `ilogb`.
\r
12 - Tested for *VC++ 2015*.
\r
15 1.11.0 release (2013-11-16):
\r
16 ----------------------------
\r
18 - Made tie-breaking behaviour in round to nearest configurable by
\r
19 `HALF_ROUND_TIES_TO_EVEN` macro.
\r
20 - Completed support for all C++11 mathematical functions even if single-
\r
21 precision versions from `<cmath>` are unsupported.
\r
22 - Fixed inability to disable support for C++11 mathematical functions on
\r
26 1.10.0 release (2013-11-09):
\r
27 ----------------------------
\r
29 - Made default rounding mode configurable by `HALF_ROUND_STYLE` macro.
\r
30 - Added support for non-IEEE single-precision implementations.
\r
31 - Added `HALF_ENABLE_CPP11_TYPE_TRAITS` preprocessor flag for checking
\r
32 support for C++11 type traits and TMP features.
\r
33 - Restricted `half_cast` to support built-in arithmetic types only.
\r
34 - Changed behaviour of `half_cast` to respect rounding mode when casting
\r
35 to/from integer types.
\r
38 1.9.2 release (2013-11-01):
\r
39 ---------------------------
\r
41 - Tested for *gcc 4.8*.
\r
42 - Tested and fixed for *VC++ 2013*.
\r
43 - Removed unnecessary warnings in *MSVC*.
\r
46 1.9.1 release (2013-08-08):
\r
47 ---------------------------
\r
49 - Fixed problems with older gcc and MSVC versions.
\r
50 - Small fix to non-C++11 implementations of `remainder` and `remquo`.
\r
53 1.9.0 release (2013-08-07):
\r
54 ---------------------------
\r
56 - Changed behaviour of `nearbyint`, `rint`, `lrint` and `llrint` to use
\r
57 rounding mode of half-precision implementation (which is
\r
58 truncating/indeterminate) instead of single-precision rounding mode.
\r
59 - Added support for more C++11 mathematical functions even if single-
\r
60 precision versions from `<cmath>` are unsupported, in particular
\r
61 `remainder`, `remquo` and `cbrt`.
\r
62 - Minor implementation changes.
\r
65 1.8.1 release (2013-01-22):
\r
66 ---------------------------
\r
68 - Fixed bug resulting in multiple definitions of the `nanh` function due to
\r
69 a missing `inline` specification.
\r
72 1.8.0 release (2013-01-19):
\r
73 ---------------------------
\r
75 - Added support for more C++11 mathematical functions even if single-
\r
76 precision versions from `<cmath>` are unsupported, in particular
\r
77 exponential and logarithm functions, hyperbolic area functions and the
\r
78 hypotenuse function.
\r
79 - Made `fma` function use default implementation if single-precision version
\r
80 from `<cmath>` is not faster and thus `FP_FAST_FMAH` to be defined always.
\r
81 - Fixed overload resolution issues when invoking certain mathematical
\r
82 functions by unqualified calls.
\r
85 1.7.0 release (2012-10-26):
\r
86 ---------------------------
\r
88 - Added support for C++11 `noexcept` specifiers.
\r
89 - Changed C++11 `long long` to be supported on *VC++ 2003* and up.
\r
92 1.6.1 release (2012-09-13):
\r
93 ---------------------------
\r
95 - Made `fma` and `fdim` functions available even if corresponding
\r
96 single-precision functions are not.
\r
99 1.6.0 release (2012-09-12):
\r
100 ---------------------------
\r
102 - Added `HALF_ENABLE_CPP11_LONG_LONG` to control support for `long long`
\r
103 integers and corresponding mathematical functions.
\r
104 - Fixed C++98 compatibility on non-VC compilers.
\r
107 1.5.1 release (2012-08-17):
\r
108 ---------------------------
\r
110 - Recorrected `std::numeric_limits::round_style` to always return
\r
111 `std::round_indeterminate`, due to overflow-handling deviating from
\r
112 correct round-toward-zero behaviour.
\r
115 1.5.0 release (2012-08-16):
\r
116 ---------------------------
\r
118 - Added `half_cast` for explicitly casting between half and any type
\r
119 convertible to/from `float` and allowing the explicit specification of
\r
120 the rounding mode to use.
\r
123 1.4.0 release (2012-08-12):
\r
124 ---------------------------
\r
126 - Added support for C++11 generalized constant expressions (`constexpr`).
\r
129 1.3.1 release (2012-08-11):
\r
130 ---------------------------
\r
132 - Fixed requirement for `std::signbit` and `std::isnan` (even if C++11
\r
133 `<cmath>` functions disabled) on non-VC compilers.
\r
136 1.3.0 release (2012-08-10):
\r
137 ---------------------------
\r
139 - Made requirement for `<cstdint>` and `static_assert` optional and thus
\r
140 made the library C++98-compatible.
\r
141 - Made support for C++11 features user-overridable through explicit
\r
142 definition of corresponding preprocessor symbols to either 0 or 1.
\r
143 - Renamed `HALF_ENABLE_HASH` to `HALF_ENABLE_CPP11_HASH` in correspondence
\r
144 with other C++11 preprocessor symbols.
\r
147 1.2.0 release (2012-08-07):
\r
148 ---------------------------
\r
150 - Added proper preprocessor definitions for `HUGE_VALH` and `FP_FAST_FMAH`
\r
151 in correspondence with their single-precision counterparts from `<cmath>`.
\r
152 - Fixed internal preprocessor macros to be properly undefined after use.
\r
155 1.1.2 release (2012-08-07):
\r
156 ---------------------------
\r
158 - Revised `std::numeric_limits::round_style` to return
\r
159 `std::round_toward_zero` if the `float` version also does and
\r
160 `std::round_indeterminate` otherwise.
\r
161 - Fixed `std::numeric_limits::round_error` to reflect worst-case round
\r
162 toward zero behaviour.
\r
165 1.1.1 release (2012-08-06):
\r
166 ---------------------------
\r
168 - Fixed `std::numeric_limits::min` to return smallest positive normal
\r
169 number, instead of subnormal number.
\r
170 - Fixed `std::numeric_limits::round_style` to return
\r
171 `std::round_indeterminate` due to mixture of separately rounded
\r
172 single-precision arithmetics with truncating single-to-half conversions.
\r
175 1.1.0 release (2012-08-06):
\r
176 ---------------------------
\r
178 - Added half-precision literals.
\r
181 1.0.0 release (2012-08-05):
\r
182 ---------------------------
\r