pub struct e4m3(/* private fields */);Expand description
A 8-bit floating point type with 4 exponent bits and 3 mantissa bits.
Implementations§
Source§impl e4m3
impl e4m3
Sourcepub const fn from_f32(value: f32) -> e4m3
pub const fn from_f32(value: f32) -> e4m3
Constructs a e4m3 value from a 32-bit floating point value.
This operation is lossy. If the 32-bit value is too large to fit, ±∞ will result. NaN values are preserved. Subnormal values that are too tiny to be represented will result in ±0. All other values are truncated and rounded to the nearest representable value.
Sourcepub const fn from_f64(value: f64) -> e4m3
pub const fn from_f64(value: f64) -> e4m3
Constructs a e4m3 value from a 64-bit floating point value.
This operation is lossy. If the 64-bit value is to large to fit, ±∞ will result. NaN values are preserved. 64-bit subnormal values are too tiny to be represented and result in ±0. Exponents that underflow the minimum exponent will result in subnormals or ±0. All other values are truncated and rounded to the nearest representable value.
Trait Implementations§
Source§impl Abs for e4m3
impl Abs for e4m3
fn abs(x: Self) -> Self
fn __expand_abs( scope: &mut Scope, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
Source§impl AddAssign for e4m3
impl AddAssign for e4m3
Source§fn add_assign(&mut self, rhs: e4m3)
fn add_assign(&mut self, rhs: e4m3)
+= operation. Read moreSource§impl Clamp for e4m3
impl Clamp for e4m3
Source§fn clamp(input: Self, min_value: Self, max_value: Self) -> Self
fn clamp(input: Self, min_value: Self, max_value: Self) -> Self
fn __expand_clamp( scope: &mut Scope, input: Self::ExpandType, min_value: Self::ExpandType, max_value: Self::ExpandType, ) -> Self::ExpandType
Source§impl CubeElement for e4m3
impl CubeElement for e4m3
Source§fn from_bytes(bytes: &[u8]) -> &[Self]
fn from_bytes(bytes: &[u8]) -> &[Self]
Source§fn cube_type() -> StorageType
fn cube_type() -> StorageType
cubecl.Source§fn maximum_value() -> Self
fn maximum_value() -> Self
Source§fn minimum_value() -> Self
fn minimum_value() -> Self
Source§impl CubePrimitive for e4m3
impl CubePrimitive for e4m3
Source§fn as_type_native() -> Option<StorageType>
fn as_type_native() -> Option<StorageType>
Return the element type to use on GPU
fn from_const_value(value: ConstantScalarValue) -> Self
Source§fn as_type(_scope: &Scope) -> StorageType
fn as_type(_scope: &Scope) -> StorageType
Source§fn as_type_native_unchecked() -> StorageType
fn as_type_native_unchecked() -> StorageType
Source§fn size_bits_unchecked() -> usize
fn size_bits_unchecked() -> usize
fn from_expand_elem(elem: ExpandElement) -> Self::ExpandType
fn into_lit_unchecked(self) -> Self
fn supported_uses<R: Runtime>(client: &ComputeClient<R>) -> EnumSet<TypeUsage>
fn type_size() -> u32
fn type_size_bits() -> u32
fn packing_factor() -> u32
fn __expand_type_size(scope: &Scope) -> u32
fn __expand_type_size_bits(scope: &Scope) -> u32
fn __expand_packing_factor(scope: &Scope) -> u32
Source§impl CubeType for e4m3
impl CubeType for e4m3
type ExpandType = ExpandElementTyped<e4m3>
Source§fn into_mut(scope: &mut Scope, expand: Self::ExpandType) -> Self::ExpandType
fn into_mut(scope: &mut Scope, expand: Self::ExpandType) -> Self::ExpandType
Source§impl<'de> Deserialize<'de> for e4m3
impl<'de> Deserialize<'de> for e4m3
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<e4m3, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<e4m3, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl DivAssign for e4m3
impl DivAssign for e4m3
Source§fn div_assign(&mut self, rhs: e4m3)
fn div_assign(&mut self, rhs: e4m3)
/= operation. Read moreSource§impl ExpandElementIntoMut for e4m3
impl ExpandElementIntoMut for e4m3
fn elem_into_mut(scope: &mut Scope, elem: ExpandElement) -> ExpandElement
Source§impl IntoRuntime for e4m3
impl IntoRuntime for e4m3
fn __expand_runtime_method(self, scope: &mut Scope) -> ExpandElementTyped<Self>
fn runtime(self) -> Self
Source§impl Max for e4m3
impl Max for e4m3
fn max(self, _rhs: Self) -> Self
fn __expand_max( scope: &mut Scope, lhs: ExpandElementTyped<Self>, rhs: ExpandElementTyped<Self>, ) -> ExpandElementTyped<Self>
Source§impl Min for e4m3
impl Min for e4m3
fn min(self, _rhs: Self) -> Self
fn __expand_min( scope: &mut Scope, lhs: ExpandElementTyped<Self>, rhs: ExpandElementTyped<Self>, ) -> ExpandElementTyped<Self>
Source§impl MulAssign for e4m3
impl MulAssign for e4m3
Source§fn mul_assign(&mut self, rhs: e4m3)
fn mul_assign(&mut self, rhs: e4m3)
*= operation. Read moreSource§impl Numeric for e4m3
impl Numeric for e4m3
fn min_value() -> Self
fn max_value() -> Self
fn __expand_min_value(scope: &mut Scope) -> <Self as CubeType>::ExpandType
fn __expand_max_value(scope: &mut Scope) -> <Self as CubeType>::ExpandType
fn from_vec<const D: usize>(_vec: [u32; D]) -> Self
fn __expand_from_int( scope: &mut Scope, val: ExpandElementTyped<i64>, ) -> <Self as CubeType>::ExpandType
Source§impl PartialOrd for e4m3
impl PartialOrd for e4m3
Source§impl Remainder for e4m3
impl Remainder for e4m3
fn rem(self, _rhs: Self) -> Self
fn __expand_rem( scope: &mut Scope, lhs: ExpandElementTyped<Self>, rhs: ExpandElementTyped<Self>, ) -> ExpandElementTyped<Self>
Source§impl Serialize for e4m3
impl Serialize for e4m3
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Source§impl SubAssign for e4m3
impl SubAssign for e4m3
Source§fn sub_assign(&mut self, rhs: e4m3)
fn sub_assign(&mut self, rhs: e4m3)
-= operation. Read moreSource§impl ToPrimitive for e4m3
impl ToPrimitive for e4m3
Source§fn to_i64(&self) -> Option<i64>
fn to_i64(&self) -> Option<i64>
self to an i64. If the value cannot be
represented by an i64, then None is returned.Source§fn to_u64(&self) -> Option<u64>
fn to_u64(&self) -> Option<u64>
self to a u64. If the value cannot be
represented by a u64, then None is returned.Source§fn to_f32(&self) -> Option<f32>
fn to_f32(&self) -> Option<f32>
self to an f32. Overflows may map to positive
or negative inifinity, otherwise None is returned if the value cannot
be represented by an f32.Source§fn to_f64(&self) -> Option<f64>
fn to_f64(&self) -> Option<f64>
self to an f64. Overflows may map to positive
or negative inifinity, otherwise None is returned if the value cannot
be represented by an f64. Read moreSource§fn to_isize(&self) -> Option<isize>
fn to_isize(&self) -> Option<isize>
self to an isize. If the value cannot be
represented by an isize, then None is returned.Source§fn to_i8(&self) -> Option<i8>
fn to_i8(&self) -> Option<i8>
self to an i8. If the value cannot be
represented by an i8, then None is returned.Source§fn to_i16(&self) -> Option<i16>
fn to_i16(&self) -> Option<i16>
self to an i16. If the value cannot be
represented by an i16, then None is returned.Source§fn to_i32(&self) -> Option<i32>
fn to_i32(&self) -> Option<i32>
self to an i32. If the value cannot be
represented by an i32, then None is returned.Source§fn to_i128(&self) -> Option<i128>
fn to_i128(&self) -> Option<i128>
self to an i128. If the value cannot be
represented by an i128 (i64 under the default implementation), then
None is returned. Read moreSource§fn to_usize(&self) -> Option<usize>
fn to_usize(&self) -> Option<usize>
self to a usize. If the value cannot be
represented by a usize, then None is returned.Source§fn to_u8(&self) -> Option<u8>
fn to_u8(&self) -> Option<u8>
self to a u8. If the value cannot be
represented by a u8, then None is returned.Source§fn to_u16(&self) -> Option<u16>
fn to_u16(&self) -> Option<u16>
self to a u16. If the value cannot be
represented by a u16, then None is returned.impl Copy for e4m3
impl Pod for e4m3
impl StructuralPartialEq for e4m3
Auto Trait Implementations§
impl Freeze for e4m3
impl RefUnwindSafe for e4m3
impl Send for e4m3
impl Sync for e4m3
impl Unpin for e4m3
impl UnwindSafe for e4m3
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<P> Cast for Pwhere
P: CubePrimitive,
impl<P> Cast for Pwhere
P: CubePrimitive,
fn cast_from<From>(_value: From) -> Pwhere
From: CubePrimitive,
fn __expand_cast_from<From: CubePrimitive>( scope: &mut Scope, value: ExpandElementTyped<From>, ) -> <Self as CubeType>::ExpandType
Source§impl<T> CheckedBitPattern for Twhere
T: AnyBitPattern,
impl<T> CheckedBitPattern for Twhere
T: AnyBitPattern,
Source§type Bits = T
type Bits = T
Self must have the same layout as the specified Bits except for
the possible invalid bit patterns being checked during
is_valid_bit_pattern.Source§fn is_valid_bit_pattern(_bits: &T) -> bool
fn is_valid_bit_pattern(_bits: &T) -> bool
bits
as &Self.§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
clone_to_uninit)