<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
              "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
<refentry>
    <refentryinfo>
        <keywordset>
            <keyword>                            
                fast_normalize
            </keyword>
        </keywordset>
    </refentryinfo>

    <refmeta>                                    
        <refentrytitle>fast_normalize</refentrytitle>

        <refmiscinfo>
            <copyright>
                <year>2007-2009</year>
                <holder>The Khronos Group Inc. 
 Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and/or associated documentation files (the
"Materials"), to deal in the Materials without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Materials, and to
permit persons to whom the Materials are furnished to do so, subject to
the condition that this copyright notice and permission notice shall be included
in all copies or substantial portions of the Materials.</holder>
            </copyright>
        </refmiscinfo>
        <manvolnum>2</manvolnum>
    </refmeta>

<!-- ================================ SYNOPSIS -->

    <refnamediv id="fast_normalize">             
        <refname>fast_normalize</refname>

        <refpurpose>
            Normal vector length 1.
        </refpurpose>
    </refnamediv>

	<refsynopsisdiv xmlns:xlink="http://www.w3.org/1999/xlink"><title></title>
        <funcsynopsis>
            <funcprototype>
                <funcdef>
                    gentype
                    <function>                   
                        fast_normalize
                    </function>
                </funcdef>
				<paramdef>gentype<parameter>p</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>   
 
	</refsynopsisdiv>	
	
	

<!-- ================================ DESCRIPTION  -->

    <refsect1 id="description"><title>Description</title>
        <para>
		Returns a vector in the same direction as <varname>p</varname> but with a length of 1. <function>fast_normalize</function> is computed as:
<literallayout>          <varname>p</varname> * 
<citerefentry href="sqrt"><refentrytitle>half_sqrt</refentrytitle></citerefentry>(<varname>p.x</varname><superscript>2</superscript> + <varname>p.y</varname><superscript>2</superscript> +...)</literallayout>
		</para>
		<para>
		The result shall be within 8192 ulps error from the infinitely precise result of
<literallayout>          if ( <citerefentry href="any"><refentrytitle>all</refentrytitle></citerefentry>(<varname>p</varname> == 0.0f))
                    <varname>result = p</varname>;
          else
                    <varname>result = p</varname> /  <citerefentry><refentrytitle>sqrt</refentrytitle></citerefentry>(<varname>p.x</varname><superscript>2</superscript> + <varname>p.y</varname><superscript>2</superscript> +...);</literallayout>
		</para>
 		<para>
	with the following exceptions:
		</para>
		<orderedlist>
			<listitem>If the sum of squares is greater than FLT_MAX then the value of the floating-point values in the result vector are undefined.</listitem>
			<listitem>If the sum of squares is less than FLT_MIN then the implementation may return back <varname>p</varname>.</listitem>
			<listitem>If the device is in 'denorms are flushed to zero' mode, individual operand elements with magnitude less than <citerefentry><refentrytitle>sqrt</refentrytitle></citerefentry>(FLT_MIN) may be flushed to zero before proceeding with the calculation.</listitem>
		</orderedlist>
    </refsect1>

<!-- ================================ NOTES  -->

    <refsect1 id="notes"><title>Notes</title>
        <para>Built-in geometric functions operate component-wise and the description is per-component. The generic type name <type>gentype</type> indicates that the
function can take <type>float</type>, <type>float2</type>, or <type>float4</type> as the type for the arguments.</para>
        <para>The built-in geometric functions are implemented using the round to nearest even rounding mode.
        </para>
		<para>The geometric functions can be implemented using contractions such as <citerefentry><refentrytitle>mad</refentrytitle></citerefentry> or <citerefentry><refentrytitle>fma</refentrytitle></citerefentry>.</para>
    </refsect1>
	
<!-- ================================ EXAMPLE  -->
<!-- DO NOT DELETE IN CASE AN EXAMPLE IS ADDED IN THE FUTURE -->
<!--
    <refsect2 id="example1">
        <title>
            Example
        </title>

        <informaltable frame="none">
            <tgroup cols="1" align="left" colsep="0" rowsep="0">
                <colspec colname="col1" colnum="1" />
                <tbody>
                    <row>
                        <entry>
                            Example goes here - it will be set in "code" type with white space preserved.
                        </entry>
                    </row>
                </tbody>
            </tgroup>
        </informaltable>
    </refsect2>
-->


<!-- ================================ SPECIFICATION  -->
<!-- Set the "uri" attribute in the <olink /> element to the "named destination" for the PDF page
-->
    <refsect1 id="specification"><title>Specification</title>
        <para>
            <imageobject>
                <imagedata fileref="pdficon_small1.gif" format="gif" />
            </imageobject>
                                                 
            <olink uri="geometricFunctions">OpenCL Specification</olink>
        </para>
    </refsect1>


<!-- ================================ ALSO SEE  -->

    <refsect1 id="seealso"><title>Also see</title>
        <para>
            <citerefentry href="geometricFunctions"><refentrytitle>Geometric Functions</refentrytitle></citerefentry> 
        </para>
    </refsect1>



<!-- ============================== COPYRIGHT -->
<!-- Content included from copyright.inc.xsl -->

    <refsect3 id="Copyright"><title></title>
		<imageobject>
                <imagedata fileref="KhronosLogo.jpg" format="jpg" />
        </imageobject>
		<para />
    </refsect3>

</refentry>

