pub struct BigFloat<CTX: BigFloatCtx> { /* private fields */ }
Expand description

Arbitrary precision float type that is a wrapper around [astro_float::BigFloat]. Has trait implementations to be used with nalgebra and num_traits.

BigFloat has a type parameter (CTX) that can be either ConstCtx if the precision and rounding mode is known at compile-time. Or one can be created with make_dyn_ctx if the precision or rounding mode are not known at compile time.

One limitation with this library is that only BigFloats with the same CTX parameter are allowed to interop. This means that the precision of a computation system cannot be changed without explicitly casting all variables.

NOTE: It is recommended to make a type alias such as the one below.

Example

use astro_nalgebra::{BigFloat, ConstCtx};

type BF128 = BigFloat<ConstCtx<128>>;

let ten: BF128 = "10".parse().unwrap();
let seven: BF128 = "7".parse().unwrap();
println!("{}", ten / seven);

Implementations§

source§

impl<CTX: BigFloatCtx> BigFloat<CTX>

source

pub fn as_f64(&self) -> f64

Returns the closest f64 to this BigFloat.

If self is NaN, returns f64::NAN

If self is Inf, returns f64::INFINITY or f64::NEG_INFINITY

Otherwise, returns the closest f64 value to this BigFloat.

NOTE: If the value is above f64::MAX, this function will overflow into f64::INFINITY.

NOTE: This is function is defined within this package because astro_float‘s implementation is private, so it is not an officially supported function.’

source

pub fn as_int(&self) -> Option<(Sign, u128)>

Returns sign and integer as u128. If the absolute value is greater than u128::MAX, returns None.

NOTE: it is much more idiomatic to use the BigFloat::try_into method.

NOTE: This will truncate anything below 1 without giving a warning or error You can check if a number is an integer by ensuring that it is equivalent to its truncated form by using this snippet: float.clone().trunc() - float

Example
use astro_nalgebra::{BigFloat,ConstCtx,Sign};
let int: BigFloat<ConstCtx<128>> = "1234512345".parse().unwrap();
if let Some((sign, integer)) = int.as_int() {
    assert_eq!(integer,1234512345u128);
    assert_eq!(sign, Sign::Pos);
}
else {
    // Value greater than u128::MAX
}

Trait Implementations§

source§

impl<CTX: BigFloatCtx> AbsDiffEq for BigFloat<CTX>

§

type Epsilon = BigFloat<CTX>

Used for specifying relative comparisons.
source§

fn default_epsilon() -> Self::Epsilon

The default tolerance to use when testing values that are close together. Read more
source§

fn abs_diff_eq(&self, other: &Self, epsilon: Self::Epsilon) -> bool

A test for equality that uses the absolute difference to compute the approximate equality of two numbers.
source§

fn abs_diff_ne(&self, other: &Rhs, epsilon: Self::Epsilon) -> bool

The inverse of AbsDiffEq::abs_diff_eq.
source§

impl<CTX: BigFloatCtx> Add for BigFloat<CTX>

§

type Output = BigFloat<CTX>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Self) -> Self

Performs the + operation. Read more
source§

impl<CTX: BigFloatCtx> AddAssign for BigFloat<CTX>

source§

fn add_assign(&mut self, rhs: Self)

Performs the += operation. Read more
source§

impl<CTX: BigFloatCtx> Clone for BigFloat<CTX>

source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<CTX: BigFloatCtx + 'static> ComplexField for BigFloat<CTX>

§

type RealField = BigFloat<CTX>

source§

fn is_finite(&self) -> bool

source§

fn scale(self, factor: Self::RealField) -> Self

Multiplies this complex number by factor.
source§

fn unscale(self, factor: Self::RealField) -> Self

Divides this complex number by factor.
source§

fn mul_add(self, a: Self, b: Self) -> Self

source§

fn hypot(self, other: Self) -> Self::RealField

Computes (self.conjugate() * self + other.conjugate() * other).sqrt()
source§

fn recip(self) -> Self

source§

fn real(self) -> Self

The real part of this complex number.
source§

fn from_real(re: Self::RealField) -> Self

