normalize

Function normalize 

Source
pub fn normalize<T: Norm<D, Output = R> + DivAssign<R>, R: Num, D>(
    v: &mut T,
    desc: D,
)
Expand description

Normalizes the vector v according to the norm desc, i.e. divides it by its norm.

As long as the implementations of Div and DivAssign on T match, v will be equal to normalized(v) after calling this function.

§Attention

Due to numerical errors, v is not guaranteed to have exactly norm 1 after calling this function.

On integer types this function will do complete nonsense since DivAssign is implemented as an integer division for integers.

§Example

use norman::normalize;
use norman::desc::Abs;

let mut a = 0.25f32;
normalize(&mut a, Abs::new());
assert_eq!(a, 1.0);
let mut a = -3.0f32;
normalize(&mut a, Abs::new());
assert_eq!(a, -1.0);