q / |q| (the identity for a zero quaternion).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in) | :: | q(4) |
quaternion [x, y, z, w] (any length) |
pure function quat_normalize(q) result(u) real(wp), intent(in) :: q(4) !! quaternion [x, y, z, w] (any length) real(wp) :: u(4) real(wp) :: n n = norm2(q) if (n == 0.0_wp) then u = quat_identity else u = q / n end if end function quat_normalize