Trait nalgebra::Norm
[−]
[src]
pub trait Norm: Sized { type NormType: BaseFloat; fn norm_squared(&self) -> Self::NormType; fn normalize(&self) -> Self; fn normalize_mut(&mut self) -> Self::NormType; fn try_normalize(&self, min_norm: Self::NormType) -> Option<Self>; fn try_normalize_mut(&mut self, min_norm: Self::NormType) -> Option<Self::NormType>; fn norm(&self) -> Self::NormType { ... } }
Traits of objects having an euclidian norm.
Associated Types
Required Methods
fn norm_squared(&self) -> Self::NormType
Computes the squared norm of self
.
This is usually faster than computing the norm itself.
fn normalize(&self) -> Self
Gets the normalized version of a copy of v
.
Might return an invalid result if the vector is zero or close to zero.
fn normalize_mut(&mut self) -> Self::NormType
Normalizes self
.
The result might be invalid if the vector is zero or close to zero.
fn try_normalize(&self, min_norm: Self::NormType) -> Option<Self>
Gets the normalized version of a copy of v
or None
if the vector has a norm smaller
or equal to min_norm
. In particular, .try_normalize(0.0)
returns None
if the norm is
exactly zero.
fn try_normalize_mut(&mut self, min_norm: Self::NormType) -> Option<Self::NormType>
Normalized v
or does nothing if the vector has a norm smaller
or equal to min_norm
.
Returns the old norm or None
if the normalization failed.
Provided Methods
fn norm(&self) -> Self::NormType
Computes the norm of self
.
Implementors
impl<N: BaseFloat> Norm for DVector<N>
impl<N: BaseFloat> Norm for DVector1<N>
impl<N: BaseFloat> Norm for DVector2<N>
impl<N: BaseFloat> Norm for DVector3<N>
impl<N: BaseFloat> Norm for DVector4<N>
impl<N: BaseFloat> Norm for DVector5<N>
impl<N: BaseFloat> Norm for DVector6<N>
impl<N: BaseFloat> Norm for Vector1<N>
impl<N: BaseFloat> Norm for Vector2<N>
impl<N: BaseFloat> Norm for Vector3<N>
impl<N: BaseFloat> Norm for Vector4<N>
impl<N: BaseFloat> Norm for Vector5<N>
impl<N: BaseFloat> Norm for Vector6<N>
impl<N: BaseFloat> Norm for Quaternion<N>