pub struct flex32(/* private fields */);
Expand description
A floating point type with relaxed precision, minimum f16
, max [f32
].
Implementations§
Trait Implementations§
Source§impl Abs for flex32
impl Abs for flex32
fn abs(x: Self) -> Self
fn __expand_abs( context: &mut CubeContext, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
Source§impl AddAssign for flex32
impl AddAssign for flex32
Source§fn add_assign(&mut self, rhs: flex32)
fn add_assign(&mut self, rhs: flex32)
Performs the
+=
operation. Read moreSource§impl Ceil for flex32
impl Ceil for flex32
fn ceil(x: Self) -> Self
fn __expand_ceil( context: &mut CubeContext, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
Source§impl Clamp for flex32
impl Clamp for flex32
Source§fn clamp(input: Self, min_value: Self, max_value: Self) -> Self
fn clamp(input: Self, min_value: Self, max_value: Self) -> Self
Clamp the input value between the max and min values provided.
fn __expand_clamp( context: &mut CubeContext, input: Self::ExpandType, min_value: Self::ExpandType, max_value: Self::ExpandType, ) -> Self::ExpandType
Source§impl Cos for flex32
impl Cos for flex32
fn cos(x: Self) -> Self
fn __expand_cos( context: &mut CubeContext, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
Source§impl CubeElement for flex32
impl CubeElement for flex32
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<I: Index> CubeIndexMut<I> for flex32
impl<I: Index> CubeIndexMut<I> for flex32
fn cube_idx_mut(&mut self, _i: T) -> &mut Self::Output
Source§impl CubePrimitive for flex32
impl CubePrimitive for flex32
Source§fn as_elem_native() -> Option<Elem>
fn as_elem_native() -> Option<Elem>
Return the element type to use on GPU
Source§fn as_elem(_context: &CubeContext) -> Elem
fn as_elem(_context: &CubeContext) -> Elem
Return the element type to use on GPU.
Source§fn as_elem_native_unchecked() -> Elem
fn as_elem_native_unchecked() -> Elem
Native or static element type.
fn from_expand_elem(elem: ExpandElement) -> Self::ExpandType
Source§impl CubeType for flex32
impl CubeType for flex32
type ExpandType = ExpandElementTyped<flex32>
Source§fn init(context: &mut CubeContext, expand: Self::ExpandType) -> Self::ExpandType
fn init(context: &mut CubeContext, expand: Self::ExpandType) -> Self::ExpandType
Wrapper around the init method, necessary to type inference.
Source§impl<__RhsT> DivAssign<__RhsT> for flex32
impl<__RhsT> DivAssign<__RhsT> for flex32
Source§fn div_assign(&mut self, rhs: __RhsT)
fn div_assign(&mut self, rhs: __RhsT)
Performs the
/=
operation. Read moreSource§impl DivAssign for flex32
impl DivAssign for flex32
Source§fn div_assign(&mut self, rhs: Self)
fn div_assign(&mut self, rhs: Self)
Performs the
/=
operation. Read moreSource§impl Dot for flex32
impl Dot for flex32
fn dot(self, _rhs: Self) -> Self
fn __expand_dot( context: &mut CubeContext, lhs: ExpandElementTyped<Self>, rhs: ExpandElementTyped<Self>, ) -> ExpandElementTyped<Self>
Source§impl Erf for flex32
impl Erf for flex32
fn erf(x: Self) -> Self
fn __expand_erf( context: &mut CubeContext, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
Source§impl Exp for flex32
impl Exp for flex32
fn exp(x: Self) -> Self
fn __expand_exp( context: &mut CubeContext, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
Source§impl ExpandElementBaseInit for flex32
impl ExpandElementBaseInit for flex32
fn init_elem(context: &mut CubeContext, elem: ExpandElement) -> ExpandElement
Source§impl Float for flex32
impl Float for flex32
Source§const MAX_10_EXP: i32 = 38i32
const MAX_10_EXP: i32 = 38i32
Maximum possible [tf32
] power of 10 exponent
Source§const MIN_10_EXP: i32 = -37i32
const MIN_10_EXP: i32 = -37i32
Minimum possible normal [tf32
] power of 10 exponent
Source§const MIN_EXP: i32 = -125i32
const MIN_EXP: i32 = -125i32
One greater than the minimum possible normal [v
] power of 2 exponent
const DIGITS: u32 = 32u32
const EPSILON: Self
const INFINITY: Self
const MANTISSA_DIGITS: u32 = 24u32
const MIN_POSITIVE: Self
const NAN: Self
const NEG_INFINITY: Self
const RADIX: u32 = 2u32
fn new(val: f32) -> Self
fn __expand_new( context: &mut CubeContext, val: f32, ) -> <Self as CubeType>::ExpandType
Source§impl Float for flex32
impl Float for flex32
Source§fn neg_infinity() -> Self
fn neg_infinity() -> Self
Returns the negative infinite value. Read more
Source§fn min_value() -> Self
fn min_value() -> Self
Returns the smallest finite value that this type can represent. Read more
Source§fn min_positive_value() -> Self
fn min_positive_value() -> Self
Returns the smallest positive, normalized value that this type can represent. Read more
Source§fn max_value() -> Self
fn max_value() -> Self
Returns the largest finite value that this type can represent. Read more
Source§fn is_infinite(self) -> bool
fn is_infinite(self) -> bool
Returns
true
if this value is positive infinity or negative infinity and
false otherwise. Read moreSource§fn classify(self) -> FpCategory
fn classify(self) -> FpCategory
Returns the floating point category of the number. If only one property
is going to be tested, it is generally faster to use the specific
predicate instead. Read more
Source§fn ceil(self) -> Self
fn ceil(self) -> Self
Returns the smallest integer greater than or equal to a number. Read more
Source§fn round(self) -> Self
fn round(self) -> Self
Returns the nearest integer to a number. Round half-way cases away from
0.0
. Read moreSource§fn is_sign_positive(self) -> bool
fn is_sign_positive(self) -> bool
Source§fn is_sign_negative(self) -> bool
fn is_sign_negative(self) -> bool
Returns
true
if self
is negative, including -0.0
,
Float::neg_infinity()
, and -Float::nan()
. Read moreSource§fn mul_add(self, a: Self, b: Self) -> Self
fn mul_add(self, a: Self, b: Self) -> Self
Fused multiply-add. Computes
(self * a) + b
with only one rounding
error, yielding a more accurate result than an unfused multiply-add. Read moreSource§fn log(self, base: Self) -> Self
fn log(self, base: Self) -> Self
Returns the logarithm of the number with respect to an arbitrary base. Read more
Source§fn hypot(self, other: Self) -> Self
fn hypot(self, other: Self) -> Self
Calculate the length of the hypotenuse of a right-angle triangle given
legs of length
x
and y
. Read moreSource§fn asin(self) -> Self
fn asin(self) -> Self
Computes the arcsine of a number. Return value is in radians in
the range [-pi/2, pi/2] or NaN if the number is outside the range
[-1, 1]. Read more
Source§fn acos(self) -> Self
fn acos(self) -> Self
Computes the arccosine of a number. Return value is in radians in
the range [0, pi] or NaN if the number is outside the range
[-1, 1]. Read more
Source§fn atan(self) -> Self
fn atan(self) -> Self
Computes the arctangent of a number. Return value is in radians in the
range [-pi/2, pi/2]; Read more
Source§fn exp_m1(self) -> Self
fn exp_m1(self) -> Self
Returns
e^(self) - 1
in a way that is accurate even if the
number is close to zero. Read moreSource§fn ln_1p(self) -> Self
fn ln_1p(self) -> Self
Returns
ln(1+n)
(natural logarithm) more accurately than if
the operations were performed separately. Read moreSource§fn integer_decode(self) -> (u64, i16, i8)
fn integer_decode(self) -> (u64, i16, i8)
Returns the mantissa, base 2 exponent, and sign as integers, respectively.
The original number can be recovered by
sign * mantissa * 2 ^ exponent
. Read moreSource§fn to_degrees(self) -> Self
fn to_degrees(self) -> Self
Converts radians to degrees. Read more
Source§fn to_radians(self) -> Self
fn to_radians(self) -> Self
Converts degrees to radians. Read more
Source§impl Floor for flex32
impl Floor for flex32
fn floor(x: Self) -> Self
fn __expand_floor( context: &mut CubeContext, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
Source§impl From<flex32> for ExpandElement
impl From<flex32> for ExpandElement
Source§impl IntoRuntime for flex32
impl IntoRuntime for flex32
fn __expand_runtime_method( self, context: &mut CubeContext, ) -> ExpandElementTyped<Self>
Source§fn runtime(self) -> Self
fn runtime(self) -> Self
Make sure a type is actually expanded into its runtime expand type.
Source§impl LaunchArgExpand for flex32
impl LaunchArgExpand for flex32
Source§type CompilationArg = ()
type CompilationArg = ()
Compilation argument.
Source§fn expand(
_: &Self::CompilationArg,
builder: &mut KernelBuilder,
) -> ExpandElementTyped<Self>
fn expand( _: &Self::CompilationArg, builder: &mut KernelBuilder, ) -> ExpandElementTyped<Self>
Register an input variable during compilation that fill the KernelBuilder.
Source§fn expand_output(
arg: &Self::CompilationArg,
builder: &mut KernelBuilder,
) -> <Self as CubeType>::ExpandType
fn expand_output( arg: &Self::CompilationArg, builder: &mut KernelBuilder, ) -> <Self as CubeType>::ExpandType
Register an output variable during compilation that fill the KernelBuilder.
Source§impl Log for flex32
impl Log for flex32
fn log(x: Self) -> Self
fn __expand_log( context: &mut CubeContext, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
Source§impl Log1p for flex32
impl Log1p for flex32
fn log1p(x: Self) -> Self
fn __expand_log1p( context: &mut CubeContext, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
Source§impl Magnitude for flex32
impl Magnitude for flex32
fn magnitude(x: Self) -> Self
fn __expand_magnitude( context: &mut CubeContext, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
Source§impl Max for flex32
impl Max for flex32
fn max(self, _rhs: Self) -> Self
fn __expand_max( context: &mut CubeContext, lhs: ExpandElementTyped<Self>, rhs: ExpandElementTyped<Self>, ) -> ExpandElementTyped<Self>
Source§impl Min for flex32
impl Min for flex32
fn min(self, _rhs: Self) -> Self
fn __expand_min( context: &mut CubeContext, lhs: ExpandElementTyped<Self>, rhs: ExpandElementTyped<Self>, ) -> ExpandElementTyped<Self>
Source§impl<__RhsT> MulAssign<__RhsT> for flex32
impl<__RhsT> MulAssign<__RhsT> for flex32
Source§fn mul_assign(&mut self, rhs: __RhsT)
fn mul_assign(&mut self, rhs: __RhsT)
Performs the
*=
operation. Read moreSource§impl MulAssign for flex32
impl MulAssign for flex32
Source§fn mul_assign(&mut self, rhs: Self)
fn mul_assign(&mut self, rhs: Self)
Performs the
*=
operation. Read moreSource§impl Normalize for flex32
impl Normalize for flex32
fn normalize(x: Self) -> Self
fn __expand_normalize( context: &mut CubeContext, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
Source§impl Num for flex32
impl Num for flex32
type FromStrRadixErr = <f32 as Num>::FromStrRadixErr
Source§fn from_str_radix(str: &str, radix: u32) -> Result<Self, Self::FromStrRadixErr>
fn from_str_radix(str: &str, radix: u32) -> Result<Self, Self::FromStrRadixErr>
Convert from a string and radix (typically
2..=36
). Read moreSource§impl Numeric for flex32
impl Numeric for flex32
fn min_value() -> Self
fn max_value() -> Self
fn __expand_min_value( context: &mut CubeContext, ) -> <Self as CubeType>::ExpandType
fn __expand_max_value( context: &mut CubeContext, ) -> <Self as CubeType>::ExpandType
fn from_vec<const D: usize>(_vec: [u32; D]) -> Self
fn __expand_from_int( context: &mut CubeContext, val: ExpandElementTyped<i64>, ) -> <Self as CubeType>::ExpandType
fn __expand_from_vec<const D: usize>( context: &mut CubeContext, vec: [u32; D], ) -> <Self as CubeType>::ExpandType
Source§impl PartialOrd for flex32
impl PartialOrd for flex32
Source§impl Powf for flex32
impl Powf for flex32
fn powf(self, _rhs: Self) -> Self
fn __expand_powf( context: &mut CubeContext, lhs: ExpandElementTyped<Self>, rhs: ExpandElementTyped<Self>, ) -> ExpandElementTyped<Self>
Source§impl Recip for flex32
impl Recip for flex32
fn recip(x: Self) -> Self
fn __expand_recip( context: &mut CubeContext, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
Source§impl<__RhsT> RemAssign<__RhsT> for flex32
impl<__RhsT> RemAssign<__RhsT> for flex32
Source§fn rem_assign(&mut self, rhs: __RhsT)
fn rem_assign(&mut self, rhs: __RhsT)
Performs the
%=
operation. Read moreSource§impl RemAssign for flex32
impl RemAssign for flex32
Source§fn rem_assign(&mut self, rhs: Self)
fn rem_assign(&mut self, rhs: Self)
Performs the
%=
operation. Read moreSource§impl Remainder for flex32
impl Remainder for flex32
fn rem(self, _rhs: Self) -> Self
fn __expand_rem( context: &mut CubeContext, lhs: ExpandElementTyped<Self>, rhs: ExpandElementTyped<Self>, ) -> ExpandElementTyped<Self>
Source§impl Round for flex32
impl Round for flex32
fn round(x: Self) -> Self
fn __expand_round( context: &mut CubeContext, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
Source§impl ScalarArgSettings for flex32
impl ScalarArgSettings for flex32
Source§fn register<R: Runtime>(&self, settings: &mut KernelLauncher<R>)
fn register<R: Runtime>(&self, settings: &mut KernelLauncher<R>)
Register the information to the KernelLauncher.
Source§impl Sin for flex32
impl Sin for flex32
fn sin(x: Self) -> Self
fn __expand_sin( context: &mut CubeContext, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
Source§impl Sqrt for flex32
impl Sqrt for flex32
fn sqrt(x: Self) -> Self
fn __expand_sqrt( context: &mut CubeContext, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
Source§impl SubAssign for flex32
impl SubAssign for flex32
Source§fn sub_assign(&mut self, rhs: flex32)
fn sub_assign(&mut self, rhs: flex32)
Performs the
-=
operation. Read moreSource§impl Tanh for flex32
impl Tanh for flex32
fn tanh(x: Self) -> Self
fn __expand_tanh( context: &mut CubeContext, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
Source§impl ToPrimitive for flex32
impl ToPrimitive for flex32
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.impl Copy for flex32
impl Pod for flex32
impl StructuralPartialEq for flex32
Auto Trait Implementations§
impl Freeze for flex32
impl RefUnwindSafe for flex32
impl Send for flex32
impl Sync for flex32
impl Unpin for flex32
impl UnwindSafe for flex32
Blanket Implementations§
Source§impl<P> BitCast for Pwhere
P: CubePrimitive,
impl<P> BitCast for Pwhere
P: CubePrimitive,
Source§fn bitcast_from<From: CubePrimitive>(value: From) -> Self
fn bitcast_from<From: CubePrimitive>(value: From) -> Self
Reinterpret the bits of another primitive as this primitive without conversion.
fn __expand_bitcast_from<From: CubePrimitive>( context: &mut CubeContext, value: ExpandElementTyped<From>, ) -> <Self as CubeType>::ExpandType
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
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>( context: &mut CubeContext, 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
If this function returns true, then it must be valid to reinterpret
bits
as &Self
.Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> LaunchArg for Twhere
T: Numeric,
impl<T> LaunchArg for Twhere
T: Numeric,
Source§type RuntimeArg<'a, R: Runtime> = ScalarArg<T>
type RuntimeArg<'a, R: Runtime> = ScalarArg<T>
The runtime argument for the kernel.
fn compilation_arg<'a, R>(
_runtime_arg: &'a <T as LaunchArg>::RuntimeArg<'a, R>,
) -> <T as LaunchArgExpand>::CompilationArgwhere
R: Runtime,
Source§impl<T> Real for Twhere
T: Float,
impl<T> Real for Twhere
T: Float,
Source§fn min_positive_value() -> T
fn min_positive_value() -> T
Returns the smallest positive, normalized value that this type can represent. Read more
Source§fn round(self) -> T
fn round(self) -> T
Returns the nearest integer to a number. Round half-way cases away from
0.0
. Read moreSource§fn is_sign_positive(self) -> bool
fn is_sign_positive(self) -> bool
Returns
true
if self
is positive, including +0.0
,
Float::infinity()
, and with newer versions of Rust f64::NAN
. Read moreSource§fn is_sign_negative(self) -> bool
fn is_sign_negative(self) -> bool
Returns
true
if self
is negative, including -0.0
,
Float::neg_infinity()
, and with newer versions of Rust -f64::NAN
. Read moreSource§fn mul_add(self, a: T, b: T) -> T
fn mul_add(self, a: T, b: T) -> T
Fused multiply-add. Computes
(self * a) + b
with only one rounding
error, yielding a more accurate result than an unfused multiply-add. Read moreSource§fn log(self, base: T) -> T
fn log(self, base: T) -> T
Returns the logarithm of the number with respect to an arbitrary base. Read more
Source§fn to_degrees(self) -> T
fn to_degrees(self) -> T
Converts radians to degrees. Read more
Source§fn to_radians(self) -> T
fn to_radians(self) -> T
Converts degrees to radians. Read more
Source§fn hypot(self, other: T) -> T
fn hypot(self, other: T) -> T
Calculate the length of the hypotenuse of a right-angle triangle given
legs of length
x
and y
. Read moreSource§fn asin(self) -> T
fn asin(self) -> T
Computes the arcsine of a number. Return value is in radians in
the range [-pi/2, pi/2] or NaN if the number is outside the range
[-1, 1]. Read more
Source§fn acos(self) -> T
fn acos(self) -> T
Computes the arccosine of a number. Return value is in radians in
the range [0, pi] or NaN if the number is outside the range
[-1, 1]. Read more
Source§fn atan(self) -> T
fn atan(self) -> T
Computes the arctangent of a number. Return value is in radians in the
range [-pi/2, pi/2]; Read more
Source§fn exp_m1(self) -> T
fn exp_m1(self) -> T
Returns
e^(self) - 1
in a way that is accurate even if the
number is close to zero. Read more