The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
LOG2_10
and LOG10_2
constants to both f16
and bf16
, which were added to f32
and f64
in the standard library in 1.43.0. By @tspiteri.to_le/be/ne_bytes
and from_le/be/ne_bytes
to both f16
and bf16
, which were added to the standard library in 1.40.0. By @bzm3r.alloc
feature to support the alloc
crate in no_std
environments. By @zserik. The vec
module is now available with either alloc
or std
feature.#[repr(transparent)]
to f16
/bf16
to remove undefined behavior. By @jfrimmel.bf16
type implementing the alternative bfloat16
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
, and f16::is_sign_negative
are now const
fns.slice::HalfBitsSliceExt
and slice::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 the use-intrinsics
cargo feature is enabled.vec::HalfBitsVecExt
and vec::HalfFloatVecExt
extension traits have been added for performing efficient reinterpret casts to and from Vec<f16>
and Vec<bf16>
. These traits are only available with the std
cargo feature.prelude
has been added, for easy importing of most common functionality. Currently the prelude imports f16
, bf16
, and the new slice and vec extension traits.f16
type to replace deprecated consts
module.use-intrinsics
feature) now matches hardware rounding by rounding to nearest, ties to even. Fixes #24, by @tspiteri.f32
to f64
conversions, retaining sign. Fixes #23, by @tspiteri.std
and use-intrinsics
features are enabled and the compile target host does not support required features.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 on f16
instead.slice::from_bits
has been deprecated; use slice::HalfBitsSliceExt::reinterpret_cast
instead.slice::from_bits_mut
has been deprecated; use slice::HalfBitsSliceExt::reinterpret_cast_mut
instead.slice::to_bits
has been deprecated; use slice::HalfFloatSliceExt::reinterpret_cast
instead.slice::to_bits_mut
has been deprecated; use slice::HalfFloatSliceExt::reinterpret_cast_mut
instead.vec::from_bits
has been deprecated; use vec::HalfBitsVecExt::reinterpret_into
instead.vec::to_bits
has been deprecated; use vec::HalfFloatVecExt::reinterpret_into
instead.EPSILON
, MAX_10_EXP
, MAX_EXP
, MIN_10_EXP
, and MIN_EXP
in consts
module, as well as setting consts::NAN
to match value of f32::NAN
converted to f16
. By @tspiteri.slice::from_bits_mut
and slice::to_bits_mut
for conversion between mutable u16
and f16
slices. Fixes #16, by @johannesvollmer.slice
and optional vec
(only included with std
feature) modules for conversions between u16
and f16
buffers. Fixes #14, by @johannesvollmer.to_bits
added to replace as_bits
. Fixes #12, by @tspiteri.serde
optional dependency no longer uses its default std
feature.as_bits
has been deprecated; use to_bits
instead.serialize
cargo feature is deprecated; use serde
instead.Not recommended due to introducing compilation error on rustc versions prior to 1.27.
use-intrinsics
is not enabled. By @Moongoodboy-K.is_sign_positive
and is_sign_negative
to match the IEEE754 conforming behavior of the standard library since Rust 1.20.0. Fixes #3, by @tspiteri.is_nan
and is_infinite
from @tspiteri.f16
and f32
to f16
, and case where f64
NaN could be converted to f16
infinity instead of NaN. Fixes #5, by @tspiteri.serde
dependency updated to 1.0 stable.serde
0.9 and stable Rust 1.15 for serialize
feature.serde
support under new serialize
feature.no_std
for crate by default.f16
type.