alga::linear

Trait NormedSpace

Source
pub trait NormedSpace: VectorSpace<Field = Self::ComplexField> {
    type RealField: RealField;
    type ComplexField: ComplexField<RealField = Self::RealField>;

    // Required methods
    fn norm_squared(&self) -> Self::RealField;
    fn norm(&self) -> Self::RealField;
    fn normalize(&self) -> Self;
    fn normalize_mut(&mut self) -> Self::RealField;
    fn try_normalize(&self, eps: Self::RealField) -> Option<Self>;
    fn try_normalize_mut(
        &mut self,
        eps: Self::RealField,
    ) -> Option<Self::RealField>;
}
Expand description

A normed vector space.

Required Associated Types§

Source

type RealField: RealField

The result of the norm (not necessarily the same same as the field used by this vector space).

Source

type ComplexField: ComplexField<RealField = Self::RealField>

The field of this space must be this complex number.

Required Methods§

Source

fn norm_squared(&self) -> Self::RealField

The squared norm of this vector.

Source

fn norm(&self) -> Self::RealField

The norm of this vector.

Source

fn normalize(&self) -> Self

Returns a normalized version of this vector.

Source

fn normalize_mut(&mut self) -> Self::RealField

Normalizes this vector in-place and returns its norm.

Source

fn try_normalize(&self, eps: Self::RealField) -> Option<Self>

Returns a normalized version of this vector unless its norm as smaller or equal to eps.

Source

fn try_normalize_mut(&mut self, eps: Self::RealField) -> Option<Self::RealField>

Normalizes this vector in-place or does nothing if its norm is smaller or equal to eps.

If the normalization succeeded, returns the old normal of this vector.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl NormedSpace for f32

Source§

type RealField = f32

Source§

type ComplexField = f32

Source§

fn norm_squared(&self) -> Self::RealField

Source§

fn norm(&self) -> Self::RealField

Source§

fn normalize(&self) -> Self

Source§

fn normalize_mut(&mut self) -> Self::RealField

Source§

fn try_normalize(&self, eps: Self::RealField) -> Option<Self>

Source§

fn try_normalize_mut(&mut self, eps: Self::RealField) -> Option<Self::RealField>

Source§

impl NormedSpace for f64

Source§

type RealField = f64

Source§

type ComplexField = f64

Source§

fn norm_squared(&self) -> Self::RealField

Source§

fn norm(&self) -> Self::RealField

Source§

fn normalize(&self) -> Self

Source§

fn normalize_mut(&mut self) -> Self::RealField

Source§

fn try_normalize(&self, eps: Self::RealField) -> Option<Self>

Source§

fn try_normalize_mut(&mut self, eps: Self::RealField) -> Option<Self::RealField>

Source§

impl<N: RealField> NormedSpace for Complex<N>

Source§

type RealField = N

Source§

type ComplexField = N

Source§

fn norm_squared(&self) -> Self::RealField

Source§

fn norm(&self) -> Self::RealField

Source§

fn normalize(&self) -> Self

Source§

fn normalize_mut(&mut self) -> Self::RealField

Source§

fn try_normalize(&self, eps: Self::RealField) -> Option<Self>

Source§

fn try_normalize_mut(&mut self, eps: Self::RealField) -> Option<Self::RealField>

Implementors§