Builds a pure-real complex number from the given value.
source§

fn imaginary(self) -> Self

The imaginary part of this complex number.
source§

fn modulus_squared(self) -> Self::RealField

The squared modulus of this complex number.
source§

fn modulus(self) -> Self

The modulus of this complex number.
source§

fn argument(self) -> Self::RealField

The argument of this complex number.
source§

fn norm1(self) -> Self

The sum of the absolute value of this complex number’s real and imaginary part.
source§

fn conjugate(self) -> Self

source§

fn ln(self) -> Self

source§

fn log2(self) -> Self

source§

fn log10(self) -> Self

source§

fn log(self, base: Self::RealField) -> Self

source§

fn ln_1p(self) -> Self

source§

fn exp(self) -> Self

source§

fn exp2(self) -> Self

source§

fn exp_m1(self) -> Self

source§

fn powi(self, n: i32) -> Self

source§

fn powf(self, n: Self::RealField) -> Self

source§

fn sqrt(self) -> Self

source§

fn cbrt(self) -> Self

source§

fn try_sqrt(self) -> Option<Self>

source§

fn powc(self, n: Self) -> Self

source§

fn round(self) -> Self

source§

fn floor(self) -> Self

source§

fn ceil(self) -> Self

source§

fn abs(self) -> Self

The absolute value of this complex number: self / self.signum(). Read more
source§

fn fract(self) -> Self

source§

fn trunc(self) -> Self

source§

fn signum(self) -> Self

The exponential part of this complex number: self / self.modulus()
source§

fn sin(self) -> Self

source§

fn cos(self) -> Self

source§

fn tan(self) -> Self

source§

fn asin(self) -> Self

source§

fn acos(self) -> Self

source§

fn atan(self) -> Self

source§

fn sinh(self) -> Self

source§

fn cosh(self) -> Self

source§

fn tanh(self) -> Self

source§

fn asinh(self) -> Self

source§

fn acosh(self) -> Self

source§

fn atanh(self) -> Self

source§

fn sin_cos(self) -> (Self, Self)

source§

fn to_polar(self) -> (Self::RealField, Self::RealField)

The polar form of this complex number: (modulus, arg)
source§

fn to_exp(self) -> (Self::RealField, Self)

The exponential form of this complex number: (modulus, e^{i arg})
source§

fn sinh_cosh(self) -> (Self, Self)

source§

fn sinc(self) -> Self

Cardinal sine
source§

fn sinhc(self) -> Self

source§

fn cosc(self) -> Self

Cardinal cos
source§

fn coshc(self) -> Self

source§

impl<'de, CTX: BigFloatCtx> Deserialize<'de> for BigFloat<CTX>

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl<CTX: BigFloatCtx> Div for BigFloat<CTX>

§

type Output = BigFloat<CTX>

The resulting type after applying the / operator.
source§

fn div(self, rhs: Self) -> Self

Performs the / operation. Read more
source§

impl<CTX: BigFloatCtx> DivAssign for BigFloat<CTX>

source§

fn div_assign(&mut self, rhs: Self)

Performs the /= operation. Read more
source§

impl<CTX: BigFloatCtx> From<BigFloat<CTX>> for f32

source§

fn from(x: BigFloat<CTX>) -> Self

Converts to this type from the input type.
source§

impl<CTX: BigFloatCtx> From<BigFloat<CTX>> for f64

source§

fn from(x: BigFloat<CTX>) -> Self

Converts to this type from the input type.
source§

impl<CTX: BigFloatCtx> From<BigFloat> for BigFloat<CTX>

source§

fn from(value: BigFloat) -> Self

Converts to this type from the input type.
source§

impl<CTX: BigFloatCtx> FromPrimitive for BigFloat<CTX>

source§

