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. |