Skip to content

Normal of zero vectors

Kenneth Moreland requested to merge kmorel/vtk-m:normalize-zero into master

The normal of a vector is the vector divided by the vector's magnitude. However, if the vector is the 0 vector, you get 0/0, which results in non-finite numbers.

There might be legitimate situations where you (unintentionally) try to normalize a 0 vector. For example, you might be using the derivative of a field to compute the normal to a contour of the field. If the field is in a static region or critical point, then the gradient goes to 0.

In these cases, we want the Normal and Normalize functions to return something reasonable. These functions now return the 0 vector back. This is no more "correct" than producing NaN values, but it is less likely to cause problems later.

Merge request reports