fn from_f64(prim: 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 more
source§

fn from_f32(prim: 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_u8(prim: 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_i8(prim: 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_u16(prim: 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§

fn from_i16(prim: 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_u32(prim: u32) -> Option<Self>

Converts an u32 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(prim: 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_i64(prim: 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(prim: 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_i128(prim: 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 more
source§

fn from_u128(prim: u128) -> Option<Self>

Converts an u128 to return an optional value of this type. If the value cannot be represented by this type, then None is returned. Read more
source§

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_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§

impl<CTX: BigFloatCtx> FromStr for BigFloat<CTX>

§

type Err = ParseBigFloatError

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
source§

impl<CTX: BigFloatCtx> Mul for BigFloat<CTX>

§

type Output = BigFloat<CTX>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Self) -> Self

Performs the * operation. Read more
source§

impl<CTX: BigFloatCtx> MulAssign for BigFloat<CTX>

source§

fn mul_assign(&mut self, rhs: Self)

Performs the *= operation. Read more
source§

impl<CTX: BigFloatCtx> Neg for BigFloat<CTX>

§

type Output = BigFloat<CTX>

The resulting type after applying the - operator.
source§

fn neg(self) -> Self

Performs the unary - operation. Read more
source§

impl<CTX: BigFloatCtx> Num for BigFloat<CTX>

§

type FromStrRadixErr = ParseBigFloatError

source§

fn from_str_radix(str: &str, radix: u32) -> Result<Self, Self::FromStrRadixErr>

Convert from a string and radix (typically 2..=36). Read more
source§

impl<CTX: BigFloatCtx> One for BigFloat<CTX>

source§

fn one() -> Self

Returns the multiplicative identity element of Self, 1. Read more
source§

fn is_one(&self) -> bool

Returns true if self is equal to the multiplicative identity. Read more
source§

fn set_one(&mut self)

Sets self to the multiplicative identity element of Self, 1.
source§

impl<CTX: BigFloatCtx> PartialEq for BigFloat<CTX>

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<CTX: BigFloatCtx> PartialOrd for BigFloat<CTX>

source§

fn partial_cmp(&self, other: &Self) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

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 more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<CTX: BigFloatCtx + 'static> RealField for BigFloat<CTX>

source§

fn is_sign_positive(&self) -> bool

Is the sign of this real number positive?
source§

fn is_sign_negative(&self) -> bool

Is the sign of this real number negative?
source§

fn max(self, other: Self) -> Self

source§

fn min(self, other: Self) -> Self

source§

fn clamp(self, min: Self, max: Self) -> Self

source§

fn copysign(self, sign: Self) -> Self

Copies the sign of sign to self. Read more
source§

fn frac_pi_2() -> Self

source§

fn frac_pi_3() -> Self

source§

fn frac_pi_4() -> Self

source§

fn frac_pi_6() -> Self

source§

fn frac_pi_8() -> Self

source§

fn two_pi() -> Self

source§

fn pi() -> Self

source§

fn e() -> Self

source§

fn ln_2() -> Self

source§

fn ln_10() -> Self

source§

fn log2_e() -> Self

source§

fn log10_e() -> Self

source§

fn min_value() -> Option<Self>

The smallest finite positive value representable using this type.
source§

fn max_value() -> Option<Self>

The largest finite positive value representable using this type.
source§

fn frac_1_pi() -> Self

source§

fn frac_2_pi() -> Self

source§

fn frac_2_sqrt_pi() -> Self

source§

fn atan2(self, other: Self) -> Self

source§

impl<CTX: BigFloatCtx + 'static> RelativeEq for BigFloat<CTX>

source§

fn default_max_relative() -> Self::Epsilon

The default relative tolerance for testing values that are far-apart. Read more
source§

fn relative_eq( &self, other: &Self, epsilon: Self::Epsilon, _max_relative: Self::Epsilon ) -> bool

A test for equality that uses a relative comparison if the values are far apart.
source§

fn relative_ne( &self, other: &Rhs, epsilon: Self::Epsilon, max_relative: Self::Epsilon ) -> bool

The inverse of RelativeEq::relative_eq.
source§

impl<CTX: BigFloatCtx> Rem for BigFloat<CTX>

§

type Output = BigFloat<CTX>

The resulting type after applying the % operator.
source§

fn rem(self, rhs: Self) -> Self

Performs the % operation. Read more
source§

impl<CTX: BigFloatCtx> RemAssign for BigFloat<CTX>

source§

fn rem_assign(&mut self, rhs: Self)

Performs the %= operation. Read more
source§

impl<CTX: BigFloatCtx> Serialize for BigFloat<CTX>

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<CTX: BigFloatCtx + 'static> Signed for BigFloat<CTX>

source§

fn signum(&self) -> Self

Returns the sign of the number. Read more
source§

fn abs(&self) -> Self

Computes the absolute value. Read more
source§

fn is_positive(&self) -> bool

Returns true if the number is positive and false if the number is zero or negative.
source§

fn is_negative(&self) -> bool

Returns true if the number is negative and false if the number is zero or positive.
source§

fn abs_sub(&self, other: &Self) -> Self

The positive difference of two numbers. Read more
source§

impl<CTX: BigFloatCtx> Sub for BigFloat<CTX>

§

type Output = BigFloat<CTX>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Self) -> Self

Performs the - operation. Read more
source§

impl<CTX: BigFloatCtx> SubAssign for BigFloat<CTX>

source§

fn sub_assign(&mut self, rhs: Self)

Performs the -= operation. Read more
source§

impl<CTX: BigFloatCtx> TryFrom<BigFloat<CTX>> for u128

§

type Error = ()

The type returned in the event of a conversion error.
source§

fn try_from(x: BigFloat<CTX>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<CTX: BigFloatCtx> TryFrom<BigFloat<CTX>> for u16

§

type Error = ()

The type returned in the event of a conversion error.
source§

fn try_from(x: BigFloat<CTX>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<CTX: BigFloatCtx> TryFrom<BigFloat<CTX>> for u32

§

type Error = ()

The type returned in the event of a conversion error.
source§

fn try_from(x: BigFloat<CTX>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<CTX: BigFloatCtx> TryFrom<BigFloat<CTX>> for u64

§

type Error = ()

The type returned in the event of a conversion error.
source§

fn try_from(x: BigFloat<CTX>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<CTX: BigFloatCtx> TryFrom<BigFloat<CTX>> for u8

§

type Error = ()

The type returned in the event of a conversion error.
source§

fn try_from(x: BigFloat<CTX>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<CTX: BigFloatCtx> TryInto<i128> for BigFloat<CTX>

§

type Error = ()

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<i128, Self::Error>

Performs the conversion.
source§

impl<CTX: BigFloatCtx> TryInto<i16> for BigFloat<CTX>

§

type Error = ()

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<i16, Self::Error>

Performs the conversion.
source§

impl<CTX: BigFloatCtx> TryInto<i32> for BigFloat<CTX>

§

type Error = ()

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<i32, Self::Error>

Performs the conversion.
source§

impl<CTX: BigFloatCtx> TryInto<i64> for BigFloat<CTX>

§

type Error = ()

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<i64, Self::Error>

Performs the conversion.
source§

impl<CTX: BigFloatCtx> TryInto<i8> for BigFloat<CTX>

§

type Error = ()

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<i8, Self::Error>

Performs the conversion.
source§

impl<CTX: BigFloatCtx> UlpsEq for BigFloat<CTX>

source§

fn default_max_ulps() -> u32

The default ULPs to tolerate when testing values that are far-apart. Read more
source§

fn ulps_eq(&self, other: &Self, epsilon: Self::Epsilon, _max_ulps: u32) -> bool

A test for equality that uses units in the last place (ULP) if the values are far apart.
source§

fn ulps_ne(&self, other: &Rhs, epsilon: Self::Epsilon, max_ulps: u32) -> bool

The inverse of UlpsEq::ulps_eq.
source§

impl<CTX: BigFloatCtx> Zero for BigFloat<CTX>

source§

fn zero() -> Self

Returns the additive identity element of Self, 0. Read more
source§

fn is_zero(&self) -> bool

Returns true if self is equal to the additive identity.
source§

fn set_zero(&mut self)

Sets self to the additive identity element of Self, 0.
source§

impl<CTX: Eq + BigFloatCtx> Eq for BigFloat<CTX>

source§

impl<CTX: BigFloatCtx> Field for BigFloat<CTX>

source§

impl<CTX: BigFloatCtx> StructuralEq for BigFloat<CTX>

Auto Trait Implementations§

§

impl<CTX> RefUnwindSafe for BigFloat<CTX>

§

impl<CTX> Send for BigFloat<CTX>

§

impl<CTX> Sync for BigFloat<CTX>

§

impl<CTX> Unpin for BigFloat<CTX>

§

impl<CTX> UnwindSafe for BigFloat<CTX>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> SimdComplexField for T
where T: ComplexField,

§

type SimdRealField = <T as ComplexField>::RealField

Type of the coefficients of a complex number.
source§

fn from_simd_real(re: <T as SimdComplexField>::SimdRealField) -> T

Builds a pure-real complex number from the given value.
source§

fn simd_real(self) -> <T as SimdComplexField>::SimdRealField

The real part of this complex number.
source§

fn simd_imaginary(self) -> <T as SimdComplexField>::SimdRealField

The imaginary part of this complex number.
source§

fn simd_modulus(self) -> <T as SimdComplexField>::SimdRealField

The modulus of this complex number.
source§

fn simd_modulus_squared(self) -> <T as SimdComplexField>::SimdRealField

The squared modulus of this complex number.
source§

fn simd_argument(self) -> <T as SimdComplexField>::SimdRealField

The argument of this complex number.
source§

fn simd_norm1(self) -> <T as SimdComplexField>::SimdRealField

The sum of the absolute value of this complex number’s real and imaginary part.
source§

fn simd_scale(self, factor: <T as SimdComplexField>::SimdRealField) -> T

Multiplies this complex number by factor.
source§

fn simd_unscale(self, factor: <T as SimdComplexField>::SimdRealField) -> T

Divides this complex number by factor.
source§

fn simd_to_polar( self ) -> (<T as SimdComplexField>::SimdRealField, <T as SimdComplexField>::SimdRealField)

The polar form of this complex number: (modulus, arg)
source§

fn simd_to_exp(self) -> (<T as SimdComplexField>::SimdRealField, T)

The exponential form of this complex number: (modulus, e^{i arg})
source§

fn simd_signum(self) -> T

The exponential part of this complex number: self / self.modulus()
source§

fn simd_floor(self) -> T

source§

fn simd_ceil(self) -> T

source§

fn simd_round(self) -> T

source§

fn simd_trunc(self) -> T

source§

fn simd_fract(self) -> T

source§

fn simd_mul_add(self, a: T, b: T) -> T

source§

fn simd_abs(self) -> <T as SimdComplexField>::SimdRealField

The absolute value of this complex number: self / self.signum(). Read more
source§

fn simd_hypot(self, other: T) -> <T as SimdComplexField>::SimdRealField

Computes (self.conjugate() * self + other.conjugate() * other).sqrt()
source§

fn simd_recip(self) -> T

source§

fn simd_conjugate(self) -> T

source§

fn simd_sin(self) -> T

source§

fn simd_cos(self) -> T

source§

fn simd_sin_cos(self) -> (T, T)

source§

fn simd_sinh_cosh(self) -> (T, T)

source§

fn simd_tan(self) -> T

source§

fn simd_asin(self) -> T

source§

fn simd_acos(self) -> T

source§

fn simd_atan(self) -> T

source§

fn simd_sinh(self) -> T

source§

fn simd_cosh(self) -> T

source§

fn simd_tanh(self) -> T

source§

fn simd_asinh(self) -> T

source§

fn simd_acosh(self) -> T

source§

fn simd_atanh(self) -> T

source§

fn simd_sinc(self) -> T

Cardinal sine
source§

fn simd_sinhc(self) -> T

source§

fn simd_cosc(self) -> T

Cardinal cos
source§

fn simd_coshc(self) -> T

source§

fn simd_log(self, base: <T as SimdComplexField>::SimdRealField) -> T

source§

fn simd_log2(self) -> T

source§

fn simd_log10(self) -> T

source§

fn simd_ln(self) -> T

source§

fn simd_ln_1p(self) -> T

source§

fn simd_sqrt(self) -> T

source§

fn simd_exp(self) -> T

source§

fn simd_exp2(self) -> T

source§

fn simd_exp_m1(self) -> T

source§

fn simd_powi(self, n: i32) -> T

source§

fn simd_powf(self, n: <T as SimdComplexField>::SimdRealField) -> T

source§

fn simd_powc(self, n: T) -> T

source§

fn simd_cbrt(self) -> T

source§

fn simd_horizontal_sum(self) -> <T as SimdValue>::Element

Computes the sum of all the lanes of self.
source§

fn simd_horizontal_product(self) -> <T as SimdValue>::Element

Computes the product of all the lanes of self.
source§

impl<T> SimdPartialOrd for T
where T: SimdValue<Element = T, SimdBool = bool> + PartialOrd,

source§

fn simd_gt(self, other: T) -> <T as SimdValue>::SimdBool

Lanewise greater than > comparison.
source§

fn simd_lt(self, other: T) -> <T as SimdValue>::SimdBool

Lanewise less than < comparison.
source§

fn simd_ge(self, other: T) -> <T as SimdValue>::SimdBool

Lanewise greater or equal >= comparison.
source§

fn simd_le(self, other: T) -> <T as SimdValue>::SimdBool

Lanewise less or equal <= comparison.
source§

fn simd_eq(self, other: T) -> <T as SimdValue>::SimdBool

Lanewise equal == comparison.
source§

fn simd_ne(self, other: T) -> <T as SimdValue>::SimdBool

Lanewise not equal != comparison.
source§

fn simd_max(self, other: T) -> T

Lanewise max value.
source§

fn simd_min(self, other: T) -> T

Lanewise min value.
source§

fn simd_clamp(self, min: T, max: T) -> T

Clamps each lane of self between the corresponding lane of min and max.
source§

fn simd_horizontal_min(self) -> <T as SimdValue>::Element

The min value among all lanes of self.
source§

fn simd_horizontal_max(self) -> <T as SimdValue>::Element

The max value among all lanes of self.
source§

impl<T> SimdRealField for T
where T: RealField,

source§

impl<T> SimdSigned for T
where T: Signed + SimdValue<SimdBool = bool>,

source§

fn simd_abs(&self) -> T

The absolute value of each lane of self.
source§

fn simd_abs_sub(&self, other: &T) -> T

The absolute difference of each lane of self. Read more
source§

fn simd_signum(&self) -> T

The signum of each lane of Self.
source§

fn is_simd_positive(&self) -> <T as SimdValue>::SimdBool

Tests which lane is positive.
source§

fn is_simd_negative(&self) -> <T as SimdValue>::SimdBool

Tests which lane is negative.
source§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

source§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
source§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
source§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
source§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for T
where T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T, Right> ClosedAdd<Right> for T
where T: Add<Right, Output = T> + AddAssign<Right>,

source§

impl<T, Right> ClosedDiv<Right> for T
where T: Div<Right, Output = T> + DivAssign<Right>,

source§

impl<T, Right> ClosedMul<Right> for T
where T: Mul<Right, Output = T> + MulAssign<Right>,

source§

impl<T> ClosedNeg for T
where T: Neg<Output = T>,

source§

impl<T, Right> ClosedSub<Right> for T
where T: Sub<Right, Output = T> + SubAssign<Right>,

source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

source§

impl<T> NumAssign for T
where T: Num + NumAssignOps,

source§

impl<T, Rhs> NumAssignOps<Rhs> for T
where T: AddAssign<Rhs> + SubAssign<Rhs> + MulAssign<Rhs> + DivAssign<Rhs> + RemAssign<Rhs>,

source§

impl<T, Rhs, Output> NumOps<Rhs, Output> for T
where T: Sub<Rhs, Output = Output> + Mul<Rhs, Output = Output> + Div<Rhs, Output = Output> + Add<Rhs, Output = Output> + Rem<Rhs, Output = Output>,

source§

impl<T> Scalar for T
where T: 'static + Clone + PartialEq + Debug,