Struct flex32
pub struct flex32(/* private fields */);
Expand description
A floating point type with relaxed precision, minimum f16
, max [f32
].
Implementations§
Trait Implementations§
§impl Abs for flex32
impl Abs for flex32
fn abs(x: Self) -> Self
fn __expand_abs( context: &mut CubeContext, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
§impl AddAssign for flex32
impl AddAssign for flex32
§fn add_assign(&mut self, rhs: flex32)
fn add_assign(&mut self, rhs: flex32)
Performs the
+=
operation. Read more§impl Ceil for flex32
impl Ceil for flex32
fn ceil(x: Self) -> Self
fn __expand_ceil( context: &mut CubeContext, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
§impl Clamp for flex32
impl Clamp for flex32
§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
§impl Cos for flex32
impl Cos for flex32
fn cos(x: Self) -> Self
fn __expand_cos( context: &mut CubeContext, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
§impl CubeElement for flex32
impl CubeElement for flex32
§fn from_bytes(bytes: &[u8]) -> &[flex32]
fn from_bytes(bytes: &[u8]) -> &[flex32]
Convert a slice of bytes to a slice of elements.
§fn maximum_value() -> flex32
fn maximum_value() -> flex32
Highest possible value
§fn minimum_value() -> flex32
fn minimum_value() -> flex32
Lowest possible value
§impl<I> CubeIndexMut<I> for flex32where
I: Index,
impl<I> CubeIndexMut<I> for flex32where
I: Index,
fn cube_idx_mut(&mut self, _i: T) -> &mut Self::Output
§impl CubePrimitive for flex32
impl CubePrimitive for flex32
§fn as_elem_native() -> Option<Elem>
fn as_elem_native() -> Option<Elem>
Return the element type to use on GPU
§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
§impl CubeType for flex32
impl CubeType for flex32
type ExpandType = ExpandElementTyped<flex32>
§impl<__RhsT> DivAssign<__RhsT> for flex32
impl<__RhsT> DivAssign<__RhsT> for flex32
§fn div_assign(&mut self, rhs: __RhsT)
fn div_assign(&mut self, rhs: __RhsT)
Performs the
/=
operation. Read more§impl DivAssign for flex32
impl DivAssign for flex32
§fn div_assign(&mut self, rhs: flex32)
fn div_assign(&mut self, rhs: flex32)
Performs the
/=
operation. Read more§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>
§impl ElementComparison for flex32
impl ElementComparison for flex32
§impl ElementConversion for flex32
impl ElementConversion for flex32
§impl ElementRandom for flex32
impl ElementRandom for flex32
§impl Erf for flex32
impl Erf for flex32
fn erf(x: Self) -> Self
fn __expand_erf( context: &mut CubeContext, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
§impl Exp for flex32
impl Exp for flex32
fn exp(x: Self) -> Self
fn __expand_exp( context: &mut CubeContext, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
§impl Float for flex32
impl Float for flex32
§const MAX_10_EXP: i32 = 38i32
const MAX_10_EXP: i32 = 38i32
Maximum possible [tf32
] power of 10 exponent
§const MIN_10_EXP: i32 = -37i32
const MIN_10_EXP: i32 = -37i32
Minimum possible normal [tf32
] power of 10 exponent
const DIGITS: u32 = 32u32
const EPSILON: flex32
const INFINITY: flex32
const MANTISSA_DIGITS: u32 = 24u32
const MIN_POSITIVE: flex32
const NAN: flex32
const NEG_INFINITY: flex32
const RADIX: u32 = 2u32
fn new(val: f32) -> flex32
fn __expand_new(context: &mut CubeContext, val: f32) -> Self::ExpandType
§impl Float for flex32
impl Float for flex32
§fn neg_infinity() -> flex32
fn neg_infinity() -> flex32
Returns the negative infinite value. Read more
§fn min_positive_value() -> flex32
fn min_positive_value() -> flex32
Returns the smallest positive, normalized value that this type can represent. Read more
§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 more§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
§fn round(self) -> flex32
fn round(self) -> flex32
Returns the nearest integer to a number. Round half-way cases away from
0.0
. Read more§fn is_sign_positive(self) -> bool
fn is_sign_positive(self) -> bool
§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 more§fn mul_add(self, a: flex32, b: flex32) -> flex32
fn mul_add(self, a: flex32, b: flex32) -> flex32
Fused multiply-add. Computes
(self * a) + b
with only one rounding
error, yielding a more accurate result than an unfused multiply-add. Read more§fn log(self, base: flex32) -> flex32
fn log(self, base: flex32) -> flex32
Returns the logarithm of the number with respect to an arbitrary base. Read more
§fn hypot(self, other: flex32) -> flex32
fn hypot(self, other: flex32) -> flex32
Calculate the length of the hypotenuse of a right-angle triangle given
legs of length
x
and y
. Read more§fn asin(self) -> flex32
fn asin(self) -> flex32
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
§fn acos(self) -> flex32
fn acos(self) -> flex32
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
§fn atan(self) -> flex32
fn atan(self) -> flex32
Computes the arctangent of a number. Return value is in radians in the
range [-pi/2, pi/2]; Read more
§fn exp_m1(self) -> flex32
fn exp_m1(self) -> flex32
Returns
e^(self) - 1
in a way that is accurate even if the
number is close to zero. Read more§fn ln_1p(self) -> flex32
fn ln_1p(self) -> flex32
Returns
ln(1+n)
(natural logarithm) more accurately than if
the operations were performed separately. Read more§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
§impl Floor for flex32
impl Floor for flex32
fn floor(x: Self) -> Self
fn __expand_floor( context: &mut CubeContext, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
§impl IntoRuntime for flex32
impl IntoRuntime for flex32
fn __expand_runtime_method( self, context: &mut CubeContext, ) -> ExpandElementTyped<flex32>
§fn runtime(self) -> Self
fn runtime(self) -> Self
Make sure a type is actually expanded into its runtime expand type.
§impl LaunchArgExpand for flex32
impl LaunchArgExpand for flex32
§type CompilationArg = ()
type CompilationArg = ()
Compilation argument.
§fn expand(
_: &<flex32 as LaunchArgExpand>::CompilationArg,
builder: &mut KernelBuilder,
) -> ExpandElementTyped<flex32>
fn expand( _: &<flex32 as LaunchArgExpand>::CompilationArg, builder: &mut KernelBuilder, ) -> ExpandElementTyped<flex32>
Register an input variable during compilation that fill the [KernelBuilder].
§fn expand_output(
arg: &Self::CompilationArg,
builder: &mut KernelBuilder,
) -> Self::ExpandType
fn expand_output( arg: &Self::CompilationArg, builder: &mut KernelBuilder, ) -> Self::ExpandType
Register an output variable during compilation that fill the [KernelBuilder].
§impl Log for flex32
impl Log for flex32
fn log(x: Self) -> Self
fn __expand_log( context: &mut CubeContext, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
§impl Log1p for flex32
impl Log1p for flex32
fn log1p(x: Self) -> Self
fn __expand_log1p( context: &mut CubeContext, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
§impl Magnitude for flex32
impl Magnitude for flex32
fn magnitude(x: Self) -> Self
fn __expand_magnitude( context: &mut CubeContext, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
§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>
§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>
§impl<__RhsT> MulAssign<__RhsT> for flex32
impl<__RhsT> MulAssign<__RhsT> for flex32
§fn mul_assign(&mut self, rhs: __RhsT)
fn mul_assign(&mut self, rhs: __RhsT)
Performs the
*=
operation. Read more§impl MulAssign for flex32
impl MulAssign for flex32
§fn mul_assign(&mut self, rhs: flex32)
fn mul_assign(&mut self, rhs: flex32)
Performs the
*=
operation. Read more§impl Normalize for flex32
impl Normalize for flex32
fn normalize(x: Self) -> Self
fn __expand_normalize( context: &mut CubeContext, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
§impl Num for flex32
impl Num for flex32
type FromStrRadixErr = <f32 as Num>::FromStrRadixErr
§fn from_str_radix(
str: &str,
radix: u32,
) -> Result<flex32, <flex32 as Num>::FromStrRadixErr>
fn from_str_radix( str: &str, radix: u32, ) -> Result<flex32, <flex32 as Num>::FromStrRadixErr>
Convert from a string and radix (typically
2..=36
). Read more§impl Numeric for flex32
impl Numeric for flex32
fn min_value() -> flex32
fn max_value() -> flex32
fn __expand_min_value(context: &mut CubeContext) -> Self::ExpandType
fn __expand_max_value(context: &mut CubeContext) -> Self::ExpandType
fn from_vec<const D: usize>(_vec: [u32; D]) -> Self
fn __expand_from_int( context: &mut CubeContext, val: ExpandElementTyped<i64>, ) -> Self::ExpandType
fn __expand_from_vec<const D: usize>( context: &mut CubeContext, vec: [u32; D], ) -> Self::ExpandType
§impl PartialOrd for flex32
impl PartialOrd for flex32
§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>
§impl Recip for flex32
impl Recip for flex32
fn recip(x: Self) -> Self
fn __expand_recip( context: &mut CubeContext, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
§impl<__RhsT> RemAssign<__RhsT> for flex32
impl<__RhsT> RemAssign<__RhsT> for flex32
§fn rem_assign(&mut self, rhs: __RhsT)
fn rem_assign(&mut self, rhs: __RhsT)
Performs the
%=
operation. Read more§impl RemAssign for flex32
impl RemAssign for flex32
§fn rem_assign(&mut self, rhs: flex32)
fn rem_assign(&mut self, rhs: flex32)
Performs the
%=
operation. Read more§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>
§impl Round for flex32
impl Round for flex32
fn round(x: Self) -> Self
fn __expand_round( context: &mut CubeContext, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
§impl Serialize for flex32
impl Serialize for flex32
§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 Sin for flex32
impl Sin for flex32
fn sin(x: Self) -> Self
fn __expand_sin( context: &mut CubeContext, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
§impl Sqrt for flex32
impl Sqrt for flex32
fn sqrt(x: Self) -> Self
fn __expand_sqrt( context: &mut CubeContext, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
§impl SubAssign for flex32
impl SubAssign for flex32
§fn sub_assign(&mut self, rhs: flex32)
fn sub_assign(&mut self, rhs: flex32)
Performs the
-=
operation. Read more§impl Tanh for flex32
impl Tanh for flex32
fn tanh(x: Self) -> Self
fn __expand_tanh( context: &mut CubeContext, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
§impl ToElement for flex32
impl ToElement for flex32
§impl ToPrimitive for flex32
impl ToPrimitive for flex32
§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.§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.§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
.§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 FloatElement for flex32
impl JitElement 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§
§impl<P> BitCast for Pwhere
P: CubePrimitive,
impl<P> BitCast for Pwhere
P: CubePrimitive,
§fn bitcast_from<From>(value: From) -> Selfwhere
From: CubePrimitive,
fn bitcast_from<From>(value: From) -> Selfwhere
From: CubePrimitive,
Reinterpret the bits of another primitive as this primitive without conversion.
fn __expand_bitcast_from<From>(
context: &mut CubeContext,
value: ExpandElementTyped<From>,
) -> Self::ExpandTypewhere
From: CubePrimitive,
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<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>(
context: &mut CubeContext,
value: ExpandElementTyped<From>,
) -> Self::ExpandTypewhere
From: CubePrimitive,
§impl<T> CheckedBitPattern for Twhere
T: AnyBitPattern,
impl<T> CheckedBitPattern for Twhere
T: AnyBitPattern,
§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
.§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,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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 more§impl<T> LaunchArg for Twhere
T: Numeric,
impl<T> LaunchArg for Twhere
T: Numeric,
§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,
§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
Read this value from the supplied reader. Same as
ReadEndian::read_from_little_endian()
.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§impl<T> ToCompactString for Twhere
T: Display,
impl<T> ToCompactString for Twhere
T: Display,
§fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
Fallible version of [
ToCompactString::to_compact_string()
] Read more§fn to_compact_string(&self) -> CompactString
fn to_compact_string(&self) -> CompactString
Converts the given value to a [
CompactString
]. Read more