Primitive Type f16
f16 #116909)Expand description
A 16-bit floating-point type (specifically, the “binary16” type defined in IEEE 754-2008).
This type is very similar to f32 but has decreased precision because it uses half as many
bits. Please see the documentation for f32 or Wikipedia on half-precision
values for more information.
Note that most common platforms will not support f16 in hardware without enabling extra target
features, with the notable exception of Apple Silicon (also known as M1, M2, etc.) processors.
Hardware support on x86/x86-64 requires the avx512fp16 or avx10.1 features, while RISC-V requires
Zfh, and Arm/AArch64 requires FEAT_FP16. Usually the fallback implementation will be to use f32
hardware if it exists, and convert between f16 and f32 when performing math.
Trait Implementations§
1.22.0 (const: unstable) · Source§impl AddAssign<&f16> for f16
impl AddAssign<&f16> for f16
Source§fn add_assign(&mut self, other: &f16)
fn add_assign(&mut self, other: &f16)
+= operation. Read more1.8.0 (const: unstable) · Source§impl AddAssign for f16
impl AddAssign for f16
Source§fn add_assign(&mut self, other: f16)
fn add_assign(&mut self, other: f16)
+= operation. Read more1.22.0 (const: unstable) · Source§impl DivAssign<&f16> for f16
impl DivAssign<&f16> for f16
Source§fn div_assign(&mut self, other: &f16)
fn div_assign(&mut self, other: &f16)
/= operation. Read more1.8.0 (const: unstable) · Source§impl DivAssign for f16
impl DivAssign for f16
Source§fn div_assign(&mut self, other: f16)
fn div_assign(&mut self, other: f16)
/= operation. Read more1.22.0 (const: unstable) · Source§impl MulAssign<&f16> for f16
impl MulAssign<&f16> for f16
Source§fn mul_assign(&mut self, other: &f16)
fn mul_assign(&mut self, other: &f16)
*= operation. Read more1.8.0 (const: unstable) · Source§impl MulAssign for f16
impl MulAssign for f16
Source§fn mul_assign(&mut self, other: f16)
fn mul_assign(&mut self, other: f16)
*= operation. Read more1.0.0 (const: unstable) · Source§impl PartialOrd for f16
impl PartialOrd for f16
1.0.0 (const: unstable) · Source§impl Rem for f16
The remainder from the division of two floats.
impl Rem for f16
The remainder from the division of two floats.
The remainder has the same sign as the dividend and is computed as:
x - (x / y).trunc() * y.
§Examples
1.22.0 (const: unstable) · Source§impl RemAssign<&f16> for f16
impl RemAssign<&f16> for f16
Source§fn rem_assign(&mut self, other: &f16)
fn rem_assign(&mut self, other: &f16)
%= operation. Read more1.8.0 (const: unstable) · Source§impl RemAssign for f16
impl RemAssign for f16
Source§fn rem_assign(&mut self, other: f16)
fn rem_assign(&mut self, other: f16)
%= operation. Read more1.22.0 (const: unstable) · Source§impl SubAssign<&f16> for f16
impl SubAssign<&f16> for f16
Source§fn sub_assign(&mut self, other: &f16)
fn sub_assign(&mut self, other: &f16)
-= operation. Read more1.8.0 (const: unstable) · Source§impl SubAssign for f16
impl SubAssign for f16
Source§fn sub_assign(&mut self, other: f16)
fn sub_assign(&mut self, other: f16)
-= operation. Read more