pub trait NumberInstance: Copy + Default + Sized + From<Boolean> + Into<Number> + Add<Output = Self> + AddAssign + Sub<Output = Self> + SubAssign + Mul<Output = Self> + MulAssign + Div<Output = Self> + DivAssign + Product + Sum + Debug + Display {
    type Abs: NumberInstance;
    type Exp: NumberInstance;
    type Log: NumberInstance;
    type Round: NumberInstance;
    type Class: NumberClass<Instance = Self>;

    // Required methods
    fn class(&self) -> Self::Class;
    fn into_type(
        self,
        dtype: <Self as NumberInstance>::Class
    ) -> <<Self as NumberInstance>::Class as NumberClass>::Instance;
    fn abs(self) -> Self::Abs;
    fn exp(self) -> Self::Exp;
    fn ln(self) -> Self::Log;
    fn log<N: NumberInstance>(self, base: N) -> Self::Log
       where Float: From<N>;
    fn pow(self, exp: Number) -> Self;
    fn round(self) -> Self::Round;

    // Provided methods
    fn and(self, other: Self) -> Self
       where Boolean: CastFrom<Self> { ... }
    fn not(self) -> Self
       where Boolean: CastFrom<Self> { ... }
    fn or(self, other: Self) -> Self
       where Boolean: CastFrom<Self> { ... }
    fn xor(self, other: Self) -> Self
       where Boolean: CastFrom<Self> { ... }
}
Expand description

Defines common operations on numeric types supported by Number.

Required Associated Types§

Required Methods§

source

fn class(&self) -> Self::Class

Get an impl of NumberClass describing this number.

source

fn into_type( self, dtype: <Self as NumberInstance>::Class ) -> <<Self as NumberInstance>::Class as NumberClass>::Instance

Cast this number into the specified NumberClass.

source

fn abs(self) -> Self::Abs

Calculate the absolute value of this number.

source

fn exp(self) -> Self::Exp

Raise e to the power of this number.

source

fn ln(self) -> Self::Log

Compute the natural logarithm of this number.

source

fn log<N: NumberInstance>(self, base: N) -> Self::Log
where Float: From<N>,

Compute the logarithm of this number with respect to the given base.

source

fn pow(self, exp: Number) -> Self

Raise this number to the given exponent.

Panics: if the given exponent is a complex number.

source

fn round(self) -> Self::Round

Return this number rounded to the nearest integer.

Provided Methods§

source

fn and(self, other: Self) -> Self
where Boolean: CastFrom<Self>,

Return true if self and other are nonzero.

source

fn not(self) -> Self
where Boolean: CastFrom<Self>,

Return true if this number is zero.

source

fn or(self, other: Self) -> Self
where Boolean: CastFrom<Self>,

Return true if self or other is nonzero.

source

fn xor(self, other: Self) -> Self
where Boolean: CastFrom<Self>,

Return true if exactly one of self and other is zero.

Object Safety§

This trait is not object safe.

Implementors§