logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

fast_normalize - Normal vector length 1.

Authors

TheKhronosGroup

Description

       Returns a vector in the same direction as p but with a length of 1.  fast_normalize is computed as:

           p * sqrt(3clc)(p.x2 + p.y2 +...)

       The result shall be within 8192 ulps error from the infinitely precise result of:

           if ( any(3clc)(p == 0.0f))
           result=p;
           else
           result=p /  sqrt(3clc)(p.x2 + p.y2 +...);

       with the following exceptions:

        1. If the sum of squares is greater than FLT_MAX then the value of the floating-point values in the
           result vector are undefined.

        2. If the sum of squares is less than FLT_MIN then the implementation may return back p.

        3. If the device is in 'denorms are flushed to zero' mode, individual operand elements with magnitude
           less than sqrt(3clc)(FLT_MIN) may be flushed to zero before proceeding with the calculation.

Name

       fast_normalize - Normal vector length 1.

       floatnfast_normalize(floatnp);

Notes

        1. OpenCL Specification
           page 262, section 6.12.5 - Geometric Functions

The Khronos Group                                  11/18/2024                               FAST_NORMALIZE(3clc)

See Also

geometricFunctions(3clc)

Specification

OpenCLSpecification[1]

See Also