Trait array_math::ArrayMath

source ·
pub trait ArrayMath<T, const N: usize>: ArrayOps<T, N> {
Show 16 methods // Required methods fn sum(self) -> T where T: AddAssign + Zero; fn product(self) -> T where T: MulAssign + One; fn variance(self) -> <T as Mul>::Output where Self: ArrayOps<T, N> + Copy, u8: Into<T>, T: Div<Output: Mul<Output: Neg<Output = <T as Mul>::Output>> + Copy> + Mul<Output: AddAssign> + AddAssign + Zero; fn variance16(self) -> <T as Mul>::Output where Self: ArrayOps<T, N> + Copy, u16: Into<T>, T: Div<Output: Mul<Output: Neg<Output = <T as Mul>::Output>> + Copy> + Mul<Output: AddAssign> + AddAssign + Zero; fn variance32(self) -> <T as Mul>::Output where Self: ArrayOps<T, N> + Copy, u32: Into<T>, T: Div<Output: Mul<Output: Neg<Output = <T as Mul>::Output>> + Copy> + Mul<Output: AddAssign> + AddAssign + Zero; fn variance64(self) -> <T as Mul>::Output where Self: ArrayOps<T, N> + Copy, u64: Into<T>, T: Div<Output: Mul<Output: Neg<Output = <T as Mul>::Output>> + Copy> + Mul<Output: AddAssign> + AddAssign + Zero; fn avg(self) -> <T as Div>::Output where u8: Into<T>, T: Div + AddAssign + Zero; fn avg16(self) -> <T as Div>::Output where u16: Into<T>, T: Div + AddAssign + Zero; fn avg32(self) -> <T as Div>::Output where u32: Into<T>, T: Div + AddAssign + Zero; fn avg64(self) -> <T as Div>::Output where u64: Into<T>, T: Div + AddAssign + Zero; fn mul_dot<Rhs>(self, rhs: [Rhs; N]) -> <T as Mul<Rhs>>::Output where T: Mul<Rhs, Output: AddAssign + Zero>; fn magnitude_squared(self) -> <T as Mul<T>>::Output where T: Mul<T, Output: AddAssign + Zero> + Copy; fn magnitude(self) -> <T as Mul<T>>::Output where T: Mul<T, Output: AddAssign + Zero + Float> + Copy; fn magnitude_inv(self) -> <T as Mul<T>>::Output where T: Mul<T, Output: AddAssign + Zero + Float> + Copy; fn normalize(self) -> [<T as Mul<<T as Mul<T>>::Output>>::Output; N] where T: Mul<T, Output: AddAssign + Zero + Float + Copy> + Mul<<T as Mul<T>>::Output> + Copy; fn normalize_to<Rhs>( self, magnitude: Rhs ) -> [<T as Mul<<<T as Mul<T>>::Output as Mul<Rhs>>::Output>>::Output; N] where T: Mul<T, Output: AddAssign + Zero + Float + Mul<Rhs, Output: Copy>> + Mul<<<T as Mul<T>>::Output as Mul<Rhs>>::Output> + Copy;
}

Required Methods§

source

fn sum(self) -> T
where T: AddAssign + Zero,

source

fn product(self) -> T
where T: MulAssign + One,

source

fn variance(self) -> <T as Mul>::Output
where Self: ArrayOps<T, N> + Copy, u8: Into<T>, T: Div<Output: Mul<Output: Neg<Output = <T as Mul>::Output>> + Copy> + Mul<Output: AddAssign> + AddAssign + Zero,

source

fn variance16(self) -> <T as Mul>::Output
where Self: ArrayOps<T, N> + Copy, u16: Into<T>, T: Div<Output: Mul<Output: Neg<Output = <T as Mul>::Output>> + Copy> + Mul<Output: AddAssign> + AddAssign + Zero,

source

fn variance32(self) -> <T as Mul>::Output
where Self: ArrayOps<T, N> + Copy, u32: Into<T>, T: Div<Output: Mul<Output: Neg<Output = <T as Mul>::Output>> + Copy> + Mul<Output: AddAssign> + AddAssign + Zero,

source

fn variance64(self) -> <T as Mul>::Output
where Self: ArrayOps<T, N> + Copy, u64: Into<T>, T: Div<Output: Mul<Output: Neg<Output = <T as Mul>::Output>> + Copy> + Mul<Output: AddAssign> + AddAssign + Zero,

source

fn avg(self) -> <T as Div>::Output
where u8: Into<T>, T: Div + AddAssign + Zero,

source

fn avg16(self) -> <T as Div>::Output
where u16: Into<T>, T: Div + AddAssign + Zero,

source

