Trait distances::number::Number

source ·
pub trait Number: Add<Output = Self> + AddAssign<Self> + Sum<Self> + Sub<Output = Self> + SubAssign<Self> + Mul<Output = Self> + MulAssign<Self> + Div<Output = Self> + DivAssign<Self> + Rem<Output = Self> + RemAssign<Self> + Copy + Clone + PartialEq + PartialOrd + Send + Sync + Debug + Display + Default {
Show 20 methods // Required methods fn zero() -> Self; fn one() -> Self; fn mul_add(self, a: Self, b: Self) -> Self; fn mul_add_assign(&mut self, a: Self, b: Self); fn from<T: Number>(n: T) -> Self; fn as_f32(self) -> f32; fn as_f64(self) -> f64; fn as_u64(self) -> u64; fn as_i64(self) -> i64; fn abs(self) -> Self; fn abs_diff(self, other: Self) -> Self; fn powi(self, exp: i32) -> Self; fn num_bytes() -> usize; fn from_le_bytes(bytes: &[u8]) -> Self; fn to_le_bytes(self) -> Vec<u8>; fn from_be_bytes(bytes: &[u8]) -> Self; fn to_be_bytes(self) -> Vec<u8>; fn epsilon() -> Self; fn next_random<R: Rng>(rng: &mut R) -> Self; // Provided method fn type_name<'a>() -> &'a str { ... }
}
Expand description

Collections of Numbers can be used to calculate distances.

Required Methods§

source

fn zero() -> Self

Returns the additive identity.

source

fn one() -> Self

Returns the multiplicative identity.

source

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

Returns self + a * b.

source

fn mul_add_assign(&mut self, a: Self, b: Self)

Replaces self with self + a * b.

source

fn from<T: Number>(n: T) -> Self

Casts a number to Self. This may be a lossy conversion.

source

fn as_f32(self) -> f32

Returns the number as a f32. This may be a lossy conversion.

source

fn as_f64(self) -> f64

Returns the number as a f64. This may be a lossy conversion.

source

fn as_u64(self) -> u64

Returns the number as a u64. This may be a lossy conversion.

source

fn as_i64(self) -> i64

Returns the number as a i64. This may be a lossy conversion.

source

fn abs(self) -> Self

Returns the absolute value of a Number.

source

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

Returns the absolute difference between two Numbers.

source

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

Returns self raised to the power of exp.

source

fn num_bytes() -> usize

Returns the number of bytes used to represent a Number.

source

fn from_le_bytes(bytes: &[u8]) -> Self

Reads a Number from little endian bytes.

source

fn to_le_bytes(self) -> Vec<u8>

Converts a Number to little endian bytes.

source

fn from_be_bytes(bytes: &[u8]) -> Self

Reads a Number from big endian bytes.

source

fn to_be_bytes(self) -> Vec<u8>

Converts a Number to big endian bytes.

source

fn epsilon() -> Self

Returns the epsilon value for the type.

For floating point types, this is the difference between 1.0 and the next largest representable number.

For integer types, this is 0.

source

fn next_random<R: Rng>(rng: &mut R) -> Self

Returns a random Number.

Provided Methods§

source

fn type_name<'a>() -> &'a str

Returns the name of the type.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl Number for f32

source§

fn zero() -> Self

source§

fn one() -> Self

source§

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

source§

fn mul_add_assign(&mut self, a: Self, b: Self)

source§

fn as_f32(self) -> f32

source§

fn from<T: Number>(n: T) -> Self

source§

fn as_f64(self) -> f64

source§

fn as_u64(self) -> u64

source§

fn as_i64(self) -> i64

source§

fn abs(self) -> Self

source§

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

source§

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

source§

fn num_bytes() -> usize

source§

fn from_le_bytes(bytes: &[u8]) -> Self

source§

fn to_le_bytes(self) -> Vec<u8>

source§

fn from_be_bytes(bytes: &[u8]) -> Self

