[][src]Trait norman::Norm

pub trait Norm<D> {
    type Output: Num;
    fn norm(&self, desc: D) -> Self::Output;
}

The Norm trait is the core of the norman crate.

It provides a norm function which calculates a specific norm of the vector.

The type D is the norm descriptor, which specifies the exact kind of norm; e.g. a supremum norm or a euclidean norm. See the desc module for several different norm descriptors.

Associated Types

type Output: Num

The resulting type of the norm function.

Mathematically, a norm is a mapping from a vector space V into the non-negative real numbers, so Output will usually be a floating point type or in some cases an unsigned integer type.

Loading content...

Required methods

fn norm(&self, desc: D) -> Self::Output

Calculates the norm of self, specified by the descriptor desc.

Panics

An implementation of norm should never panic.

An exception may be made for types like the noisy_float floating point types that already have a special panicking behaviour to ensure that no invalid values occur.

Example

use num_complex::Complex;

use norman::Norm;
use norman::desc::Abs;

assert_eq!(Norm::norm(&Complex::new(3.0, 4.0), Abs::new()), 5.0);
Loading content...

Implementations on Foreign Types

impl Norm<Abs> for f32[src]

type Output = Self

impl Norm<Abs> for f64[src]

type Output = Self

impl Norm<Abs> for i8[src]

type Output = u8

impl Norm<Abs> for i16[src]

type Output = u16

impl Norm<Abs> for i32[src]

type Output = u32

impl Norm<Abs> for i64[src]

type Output = u64

impl Norm<Abs> for isize[src]

type Output = usize

impl Norm<Abs> for u8[src]

type Output = Self

impl Norm<Abs> for u16[src]

type Output = Self

impl Norm<Abs> for u32[src]

type Output = Self

impl Norm<Abs> for u64[src]

type Output = Self

impl Norm<Abs> for usize[src]

type Output = Self

impl Norm<Abs> for i128[src]

type Output = u128

impl Norm<Abs> for u128[src]

type Output = Self

