# [−][src]Trait alga::linear::NormedSpace

```pub trait NormedSpace: VectorSpace<Field = Self::ComplexField> {
type RealField: RealField;
type ComplexField: ComplexField<RealField = Self::RealField>;
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>;
}```

A normed vector space.

## Associated Types

### `type RealField: RealField`

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

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

The field of this space must be this complex number.

## Required methods

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

The squared norm of this vector.

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

The norm of this vector.

### `fn normalize(&self) -> Self`

Returns a normalized version of this vector.

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

Normalizes this vector in-place and returns its norm.

### `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`.

### `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.