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§
Sourcetype RealField: RealField
type RealField: RealField
The result of the norm (not necessarily the same same as the field used by this vector space).
Sourcetype ComplexField: ComplexField<RealField = Self::RealField>
type ComplexField: ComplexField<RealField = Self::RealField>
The field of this space must be this complex number.
Required Methods§
Sourcefn norm_squared(&self) -> Self::RealField
fn norm_squared(&self) -> Self::RealField
The squared norm of this vector.
Sourcefn normalize_mut(&mut self) -> Self::RealField
fn normalize_mut(&mut self) -> Self::RealField
Normalizes this vector in-place and returns its norm.
Sourcefn try_normalize(&self, eps: Self::RealField) -> Option<Self>
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
.
Sourcefn try_normalize_mut(&mut self, eps: Self::RealField) -> Option<Self::RealField>
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.