impl<T: Norm<Abs, Output = R>, R: Num + PartialOrd> Norm<Sup> for [T; 0][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNorm> for [T; 0][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNormReal> for [T; 0][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Num + PartialOrd> Norm<Sup> for [T; 1][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNorm> for [T; 1][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNormReal> for [T; 1][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Num + PartialOrd> Norm<Sup> for [T; 2][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNorm> for [T; 2][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNormReal> for [T; 2][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Num + PartialOrd> Norm<Sup> for [T; 3][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNorm> for [T; 3][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNormReal> for [T; 3][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Num + PartialOrd> Norm<Sup> for [T; 4][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNorm> for [T; 4][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNormReal> for [T; 4][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Num + PartialOrd> Norm<Sup> for [T; 5][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNorm> for [T; 5][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNormReal> for [T; 5][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Num + PartialOrd> Norm<Sup> for [T; 6][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNorm> for [T; 6][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNormReal> for [T; 6][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Num + PartialOrd> Norm<Sup> for [T; 7][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNorm> for [T; 7][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNormReal> for [T; 7][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Num + PartialOrd> Norm<Sup> for [T; 8][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNorm> for [T; 8][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNormReal> for [T; 8][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Num + PartialOrd> Norm<Sup> for [T; 9][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNorm> for [T; 9][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNormReal> for [T; 9][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Num + PartialOrd> Norm<Sup> for [T; 10][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNorm> for [T; 10][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNormReal> for [T; 10][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Num + PartialOrd> Norm<Sup> for [T; 11][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNorm> for [T; 11][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNormReal> for [T; 11][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Num + PartialOrd> Norm<Sup> for [T; 12][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNorm> for [T; 12][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNormReal> for [T; 12][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Num + PartialOrd> Norm<Sup> for [T; 13][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNorm> for [T; 13][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNormReal> for [T; 13][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Num + PartialOrd> Norm<Sup> for [T; 14][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNorm> for [T; 14][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNormReal> for [T; 14][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Num + PartialOrd> Norm<Sup> for [T; 15][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNorm> for [T; 15][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNormReal> for [T; 15][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Num + PartialOrd> Norm<Sup> for [T; 16][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNorm> for [T; 16][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNormReal> for [T; 16][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Num + PartialOrd> Norm<Sup> for [T; 17][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNorm> for [T; 17][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNormReal> for [T; 17][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Num + PartialOrd> Norm<Sup> for [T; 18][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNorm> for [T; 18][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNormReal> for [T; 18][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Num + PartialOrd> Norm<Sup> for [T; 19][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNorm> for [T; 19][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNormReal> for [T; 19][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Num + PartialOrd> Norm<Sup> for [T; 20][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNorm> for [T; 20][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNormReal> for [T; 20][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Num + PartialOrd> Norm<Sup> for [T; 21][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNorm> for [T; 21][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNormReal> for [T; 21][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Num + PartialOrd> Norm<Sup> for [T; 22][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNorm> for [T; 22][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNormReal> for [T; 22][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Num + PartialOrd> Norm<Sup> for [T; 23][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNorm> for [T; 23][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNormReal> for [T; 23][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Num + PartialOrd> Norm<Sup> for [T; 24][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNorm> for [T; 24][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNormReal> for [T; 24][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Num + PartialOrd> Norm<Sup> for [T; 25][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNorm> for [T; 25][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNormReal> for [T; 25][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Num + PartialOrd> Norm<Sup> for [T; 26][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNorm> for [T; 26][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNormReal> for [T; 26][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Num + PartialOrd> Norm<Sup> for [T; 27][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNorm> for [T; 27][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNormReal> for [T; 27][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Num + PartialOrd> Norm<Sup> for [T; 28][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNorm> for [T; 28][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNormReal> for [T; 28][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Num + PartialOrd> Norm<Sup> for [T; 29][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNorm> for [T; 29][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNormReal> for [T; 29][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Num + PartialOrd> Norm<Sup> for [T; 30][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNorm> for [T; 30][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNormReal> for [T; 30][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Num + PartialOrd> Norm<Sup> for [T; 31][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNorm> for [T; 31][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNormReal> for [T; 31][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Num + PartialOrd> Norm<Sup> for [T; 32][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNorm> for [T; 32][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNormReal> for [T; 32][src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Num + PartialOrd> Norm<Sup> for Vec<T>[src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNorm> for Vec<T>[src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNormReal> for Vec<T>[src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Num + PartialOrd> Norm<Sup> for VecDeque<T>[src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNorm> for VecDeque<T>[src]

type Output = <T as Norm<Abs>>::Output

impl<T: Norm<Abs, Output = R>, R: Float + From<f32>> Norm<PNormReal> for VecDeque<T>[src]

type Output = <T as Norm<Abs>>::Output

impl<T: Float> Norm<Abs> for Complex<T>[src]

type Output = T

fn norm(&self, _desc: Abs) -> T[src]

Calculates the usual euclidean norm of the complex number.

impl<T: Float> Norm<Sup> for Complex<T>[src]

type Output = T

fn norm(&self, _desc: Sup) -> T[src]

Calculates the supremum norm of the complex number, i.e. the maximum of the absolute values of real and imaginary part.

impl<S, D, T, R> Norm<Sup> for ArrayBase<S, D> where
    S: Data<Elem = T>,
    D: Dimension,
    T: Norm<Abs, Output = R>,
    R: Num + PartialOrd
[src]

type Output = <T as Norm<Abs>>::Output

impl<S, D, T, R> Norm<PNorm> for ArrayBase<S, D> where
    S: Data<Elem = T>,
    D: Dimension,
    T: Norm<Abs, Output = R>,
    R: Float + From<f32>, 
[src]

type Output = <T as Norm<Abs>>::Output

impl<S, D, T, R> Norm<PNormReal> for ArrayBase<S, D> where
    S: Data<Elem = T>,
    D: Dimension,
    T: Norm<Abs, Output = R>,
    R: Float + From<f32>, 
[src]

type Output = <T as Norm<Abs>>::Output

impl<F: Float, C: FloatChecker<F>> Norm<Abs> for NoisyFloat<F, C>[src]

type Output = Self

Loading content...

Implementors

Loading content...