source§

fn to_be_bytes(self) -> Vec<u8>

source§

fn epsilon() -> Self

source§

fn next_random<R: Rng>(rng: &mut R) -> Self

source§

impl Number for f64

source§

fn zero() -> Self

source§

fn one() -> Self

source§

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

source§

fn mul_add_assign(&mut self, a: Self, b: Self)

source§

fn from<T: Number>(n: T) -> Self

source§

fn as_f32(self) -> f32

source§

fn as_f64(self) -> f64

source§

fn as_u64(self) -> u64

source§

fn as_i64(self) -> i64

source§

fn abs(self) -> Self

source§

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

source§

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

source§

fn num_bytes() -> usize

source§

fn from_le_bytes(bytes: &[u8]) -> Self

source§

fn to_le_bytes(self) -> Vec<u8>

source§

fn from_be_bytes(bytes: &[u8]) -> Self

source§

fn to_be_bytes(self) -> Vec<u8>

source§

fn epsilon() -> Self

source§

fn next_random<R: Rng>(rng: &mut R) -> Self

source§

impl Number for i8

source§

fn zero() -> Self

source§

fn one() -> Self

source§

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

source§

fn mul_add_assign(&mut self, a: Self, b: Self)

source§

fn from<T: Number>(n: T) -> Self

source§

fn as_f32(self) -> f32

source§

fn as_f64(self) -> f64

source§

fn as_u64(self) -> u64

source§

fn as_i64(self) -> i64

source§

fn abs(self) -> Self

source§

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

source§

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

source§

fn num_bytes() -> usize

source§

fn from_le_bytes(bytes: &[u8]) -> Self

source§

fn to_le_bytes(self) -> Vec<u8>

source§

fn from_be_bytes(bytes: &[u8]) -> Self

source§

fn to_be_bytes(self) -> Vec<u8>

source§

fn epsilon() -> Self

source§

fn next_random<R: Rng>(rng: &mut R) -> Self

source§

impl Number for i16

source§

fn zero() -> Self

source§

fn one() -> Self

source§

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

source§

fn mul_add_assign(&mut self, a: Self, b: Self)

source§

fn from<T: Number>(n: T) -> Self

source§

fn as_f32(self) -> f32

source§

fn as_f64(self) -> f64

source§

fn as_u64(self) -> u64

source§

fn as_i64(self) -> i64

source§

fn abs(self) -> Self

source§

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

source§

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

source§

fn num_bytes() -> usize

source§

fn from_le_bytes(bytes: &[u8]) -> Self

source§

fn to_le_bytes(self) -> Vec<u8>

source§

fn from_be_bytes(bytes: &[u8]) -> Self

source§

fn to_be_bytes(self) -> Vec<u8>

source§

fn epsilon() -> Self

source§

fn next_random<R: Rng>(rng: &mut R) -> Self

source§

impl Number for i32

source§

fn zero() -> Self

source§

fn one() -> Self

source§

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

source§

fn mul_add_assign(&mut self, a: Self, b: Self)

source§

fn from<T: Number>(n: T) -> Self

source§

fn as_f32(self) -> f32

source§

fn as_f64(self) -> f64

source§

fn as_u64(self) -> u64

source§

fn as_i64(self) -> i64

source§

fn abs(self) -> Self

source§

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

source§

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

source§

fn num_bytes() -> usize

source§

fn from_le_bytes(bytes: &[u8]) -> Self

source§

fn to_le_bytes(self) -> Vec<u8>

source§

fn from_be_bytes(bytes: &[u8]) -> Self

source§

fn to_be_bytes(self) -> Vec<u8>

source§

fn epsilon() -> Self

source§

fn next_random<R: Rng>(rng: &mut R) -> Self

source§

impl Number for i64

source§

fn zero() -> Self

source§

fn one() -> Self

source§

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

source§

fn mul_add_assign(&mut self, a: Self, b: Self)

