pub struct e2m1(/* private fields */);Expand description
A 4-bit floating point type with 2 exponent bits and 1 mantissa bit.
Implementations§
Source§impl e2m1
impl e2m1
Sourcepub const fn from_f32(value: f32) -> e2m1
pub const fn from_f32(value: f32) -> e2m1
Constructs a e2m1 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) -> e2m1
pub const fn from_f64(value: f64) -> e2m1
Constructs a e2m1 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 e2m1
impl Abs for e2m1
fn abs(self) -> Self
fn __expand_abs(scope: &Scope, x: NativeExpand<Self>) -> NativeExpand<Self>
Source§impl AbsNativeExpand for e2m1
impl AbsNativeExpand for e2m1
fn __expand_native_abs(scope: &Scope, input: ExpandValue) -> ExpandValue
Source§impl AddAssign for e2m1
impl AddAssign for e2m1
Source§fn add_assign(&mut self, rhs: e2m1)
fn add_assign(&mut self, rhs: e2m1)
+= operation. Read moreimpl Copy for e2m1
Source§impl CubeDebug for e2m1
impl CubeDebug for e2m1
Source§fn set_debug_name(&self, scope: &Scope, name: &'static str)
fn set_debug_name(&self, scope: &Scope, name: &'static str)
Source§impl CubePrimitive for e2m1
impl CubePrimitive for e2m1
type Scalar = e2m1
type Size = Const<1>
type WithScalar<S: Scalar> = S
fn __expand_as_type(scope: &Scope) -> TypeHandle
fn from_const_value(value: ConstantValue) -> e2m1
Source§fn as_type() -> TypeHandle
fn as_type() -> TypeHandle
fn from_expand_elem(elem: ExpandValue) -> Self::ExpandType
fn into_lit_unchecked(self) -> Self
fn packing_factor() -> usize
fn vector_size() -> usize
fn __expand_size(scope: &Scope) -> usize
fn __expand_size_bits(scope: &Scope) -> usize
fn __expand_packing_factor(scope: &Scope) -> usize
fn __expand_vector_size(scope: &Scope) -> usize
Source§impl CubeType for e2m1
impl CubeType for e2m1
type ExpandType = NativeExpand<e2m1>
Source§impl<'de> Deserialize<'de> for e2m1
impl<'de> Deserialize<'de> for e2m1
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<e2m1, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<e2m1, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl DivAssign for e2m1
impl DivAssign for e2m1
Source§fn div_assign(&mut self, rhs: e2m1)
fn div_assign(&mut self, rhs: e2m1)
/= operation. Read moreSource§impl From<e2m1> for ConstantValue
impl From<e2m1> for ConstantValue
Source§fn from(value: e2m1) -> ConstantValue
fn from(value: e2m1) -> ConstantValue
Source§impl From<e2m1> for ExpandValue
impl From<e2m1> for ExpandValue
Source§fn from(value: e2m1) -> ExpandValue
fn from(value: e2m1) -> ExpandValue
Source§impl IntoExpand for e2m1
impl IntoExpand for e2m1
type Expand = NativeExpand<e2m1>
fn into_expand(self, _scope: &Scope) -> <e2m1 as IntoExpand>::Expand
Source§impl IntoRuntime for e2m1
impl IntoRuntime for e2m1
fn __expand_runtime_method(self, _scope: &Scope) -> NativeExpand<e2m1>
fn runtime(self) -> Self
Source§impl MulAssign for e2m1
impl MulAssign for e2m1
Source§fn mul_assign(&mut self, rhs: e2m1)
fn mul_assign(&mut self, rhs: e2m1)
*= operation. Read moreSource§impl NativeAssign for e2m1
impl NativeAssign for e2m1
fn elem_init_mut(scope: &Scope, elem: ExpandValue) -> ExpandValue
Source§impl PartialEqNativeExpand for e2m1
impl PartialEqNativeExpand for e2m1
fn __expand_native_eq( scope: &Scope, lhs: ExpandValue, rhs: ExpandValue, ) -> ExpandValue
fn __expand_native_ne( scope: &Scope, lhs: ExpandValue, rhs: ExpandValue, ) -> ExpandValue
Source§impl PartialOrd for e2m1
impl PartialOrd for e2m1
Source§impl Serialize for e2m1
impl Serialize for e2m1
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,
impl StructuralPartialEq for e2m1
Source§impl SubAssign for e2m1
impl SubAssign for e2m1
Source§fn sub_assign(&mut self, rhs: e2m1)
fn sub_assign(&mut self, rhs: e2m1)
-= operation. Read moreSource§impl ToPrimitive for e2m1
impl ToPrimitive for e2m1
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.Auto Trait Implementations§
impl Freeze for e2m1
impl RefUnwindSafe for e2m1
impl Send for e2m1
impl Sync for e2m1
impl Unpin for e2m1
impl UnsafeUnpin for e2m1
impl UnwindSafe for e2m1
Blanket Implementations§
Source§impl<T> Assign for Twhere
T: CubePrimitive,
impl<T> Assign for Twhere
T: CubePrimitive,
Source§fn __expand_assign_method(&mut self, _scope: &Scope, value: T)
fn __expand_assign_method(&mut self, _scope: &Scope, value: T)
value to self in scope.Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<T> CanReadValue for 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>(
scope: &Scope,
value: NativeExpand<From>,
) -> Self::ExpandTypewhere
From: CubePrimitive,
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneExpand for Twhere
T: Clone,
impl<T> CloneExpand for Twhere
T: Clone,
fn __expand_clone_method(&self, _: &Scope) -> T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> CubePartialEq for Twhere
T: PartialEq + CubePrimitive + IntoExpand<Expand = <T as CubeType>::ExpandType>,
<T as CubePrimitive>::Scalar: PartialEqNativeExpand,
impl<T> CubePartialEq for Twhere
T: PartialEq + CubePrimitive + IntoExpand<Expand = <T as CubeType>::ExpandType>,
<T as CubePrimitive>::Scalar: PartialEqNativeExpand,
fn __expand_eq_method( &self, scope: &Scope, rhs: &NativeExpand<Self>, ) -> NativeExpand<bool>
fn __expand_ne_method( &self, scope: &Scope, rhs: &NativeExpand<Self>, ) -> NativeExpand<bool>
fn __expand_eq( scope: &Scope, lhs: &NativeExpand<Self>, rhs: &NativeExpand<Self>, ) -> NativeExpand<bool>
fn __expand_ne( scope: &Scope, lhs: &NativeExpand<Self>, rhs: &NativeExpand<Self>, ) -> NativeExpand<bool>
Source§impl<T> DefaultExpand for T
impl<T> DefaultExpand for T
fn __expand_default(scope: &Scope) -> <T as CubeType>::ExpandType
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreimpl<T> NativeCubeType for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<P> Reinterpret for Pwhere
P: CubePrimitive,
impl<P> Reinterpret for Pwhere
P: CubePrimitive,
Source§fn reinterpret<From>(value: From) -> Selfwhere
From: CubePrimitive,
fn reinterpret<From>(value: From) -> Selfwhere
From: CubePrimitive,
Source§fn reinterpret_vectorization<From>() -> usizewhere
From: CubePrimitive,
fn reinterpret_vectorization<From>() -> usizewhere
From: CubePrimitive,
fn __expand_reinterpret<From>(
scope: &Scope,
value: NativeExpand<From>,
) -> Self::ExpandTypewhere
From: CubePrimitive,
fn __expand_reinterpret_vectorization<From>(scope: &Scope) -> usizewhere
From: CubePrimitive,
Source§impl<T> RuntimeAssign for T
impl<T> RuntimeAssign for T
Source§fn init_mut(&self, scope: &Scope) -> NativeExpand<T>
fn init_mut(&self, scope: &Scope) -> NativeExpand<T>
scope.