blob: 9100b6ab74d3aa529b86884f9b73acb8fbb21ebf [file] [log] [blame]
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.