source§

fn from<T: Number>(n: T) -> Self

source§

fn as_f32(self) -> f32

source§

fn as_f64(self) -> f64

source§

fn as_u64(self) -> u64

source§

fn as_i64(self) -> i64

source§

fn abs(self) -> Self

source§

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

source§

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

source§

fn num_bytes() -> usize

source§

fn from_le_bytes(bytes: &[u8]) -> Self

source§

fn to_le_bytes(self) -> Vec<u8>

source§

fn from_be_bytes(bytes: &[u8]) -> Self

source§

fn to_be_bytes(self) -> Vec<u8>

source§

fn epsilon() -> Self

source§

fn next_random<R: Rng>(rng: &mut R) -> Self

source§

impl Number for i128

source§

fn zero() -> Self

source§

fn one() -> Self

source§

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

source§

fn mul_add_assign(&mut self, a: Self, b: Self)

source§

fn from<T: Number>(n: T) -> Self

source§

fn as_f32(self) -> f32

source§

fn as_f64(self) -> f64

source§

fn as_u64(self) -> u64

source§

fn as_i64(self) -> i64

source§

fn abs(self) -> Self

source§

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

source§

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

source§

fn num_bytes() -> usize

source§

fn from_le_bytes(bytes: &[u8]) -> Self

source§

fn to_le_bytes(self) -> Vec<u8>

source§

fn from_be_bytes(bytes: &[u8]) -> Self

source§

fn to_be_bytes(self) -> Vec<u8>

source§

fn epsilon() -> Self

source§

fn next_random<R: Rng>(rng: &mut R) -> Self

source§

impl Number for isize

source§

fn zero() -> Self

source§

fn one() -> Self

source§

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

source§

fn mul_add_assign(&mut self, a: Self, b: Self)

source§

fn from<T: Number>(n: T) -> Self

source§

fn as_f32(self) -> f32

source§

fn as_f64(self) -> f64

source§

fn as_u64(self) -> u64

source§

fn as_i64(self) -> i64

source§

fn abs(self) -> Self

source§

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

source§

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

source§

fn num_bytes() -> usize

source§

fn from_le_bytes(bytes: &[u8]) -> Self

source§

fn to_le_bytes(self) -> Vec<u8>

source§

fn from_be_bytes(bytes: &[u8]) -> Self

source§

fn to_be_bytes(self) -> Vec<u8>

source§

fn epsilon() -> Self

source§

fn next_random<R: Rng>(rng: &mut R) -> Self

source§

impl Number for u8

source§

fn zero() -> Self

source§

fn one() -> Self

source§

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

source§

fn mul_add_assign(&mut self, a: Self, b: Self)

source§

fn from<T: Number>(n: T) -> Self

source§

fn as_f32(self) -> f32

source§

fn as_f64(self) -> f64

source§

fn as_u64(self) -> u64

source§

fn as_i64(self) -> i64

source§

fn abs(self) -> Self

source§

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

source§

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

source§

fn num_bytes() -> usize

source§

fn from_le_bytes(bytes: &[u8]) -> Self

source§

fn to_le_bytes(self) -> Vec<u8>

source§

fn from_be_bytes(bytes: &[u8]) -> Self

source§

fn to_be_bytes(self) -> Vec<u8>

source§

fn epsilon() -> Self

source§

fn next_random<R: Rng>(rng: &mut R) -> Self

source§

impl Number for u16

source§

fn zero() -> Self

source§

fn one() -> Self

source§

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

source§

fn mul_add_assign(&mut self, a: Self, b: Self)

source§

fn from<T: Number>(n: T) -> Self

source§

fn as_f32(self) -> f32

source§

fn as_f64(self) -> f64

source§

fn as_u64(self) -> u64

source§

fn as_i64(self) -> i64

source§

fn abs(self) -> Self

source§

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

source§

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

source§

fn num_bytes() -> usize

source§

