## normalizeReturn normalized vector such that length = 1 and prevent zero-division for zero vector |

This information is part of the Modelica Standard Library maintained by the Modelica Association.

Vectors.normalize(v); Vectors.normalize(v,eps=100*Modelica.Constants.eps);

The function call "`Vectors.`

" returns the
**normalize**(v)**unit vector** "`v/length(v)`

" of vector v.
If length(v) is close to zero (more precisely, if length(v) < eps),
v/eps is returned in order to avoid
a division by zero. For many applications this is useful, because
often the unit vector **e** = **v**/length(**v**) is used to compute
a vector x***e**, where the scalar x is in the order of length(**v**),
i.e., x***e** is small, when length(**v**) is small and then
it is fine to replace **e** by **v** to avoid a division by zero.

Since the function has the "Inline" annotation, it is usually inlined and symbolic processing is applied.

normalize({1,2,3}); // = {0.267, 0.534, 0.802}normalize({0,0,0}); // = {0,0,0}

result = normalize(v, eps)

v |
Type: Real[:] Description: Real vector |
---|---|

eps |
Default Value: 100 * Modelica.Constants.eps Type: Real Description: if |v| < eps then result = v/eps |

result |
Type: Real[size(v, 1)] Description: Input vector v normalized to length=1 |
---|