## table of contents

FAST_NORMALIZE(3clc) | OpenCL Manual | FAST_NORMALIZE(3clc) |

# NAME¶

fast_normalize - Normal vector length 1.# ¶

**floatn fast_normalize(floatn**

*p*

**);**

# 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 +...)

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

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.# NOTES¶

Built-in geometric functions operate component-wise. The description is per-component.**float**

*n*is

**float**,

**float2**,

**float3**, or

**float4**and

**double**

*n*is

**double**,

**double2**,

**double3**, or

**double4**. The built-in geometric functions are implemented using the round to nearest even rounding mode. The geometric functions can be implemented using contractions such as

**mad**(3clc) or

**fma**(3clc).

# SPECIFICATION¶

**OpenCL Specification**[1]

# SEE ALSO¶

**geometricFunctions**(3clc)

# AUTHORS¶

**The Khronos Group**

# COPYRIGHT¶

Copyright © 2007-2011 The Khronos Group Inc.# NOTES¶

- 1.
- OpenCL Specification

page 262, section 6.12.5 - Geometric Functions

06/18/2014 | The Khronos Group |