fn from_le_bytes(bytes: &[u8]) -> Self

source§

fn to_le_bytes(self) -> Vec<u8>

source§

fn from_be_bytes(bytes: &[u8]) -> Self

source§

fn to_be_bytes(self) -> Vec<u8>

source§

fn epsilon() -> Self

source§

fn next_random<R: Rng>(rng: &mut R) -> Self

source§

impl Number for u32

source§

fn zero() -> Self

source§

fn one() -> Self

source§

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

source§

fn mul_add_assign(&mut self, a: Self, b: Self)

source§

fn from<T: Number>(n: T) -> Self

source§

fn as_f32(self) -> f32

source§

fn as_f64(self) -> f64

source§

fn as_u64(self) -> u64

source§

fn as_i64(self) -> i64

source§

fn abs(self) -> Self

source§

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

source§

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

source§

fn num_bytes() -> usize

source§

fn from_le_bytes(bytes: &[u8]) -> Self

source§

fn to_le_bytes(self) -> Vec<u8>

source§

fn from_be_bytes(bytes: &[u8]) -> Self

source§

fn to_be_bytes(self) -> Vec<u8>

source§

fn epsilon() -> Self

source§

fn next_random<R: Rng>(rng: &mut R) -> Self

source§

impl Number for u64

source§

fn zero() -> Self

source§

fn one() -> Self

source§

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

source§

fn mul_add_assign(&mut self, a: Self, b: Self)

source§

fn from<T: Number>(n: T) -> Self

source§

fn as_f32(self) -> f32

source§

fn as_f64(self) -> f64

source§

fn as_u64(self) -> u64

source§

fn as_i64(self) -> i64

source§

fn abs(self) -> Self

source§

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

source§

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

source§

fn num_bytes() -> usize

source§

fn from_le_bytes(bytes: &[u8]) -> Self

source§

fn to_le_bytes(self) -> Vec<u8>

source§

fn from_be_bytes(bytes: &[u8]) -> Self

source§

fn to_be_bytes(self) -> Vec<u8>

source§

fn epsilon() -> Self

source§

fn next_random<R: Rng>(rng: &mut R) -> Self

source§

impl Number for u128

source§

fn zero() -> Self

source§

fn one() -> Self

source§

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

source§

fn mul_add_assign(&mut self, a: Self, b: Self)

source§

fn from<T: Number>(n: T) -> Self

source§

fn as_f32(self) -> f32

source§

fn as_f64(self) -> f64

source§

fn as_u64(self) -> u64

source§

fn as_i64(self) -> i64

source§

fn abs(self) -> Self

source§

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

source§

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

source§

fn num_bytes() -> usize

source§

fn from_le_bytes(bytes: &[u8]) -> Self

source§

fn to_le_bytes(self) -> Vec<u8>

source§

fn from_be_bytes(bytes: &[u8]) -> Self

source§

fn to_be_bytes(self) -> Vec<u8>

source§

fn epsilon() -> Self

source§

fn next_random<R: Rng>(rng: &mut R) -> Self

source§

impl Number for usize

source§

fn zero() -> Self

source§

fn one() -> Self

source§

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

source§

fn mul_add_assign(&mut self, a: Self, b: Self)

source§

fn from<T: Number>(n: T) -> Self

source§

fn as_f32(self) -> f32

source§

fn as_f64(self) -> f64

source§

fn as_u64(self) -> u64

source§

fn as_i64(self) -> i64

source§

fn abs(self) -> Self

source§

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

source§

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

source§

fn num_bytes() -> usize

source§

fn from_le_bytes(bytes: &[u8]) -> Self

source§

fn to_le_bytes(self) -> Vec<u8>

source§

fn from_be_bytes(bytes: &[u8]) -> Self

source§

fn to_be_bytes(self) -> Vec<u8>

source§

fn epsilon() -> Self

source§

fn next_random<R: Rng>(rng: &mut R) -> Self

Implementors§