The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
1.7.0 - 2021-01-17
- Added optional implementations of
bytemuck
traitsZeroable
andPod
underbytemuck
cargo feature. By @charles-r-earp. - Added optional implementations of
num-traits
traitsToPrimitive
andFromPrimitive
undernum-traits
cargo feature. By @charles-r-earp. - Added implementations of
Binary
,Octal
,LowerHex
, andUpperHex
string format traits to format rawf16
/bf16
bytes to string.
Debug
trait implementation now formatsf16
/bf16
as float instead of raw bytes hex. Use newly implemented formatting traits to format in hex instead ofDebug
. Fixes #37.
1.6.0 - 2020-05-09
- Added
LOG2_10
andLOG10_2
constants to bothf16
andbf16
, which were added tof32
andf64
in the standard library in 1.43.0. By @tspiteri. - Added
to_le/be/ne_bytes
andfrom_le/be/ne_bytes
to bothf16
andbf16
, which were added to the standard library in 1.40.0. By @bzm3r.
1.5.0 - 2020-03-03
- Added the
alloc
feature to support thealloc
crate inno_std
environments. By @zserik. Thevec
module is now available with eitheralloc
orstd
feature.
1.4.1 - 2020-02-10
- Added
#[repr(transparent)]
tof16
/bf16
to remove undefined behavior. By @jfrimmel.
1.4.0 - 2019-10-13
- Added a
bf16
type implementing the alternativebfloat16
16-bit floating point format. By @tspiteri. f16::from_bits
,f16::to_bits
,f16::is_nan
,f16::is_infinite
,f16::is_finite
,f16::is_sign_positive
, andf16::is_sign_negative
are nowconst
fns.slice::HalfBitsSliceExt
andslice::HalfBitsSliceExt
extension traits have been added for performing efficient reinterpret casts and conversions of slices to and from[f16]
and[bf16]
. These traits will use hardware SIMD conversion instructions when available and theuse-intrinsics
cargo feature is enabled.vec::HalfBitsVecExt
andvec::HalfFloatVecExt
extension traits have been added for performing efficient reinterpret casts to and fromVec<f16>
andVec<bf16>
. These traits are only available with thestd
cargo feature.prelude
has been added, for easy importing of most common functionality. Currently the prelude importsf16
,bf16
, and the new slice and vec extension traits.- New associated constants on
f16
type to replace deprecatedconsts
module.
- Software conversion (when not using
use-intrinsics
feature) now matches hardware rounding by rounding to nearest, ties to even. Fixes #24, by @tspiteri. - NaN value conversions now behave like
f32
tof64
conversions, retaining sign. Fixes #23, by @tspiteri.
- Minimum rustc version bumped to 1.32.
- Runtime target host feature detection is now used if both
std
anduse-intrinsics
features are enabled and the compile target host does not support required features. - When
use-intrinsics
feature is enabled, will now always compile and run without error correctly regardless of compile target options.
consts
module and all its constants have been deprecated; use the associated constants onf16
instead.slice::from_bits
has been deprecated; useslice::HalfBitsSliceExt::reinterpret_cast
instead.slice::from_bits_mut
has been deprecated; useslice::HalfBitsSliceExt::reinterpret_cast_mut
instead.slice::to_bits
has been deprecated; useslice::HalfFloatSliceExt::reinterpret_cast
instead.slice::to_bits_mut
has been deprecated; useslice::HalfFloatSliceExt::reinterpret_cast_mut
instead.vec::from_bits
has been deprecated; usevec::HalfBitsVecExt::reinterpret_into
instead.vec::to_bits
has been deprecated; usevec::HalfFloatVecExt::reinterpret_into
instead.
1.3.1 - 2019-10-04
- Corrected values of constants
EPSILON
,MAX_10_EXP
,MAX_EXP
,MIN_10_EXP
, andMIN_EXP
inconsts
module, as well as settingconsts::NAN
to match value off32::NAN
converted tof16
. By @tspiteri.
1.3.0 - 2018-10-02
slice::from_bits_mut
andslice::to_bits_mut
for conversion between mutableu16
andf16
slices. Fixes #16, by @johannesvollmer.
1.2.0 - 2018-09-03
slice
and optionalvec
(only included withstd
feature) modules for conversions betweenu16
andf16
buffers. Fixes #14, by @johannesvollmer.to_bits
added to replaceas_bits
. Fixes #12, by @tspiteri.
serde
optional dependency no longer uses its defaultstd
feature.
as_bits
has been deprecated; useto_bits
instead.serialize
cargo feature is deprecated; useserde
instead.
1.1.2 - 2018-07-12
- Fixed compilation error in 1.1.1 on rustc < 1.27, now compiles again on rustc >= 1.10. Fixes #11.
1.1.1 - 2018-06-24 - Yanked
Not recommended due to introducing compilation error on rustc versions prior to 1.27.
- Fix subnormal float conversions when
use-intrinsics
is not enabled. By @Moongoodboy-K.
1.1.0 - 2018-03-17
1.0.2 - 2018-01-12
- Update behavior of
is_sign_positive
andis_sign_negative
to match the IEEE754 conforming behavior of the standard library since Rust 1.20.0. Fixes #3, by @tspiteri. - Small optimization on
is_nan
andis_infinite
from @tspiteri.
- Fix comparisons of +0 to -0 and comparisons involving negative numbers. Fixes #2, by @tspiteri.
- Fix loss of sign when converting
f16
andf32
tof16
, and case wheref64
NaN could be converted tof16
infinity instead of NaN. Fixes #5, by @tspiteri.
1.0.1 - 2017-08-30
- More README documentation.
- Badges and categories in crate metadata.
serde
dependency updated to 1.0 stable.- Writing changelog manually.
1.0.0 - 2017-02-03
- Update to
serde
0.9 and stable Rust 1.15 forserialize
feature.
0.1.1 - 2017-01-08
- Add
serde
support under newserialize
feature.
- Use
no_std
for crate by default.
- Initial release of
f16
type.