| Release Notes {#changelog} | |
| ============= | |
| 1.12.0 release (2017-03-06): | |
| ---------------------------- | |
| - Changed behaviour of `half_cast` to perform conversions to/from `double` | |
| and `long double` directly according to specified rounding mode, without an | |
| intermediate `float` conversion. | |
| - Added `noexcept` specifiers to constructors. | |
| - Fixed minor portability problem with `logb` and `ilogb`. | |
| - Tested for *VC++ 2015*. | |
| 1.11.0 release (2013-11-16): | |
| ---------------------------- | |
| - Made tie-breaking behaviour in round to nearest configurable by | |
| `HALF_ROUND_TIES_TO_EVEN` macro. | |
| - Completed support for all C++11 mathematical functions even if single- | |
| precision versions from `<cmath>` are unsupported. | |
| - Fixed inability to disable support for C++11 mathematical functions on | |
| *VC++ 2013*. | |
| 1.10.0 release (2013-11-09): | |
| ---------------------------- | |
| - Made default rounding mode configurable by `HALF_ROUND_STYLE` macro. | |
| - Added support for non-IEEE single-precision implementations. | |
| - Added `HALF_ENABLE_CPP11_TYPE_TRAITS` preprocessor flag for checking | |
| support for C++11 type traits and TMP features. | |
| - Restricted `half_cast` to support built-in arithmetic types only. | |
| - Changed behaviour of `half_cast` to respect rounding mode when casting | |
| to/from integer types. | |
| 1.9.2 release (2013-11-01): | |
| --------------------------- | |
| - Tested for *gcc 4.8*. | |
| - Tested and fixed for *VC++ 2013*. | |
| - Removed unnecessary warnings in *MSVC*. | |
| 1.9.1 release (2013-08-08): | |
| --------------------------- | |
| - Fixed problems with older gcc and MSVC versions. | |
| - Small fix to non-C++11 implementations of `remainder` and `remquo`. | |
| 1.9.0 release (2013-08-07): | |
| --------------------------- | |
| - Changed behaviour of `nearbyint`, `rint`, `lrint` and `llrint` to use | |
| rounding mode of half-precision implementation (which is | |
| truncating/indeterminate) instead of single-precision rounding mode. | |
| - Added support for more C++11 mathematical functions even if single- | |
| precision versions from `<cmath>` are unsupported, in particular | |
| `remainder`, `remquo` and `cbrt`. | |
| - Minor implementation changes. | |
| 1.8.1 release (2013-01-22): | |
| --------------------------- | |
| - Fixed bug resulting in multiple definitions of the `nanh` function due to | |
| a missing `inline` specification. | |
| 1.8.0 release (2013-01-19): | |
| --------------------------- | |
| - Added support for more C++11 mathematical functions even if single- | |
| precision versions from `<cmath>` are unsupported, in particular | |
| exponential and logarithm functions, hyperbolic area functions and the | |
| hypotenuse function. | |
| - Made `fma` function use default implementation if single-precision version | |
| from `<cmath>` is not faster and thus `FP_FAST_FMAH` to be defined always. | |
| - Fixed overload resolution issues when invoking certain mathematical | |
| functions by unqualified calls. | |
| 1.7.0 release (2012-10-26): | |
| --------------------------- | |
| - Added support for C++11 `noexcept` specifiers. | |
| - Changed C++11 `long long` to be supported on *VC++ 2003* and up. | |
| 1.6.1 release (2012-09-13): | |
| --------------------------- | |
| - Made `fma` and `fdim` functions available even if corresponding | |
| single-precision functions are not. | |
| 1.6.0 release (2012-09-12): | |
| --------------------------- | |
| - Added `HALF_ENABLE_CPP11_LONG_LONG` to control support for `long long` | |
| integers and corresponding mathematical functions. | |
| - Fixed C++98 compatibility on non-VC compilers. | |
| 1.5.1 release (2012-08-17): | |
| --------------------------- | |
| - Recorrected `std::numeric_limits::round_style` to always return | |
| `std::round_indeterminate`, due to overflow-handling deviating from | |
| correct round-toward-zero behaviour. | |
| 1.5.0 release (2012-08-16): | |
| --------------------------- | |
| - Added `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. | |
| 1.4.0 release (2012-08-12): | |
| --------------------------- | |
| - Added support for C++11 generalized constant expressions (`constexpr`). | |
| 1.3.1 release (2012-08-11): | |
| --------------------------- | |
| - Fixed requirement for `std::signbit` and `std::isnan` (even if C++11 | |
| `<cmath>` functions disabled) on non-VC compilers. | |
| 1.3.0 release (2012-08-10): | |
| --------------------------- | |
| - Made requirement for `<cstdint>` and `static_assert` optional and thus | |
| made the library C++98-compatible. | |
| - Made support for C++11 features user-overridable through explicit | |
| definition of corresponding preprocessor symbols to either 0 or 1. | |
| - Renamed `HALF_ENABLE_HASH` to `HALF_ENABLE_CPP11_HASH` in correspondence | |
| with other C++11 preprocessor symbols. | |
| 1.2.0 release (2012-08-07): | |
| --------------------------- | |
| - Added proper preprocessor definitions for `HUGE_VALH` and `FP_FAST_FMAH` | |
| in correspondence with their single-precision counterparts from `<cmath>`. | |
| - Fixed internal preprocessor macros to be properly undefined after use. | |
| 1.1.2 release (2012-08-07): | |
| --------------------------- | |
| - Revised `std::numeric_limits::round_style` to return | |
| `std::round_toward_zero` if the `float` version also does and | |
| `std::round_indeterminate` otherwise. | |
| - Fixed `std::numeric_limits::round_error` to reflect worst-case round | |
| toward zero behaviour. | |
| 1.1.1 release (2012-08-06): | |
| --------------------------- | |
| - Fixed `std::numeric_limits::min` to return smallest positive normal | |
| number, instead of subnormal number. | |
| - Fixed `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. | |
| 1.1.0 release (2012-08-06): | |
| --------------------------- | |
| - Added half-precision literals. | |
| 1.0.0 release (2012-08-05): | |
| --------------------------- | |
| - First release. |