fn avg32(self) -> <T as Div>::Output
where u32: Into<T>, T: Div + AddAssign + Zero,

source

fn avg64(self) -> <T as Div>::Output
where u64: Into<T>, T: Div + AddAssign + Zero,

source

fn mul_dot<Rhs>(self, rhs: [Rhs; N]) -> <T as Mul<Rhs>>::Output
where T: Mul<Rhs, Output: AddAssign + Zero>,

source

fn magnitude_squared(self) -> <T as Mul<T>>::Output
where T: Mul<T, Output: AddAssign + Zero> + Copy,

source

fn magnitude(self) -> <T as Mul<T>>::Output
where T: Mul<T, Output: AddAssign + Zero + Float> + Copy,

source

fn magnitude_inv(self) -> <T as Mul<T>>::Output
where T: Mul<T, Output: AddAssign + Zero + Float> + Copy,

source

fn normalize(self) -> [<T as Mul<<T as Mul<T>>::Output>>::Output; N]
where T: Mul<T, Output: AddAssign + Zero + Float + Copy> + Mul<<T as Mul<T>>::Output> + Copy,

source

fn normalize_to<Rhs>( self, magnitude: Rhs ) -> [<T as Mul<<<T as Mul<T>>::Output as Mul<Rhs>>::Output>>::Output; N]
where T: Mul<T, Output: AddAssign + Zero + Float + Mul<Rhs, Output: Copy>> + Mul<<<T as Mul<T>>::Output as Mul<Rhs>>::Output> + Copy,

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<T, const N: usize> ArrayMath<T, N> for [T; N]

source§

fn sum(self) -> T
where T: AddAssign + Zero,

source§

fn product(self) -> T
where T: MulAssign + One,

source§

fn variance(self) -> <T as Mul>::Output
where Self: ArrayOps<T, N> + Copy, u8: Into<T>, T: Div<Output: Mul<Output: Neg<Output = <T as Mul>::Output>> + Copy> + Mul<Output: AddAssign> + AddAssign + Zero,

source§

fn variance16(self) -> <T as Mul>::Output
where Self: ArrayOps<T, N> + Copy, u16: Into<T>, T: Div<Output: Mul<Output: Neg<Output = <T as Mul>::Output>> + Copy> + Mul<Output: AddAssign> + AddAssign + Zero,

source§

fn variance32(self) -> <T as Mul>::Output
where Self: ArrayOps<T, N> + Copy, u32: Into<T>, T: Div<Output: Mul<Output: Neg<Output = <T as Mul>::Output>> + Copy> + Mul<Output: AddAssign> + AddAssign + Zero,

source§

fn variance64(self) -> <T as Mul>::Output
where Self: ArrayOps<T, N> + Copy, u64: Into<T>, T: Div<Output: Mul<Output: Neg<Output = <T as Mul>::Output>> + Copy> + Mul<Output: AddAssign> + AddAssign + Zero,

source§

fn avg(self) -> <T as Div>::Output
where u8: Into<T>, T: Div + AddAssign + Zero,

source§

fn avg16(self) -> <T as Div>::Output
where u16: Into<T>, T: Div + AddAssign + Zero,

source§

fn avg32(self) -> <T as Div>::Output
where u32: Into<T>, T: Div + AddAssign + Zero,

source§

fn avg64(self) -> <T as Div>::Output
where u64: Into<T>, T: Div + AddAssign + Zero,

source§

fn mul_dot<Rhs>(self, rhs: [Rhs; N]) -> <T as Mul<Rhs>>::Output
where T: Mul<Rhs, Output: AddAssign + Zero>,

source§

fn magnitude_squared(self) -> <T as Mul<T>>::Output
where T: Mul<T, Output: AddAssign + Zero> + Copy,

source§

fn magnitude(self) -> <T as Mul<T>>::Output
where T: Mul<T, Output: AddAssign + Zero + Float> + Copy,

source§

fn magnitude_inv(self) -> <T as Mul<T>>::Output
where T: Mul<T, Output: AddAssign + Zero + Float> + Copy,

source§

fn normalize(self) -> [<T as Mul<<T as Mul<T>>::Output>>::Output; N]
where T: Mul<T, Output: AddAssign + Zero + Float + Copy> + Mul<<T as Mul<T>>::Output> + Copy,

source§

fn normalize_to<Rhs>( self, magnitude: Rhs ) -> [<T as Mul<<<T as Mul<T>>::Output as Mul<Rhs>>::Output>>::Output; N]
where T: Mul<T, Output: AddAssign + Zero + Float + Mul<Rhs, Output: Copy>> + Mul<<<T as Mul<T>>::Output as Mul<Rhs>>::Output> + Copy,

Implementors§