#[repr(transparent)]pub struct AMP<F>(pub F);
Expand description
Wrapper type around the storage type. Use like AMP<f16>
or AMP<bf16>
.
This causes some tensor operations to cast the type to a higher precision
and then back. For example calling sum on a AMP<f16>
tensor will cast it to
f32
, sum it, and then cast it back to f16
.
Tuple Fields§
§0: F
Trait Implementations§
source§impl<F: AddAssign<F>> AddAssign<AMP<F>> for AMP<F>
impl<F: AddAssign<F>> AddAssign<AMP<F>> for AMP<F>
source§fn add_assign(&mut self, rhs: Self)
fn add_assign(&mut self, rhs: Self)
Performs the
+=
operation. Read moresource§impl<T: 'static + Copy, F: AsPrimitive<T>> AsPrimitive<T> for AMP<F>
impl<T: 'static + Copy, F: AsPrimitive<T>> AsPrimitive<T> for AMP<F>
source§impl<F: CudaTypeName> CudaTypeName for AMP<F>
impl<F: CudaTypeName> CudaTypeName for AMP<F>
source§impl<F: DeviceRepr> DeviceRepr for AMP<F>
impl<F: DeviceRepr> DeviceRepr for AMP<F>
fn as_kernel_param(&self) -> *mut c_void
source§impl<F> Distribution<AMP<F>> for Exp1where
Self: Distribution<F>,
impl<F> Distribution<AMP<F>> for Exp1where Self: Distribution<F>,
source§fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> AMP<F>
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> AMP<F>
Generate a random value of
T
, using rng
as the source of randomness.source§impl<F> Distribution<AMP<F>> for Open01where
Self: Distribution<F>,
impl<F> Distribution<AMP<F>> for Open01where Self: Distribution<F>,
source§fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> AMP<F>
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> AMP<F>
Generate a random value of
T
, using rng
as the source of randomness.source§impl<F> Distribution<AMP<F>> for OpenClosed01where
Self: Distribution<F>,
impl<F> Distribution<AMP<F>> for OpenClosed01where Self: Distribution<F>,
source§fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> AMP<F>
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> AMP<F>
Generate a random value of
T
, using rng
as the source of randomness.source§impl<F> Distribution<AMP<F>> for Standardwhere
Self: Distribution<F>,
impl<F> Distribution<AMP<F>> for Standardwhere Self: Distribution<F>,
source§fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> AMP<F>
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> AMP<F>
Generate a random value of
T
, using rng
as the source of randomness.source§impl<F> Distribution<AMP<F>> for StandardNormalwhere
Self: Distribution<F>,
impl<F> Distribution<AMP<F>> for StandardNormalwhere Self: Distribution<F>,
source§fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> AMP<F>
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> AMP<F>
Generate a random value of
T
, using rng
as the source of randomness.source§impl<F: DivAssign<F>> DivAssign<AMP<F>> for AMP<F>
impl<F: DivAssign<F>> DivAssign<AMP<F>> for AMP<F>
source§fn div_assign(&mut self, rhs: Self)
fn div_assign(&mut self, rhs: Self)
Performs the
/=
operation. Read moresource§impl<F: Float> Float for AMP<F>
impl<F: Float> Float for AMP<F>
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 sin_cos(self) -> (Self, Self)
fn sin_cos(self) -> (Self, Self)
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<F: FloatConst> FloatConst for AMP<F>
impl<F: FloatConst> FloatConst for AMP<F>
source§fn FRAC_1_SQRT_2() -> Self
fn FRAC_1_SQRT_2() -> Self
Return
1.0 / sqrt(2.0)
.source§fn FRAC_2_SQRT_PI() -> Self
fn FRAC_2_SQRT_PI() -> Self
Return
2.0 / sqrt(π)
.source§impl<F: FromPrimitive> FromPrimitive for AMP<F>
impl<F: FromPrimitive> FromPrimitive for AMP<F>
source§fn from_f32(n: f32) -> Option<Self>
fn from_f32(n: f32) -> Option<Self>
Converts a
f32
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned.source§fn from_f64(n: f64) -> Option<Self>
fn from_f64(n: f64) -> Option<Self>
Converts a
f64
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned. Read moresource§fn from_i64(n: i64) -> Option<Self>
fn from_i64(n: i64) -> Option<Self>
Converts an
i64
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned.source§fn from_u64(n: u64) -> Option<Self>
fn from_u64(n: u64) -> Option<Self>
Converts an
u64
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned.source§fn from_isize(n: isize) -> Option<Self>
fn from_isize(n: isize) -> Option<Self>
Converts an
isize
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned.source§fn from_i8(n: i8) -> Option<Self>
fn from_i8(n: i8) -> Option<Self>
Converts an
i8
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned.source§fn from_i16(n: i16) -> Option<Self>
fn from_i16(n: i16) -> Option<Self>
Converts an
i16
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned.source§fn from_i32(n: i32) -> Option<Self>
fn from_i32(n: i32) -> Option<Self>
Converts an
i32
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned.source§fn from_i128(n: i128) -> Option<Self>
fn from_i128(n: i128) -> Option<Self>
Converts an
i128
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned. Read moresource§fn from_usize(n: usize) -> Option<Self>
fn from_usize(n: usize) -> Option<Self>
Converts a
usize
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned.source§fn from_u8(n: u8) -> Option<Self>
fn from_u8(n: u8) -> Option<Self>
Converts an
u8
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned.source§fn from_u16(n: u16) -> Option<Self>
fn from_u16(n: u16) -> Option<Self>
Converts an
u16
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned.source§impl<F: MulAssign<F>> MulAssign<AMP<F>> for AMP<F>
impl<F: MulAssign<F>> MulAssign<AMP<F>> for AMP<F>
source§fn mul_assign(&mut self, rhs: Self)
fn mul_assign(&mut self, rhs: Self)
Performs the
*=
operation. Read moresource§impl<F: Num> Num for AMP<F>
impl<F: Num> Num for AMP<F>
type FromStrRadixErr = <F 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<F: Ord> Ord for AMP<F>
impl<F: Ord> Ord for AMP<F>
source§impl<F: PartialEq> PartialEq<AMP<F>> for AMP<F>
impl<F: PartialEq> PartialEq<AMP<F>> for AMP<F>
source§impl<F: PartialOrd> PartialOrd<AMP<F>> for AMP<F>
impl<F: PartialOrd> PartialOrd<AMP<F>> for AMP<F>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self
and other
) and is used by the <=
operator. Read moresource§impl<F: SampleUniform> SampleUniform for AMP<F>
impl<F: SampleUniform> SampleUniform for AMP<F>
source§impl<F: SubAssign<F>> SubAssign<AMP<F>> for AMP<F>
impl<F: SubAssign<F>> SubAssign<AMP<F>> for AMP<F>
source§fn sub_assign(&mut self, rhs: Self)
fn sub_assign(&mut self, rhs: Self)
Performs the
-=
operation. Read moresource§impl<F: ToPrimitive> ToPrimitive for AMP<F>
impl<F: ToPrimitive> ToPrimitive for AMP<F>
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<F: Copy> Copy for AMP<F>
impl<F: Dtype> Dtype for AMP<F>
impl<F: Eq> Eq for AMP<F>
impl<F: SafeZeros> SafeZeros for AMP<F>
impl<F> StructuralEq for AMP<F>
impl<F> StructuralPartialEq for AMP<F>
impl<F: ValidAsZeroBits> ValidAsZeroBits for AMP<F>
Auto Trait Implementations§
impl<F> RefUnwindSafe for AMP<F>where F: RefUnwindSafe,
impl<F> Send for AMP<F>where F: Send,
impl<F> Sync for AMP<F>where F: Sync,
impl<F> Unpin for AMP<F>where F: Unpin,
impl<F> UnwindSafe for AMP<F>where F: UnwindSafe,
Blanket Implementations§
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<T> ComplexFloat for Twhere
T: Float + FloatConst,
impl<T> ComplexFloat for Twhere T: Float + FloatConst,
source§fn re(self) -> <T as ComplexFloat>::Real
fn re(self) -> <T as ComplexFloat>::Real
Returns the real part of the number.
source§fn im(self) -> <T as ComplexFloat>::Real
fn im(self) -> <T as ComplexFloat>::Real
Returns the imaginary part of the number.
source§fn l1_norm(&self) -> <T as ComplexFloat>::Real
fn l1_norm(&self) -> <T as ComplexFloat>::Real
Returns the L1 norm
|re| + |im|
– the Manhattan distance from the origin.source§fn arg(self) -> <T as ComplexFloat>::Real
fn arg(self) -> <T as ComplexFloat>::Real
Computes the argument of the number.
source§fn powc(
self,
exp: Complex<<T as ComplexFloat>::Real>
) -> Complex<<T as ComplexFloat>::Real>
fn powc( self, exp: Complex<<T as ComplexFloat>::Real> ) -> Complex<<T as ComplexFloat>::Real>
Raises
self
to a complex power.source§fn expf(self, base: <T as ComplexFloat>::Real) -> T
fn expf(self, base: <T as ComplexFloat>::Real) -> T
Returns
base^(self)
.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.source§fn recip(self) -> T
fn recip(self) -> T
Take the reciprocal (inverse) of a number,
1/x
. See also Complex::finv.source§fn log(self, base: T) -> T
fn log(self, base: T) -> T
Returns the logarithm of the number with respect to an arbitrary base.
source§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].
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].
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];
source§fn abs(self) -> T
fn abs(self) -> T
Returns the absolute value of the number. See also Complex::norm
§impl<T> Pointable for T
impl<T> Pointable for T
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 moresource§impl<Borrowed> SampleBorrow<Borrowed> for Borrowedwhere
Borrowed: SampleUniform,
impl<Borrowed> SampleBorrow<Borrowed> for Borrowedwhere Borrowed: SampleUniform,
source§fn borrow(&self) -> &Borrowed
fn borrow(&self) -> &Borrowed
Immutably borrows from an owned value. See
Borrow::borrow