pub struct ue8m0(/* private fields */);Expand description
An 8-bit unsigned floating point type with 8 exponent bits and no mantissa bits. Used for scaling factors.
Implementations§
Source§impl ue8m0
impl ue8m0
Sourcepub const fn from_f32(value: f32) -> ue8m0
pub const fn from_f32(value: f32) -> ue8m0
Constructs a ue8m0 value from a 32-bit floating point value.
Rounds up to a power of two, as a scale is stored: values past the range saturate to its ends, a value at or below zero becomes the minimum, and NaN stays NaN.
Sourcepub const fn from_f64(value: f64) -> ue8m0
pub const fn from_f64(value: f64) -> ue8m0
Constructs a ue8m0 value from a 64-bit floating point value.
Rounds up to a power of two, as a scale is stored: values past the range saturate to its ends, a value at or below zero becomes the minimum, and NaN stays NaN.
Trait Implementations§
Source§impl Abs for ue8m0
impl Abs for ue8m0
type AbsElem = ue8m0
fn abs(self) -> Self::WithScalar<Self::AbsElem>
fn __expand_abs( scope: &Scope, x: NativeExpand<Self>, ) -> NativeExpand<Self::WithScalar<Self::AbsElem>>
Source§impl AbsNativeExpand for ue8m0
impl AbsNativeExpand for ue8m0
type AbsElem = ue8m0
fn __expand_native_abs(scope: &Scope, input: ExpandValue) -> ExpandValue
Source§impl AddAssign for ue8m0
impl AddAssign for ue8m0
Source§fn add_assign(&mut self, rhs: ue8m0)
fn add_assign(&mut self, rhs: ue8m0)
Performs the
+= operation. Read moreimpl Copy for ue8m0
Source§impl CubeDebug for ue8m0
impl CubeDebug for ue8m0
Source§fn set_debug_name(&self, scope: &Scope, name: &'static str)
fn set_debug_name(&self, scope: &Scope, name: &'static str)
Set the debug name of this type’s expansion. Should do nothing for types that don’t appear
at runtime
Source§impl CubeElement for ue8m0
impl CubeElement for ue8m0
Source§fn from_bytes(bytes: &[u8]) -> &[Self]
fn from_bytes(bytes: &[u8]) -> &[Self]
Convert a slice of bytes to a slice of elements.
Source§fn maximum_value() -> Self
fn maximum_value() -> Self
Highest possible value
Source§fn minimum_value() -> Self
fn minimum_value() -> Self
Lowest possible value
Source§impl CubePrimitive for ue8m0
impl CubePrimitive for ue8m0
type Scalar = ue8m0
type Size = Const<1>
type WithScalar<S: Scalar> = S
fn __expand_as_type(scope: &Scope) -> TypeHandle
fn from_const_value(value: ConstantValue) -> Self
Source§fn as_type() -> TypeHandle
fn as_type() -> TypeHandle
Return the element type to use on GPU.
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 ue8m0
impl CubeType for ue8m0
type ExpandType = NativeExpand<ue8m0>
Source§impl<'de> Deserialize<'de> for ue8m0
impl<'de> Deserialize<'de> for ue8m0
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<ue8m0, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<ue8m0, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl DivAssign for ue8m0
impl DivAssign for ue8m0
Source§fn div_assign(&mut self, rhs: ue8m0)
fn div_assign(&mut self, rhs: ue8m0)
Performs the
/= operation. Read moreSource§impl IntoExpand for ue8m0
impl IntoExpand for ue8m0
type Expand = NativeExpand<ue8m0>
fn into_expand(self, _scope: &Scope) -> Self::Expand
Source§impl IntoRuntime for ue8m0
impl IntoRuntime for ue8m0
fn __expand_runtime_method(self, _scope: &Scope) -> NativeExpand<Self>
fn runtime(self) -> Self
Source§impl MulAssign for ue8m0
impl MulAssign for ue8m0
Source§fn mul_assign(&mut self, rhs: ue8m0)
fn mul_assign(&mut self, rhs: ue8m0)
Performs the
*= operation. Read moreSource§impl NativeAssign for ue8m0
impl NativeAssign for ue8m0
fn elem_init_mut(scope: &Scope, elem: ExpandValue) -> ExpandValue
Source§impl PartialEqNativeExpand for ue8m0
impl PartialEqNativeExpand for ue8m0
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 ue8m0
impl PartialOrd for ue8m0
impl Pod for ue8m0
Source§impl Serialize for ue8m0
impl Serialize for ue8m0
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,
Serialize this value into the given Serde serializer. Read more
impl StructuralPartialEq for ue8m0
Source§impl SubAssign for ue8m0
impl SubAssign for ue8m0
Source§fn sub_assign(&mut self, rhs: ue8m0)
fn sub_assign(&mut self, rhs: ue8m0)
Performs the
-= operation. Read moreSource§impl ToPrimitive for ue8m0
impl ToPrimitive for ue8m0
Source§fn to_i64(&self) -> Option<i64>
fn to_i64(&self) -> Option<i64>
Converts the value of
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>
Converts the value of
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>
Converts the value of
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>
Converts the value of
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>
Converts the value of
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>
Converts the value of
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>
Converts the value of
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>
Converts the value of
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>
Converts the value of
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>
Converts the value of
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>
Converts the value of
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>
Converts the value of
self to a u16. If the value cannot be
represented by a u16, then None is returned.Auto Trait Implementations§
impl Freeze for ue8m0
impl RefUnwindSafe for ue8m0
impl Send for ue8m0
impl Sync for ue8m0
impl Unpin for ue8m0
impl UnsafeUnpin for ue8m0
impl UnwindSafe for ue8m0
Blanket Implementations§
impl<T> AnyBitPattern for Twhere
T: Pod,
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)
Assign
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
Mutably borrows from an owned value. Read more
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: CubePrimitive>( scope: &Scope, value: NativeExpand<From>, ) -> <Self as CubeType>::ExpandType
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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
If this function returns true, then it must be valid to reinterpret
bits
as &Self.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>
Converts
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>
Converts
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)
Converts
&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)
Converts
&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
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> HarnessOutput for Twhere
T: CubePrimitive + CubeElement,
impl<T> HarnessOutput for Twhere
T: CubePrimitive + CubeElement,
Source§type Host = T
type Host = T
The value the host gets back:
Self, except for an array, which comes
back as a Vec.Source§fn alloc(
client: &Client,
_lens: &mut impl Iterator<Item = usize>,
handles: &mut Vec<Handle>,
) -> BufferArg
fn alloc( client: &Client, _lens: &mut impl Iterator<Item = usize>, handles: &mut Vec<Handle>, ) -> BufferArg
Allocate the buffers, pushing each one’s handle in the order
read takes
them back.Source§fn __expand_store(
scope: &Scope,
out: &mut NativeExpand<Box<[T]>>,
value: NativeExpand<T>,
)
fn __expand_store( scope: &Scope, out: &mut NativeExpand<Box<[T]>>, value: NativeExpand<T>, )
Store the value into its buffers.
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
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> ⓘ
Converts
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> ⓘ
Converts
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> NoUninit for Twhere
T: Pod,
Source§impl<T> Pointable for T
impl<T> Pointable 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: CubePrimitive>(value: From) -> Self
fn reinterpret<From: CubePrimitive>(value: From) -> Self
Reinterpret the bits of another primitive as this primitive without conversion.
Source§fn reinterpret_vectorization<From: CubePrimitive>() -> usize
fn reinterpret_vectorization<From: CubePrimitive>() -> usize
Calculates the expected vectorization for the reinterpret target
fn __expand_reinterpret<From: CubePrimitive>( scope: &Scope, value: NativeExpand<From>, ) -> <Self as CubeType>::ExpandType
fn __expand_reinterpret_vectorization<From: CubePrimitive>( scope: &Scope, ) -> usize
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>
Create a new mutable variable of this type in
scope.impl<T> ScalarAbs for Twhere
T: AbsNativeExpand<AbsElem = T> + Abs<AbsElem = T>,
Source§impl<E> ScalarArgSettings for Ewhere
E: ScalarArgType,
impl<E> ScalarArgSettings for Ewhere
E: ScalarArgType,
Source§fn register(&self, launcher: &mut KernelLauncher)
fn register(&self, launcher: &mut KernelLauncher)
Register the information to the
KernelLauncher.