normalizeReturn normalized vector such that length = 1 and prevent zero division for zero vector |
Vectors.normalize(v);
Vectors.normalize(v,eps=100*Modelica.Constants.eps);
The function call "Vectors.normalize(v)
" returns the 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}
v |
Type: Real[:] Description: Vector |
---|---|
eps |
Default Value: 10 * 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 |
---|