<?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" [
<!ENTITY mathFunctionsInc SYSTEM "mathFunctionsInc.xml">
]>
<refentry>
    <refentryinfo>
        <keywordset>
            <keyword>pow, pown, powr, half_powr, native_powr</keyword>
        </keywordset>
    </refentryinfo>

    <refmeta>                                    
        <refentrytitle>pow, pown, powr, half_powr, native_powr</refentrytitle>

        <refmiscinfo>
            <copyright>
                <year>2007-2010</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>3</manvolnum>
    </refmeta>

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

    <refnamediv id="pow">             
        <refname>pow, pown, powr, half_powr, native_powr</refname>

        <refpurpose>
            Compute <varname>x</varname> to the power of <varname>y</varname>.
        </refpurpose>
    </refnamediv>

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

        <funcsynopsis>
            <funcprototype>
                <funcdef>
                    gentype
                    <function>                   
                        pown
                    </function>
                </funcdef>
                <paramdef>gentype<parameter>x</parameter></paramdef>    
                <paramdef><link xlink:href="vectorDataTypes.html">int<varname>n</varname></link><parameter>y</parameter></paramdef> 
            </funcprototype>
        </funcsynopsis>     

        <funcsynopsis>
            <funcprototype>
                <funcdef>
                    gentype
                    <function>                   
                        powr
                    </function>
                </funcdef>
                <paramdef>gentype<parameter>x</parameter></paramdef>    
                <paramdef>gentype<parameter>y</parameter></paramdef>    
            </funcprototype>
        </funcsynopsis>     

        <funcsynopsis>
            <funcprototype>
                <funcdef>
                    gentype
                    <function>                   
                        half_powr
                    </function>
                </funcdef>
                <paramdef>gentype<parameter>x</parameter></paramdef>    
                <paramdef>gentype<parameter>y</parameter></paramdef>    
            </funcprototype>
        </funcsynopsis>     

        <funcsynopsis>
            <funcprototype>
                <funcdef>
                    gentype
                    <function>                   
                        native_powr
                    </function>
                </funcdef>
                <paramdef>gentype<parameter>x</parameter></paramdef>    
                <paramdef>gentype<parameter>y</parameter></paramdef>    
            </funcprototype>
        </funcsynopsis>     
    </refsynopsisdiv>
        
    
<!-- ================================ DESCRIPTION  -->

    <refsect1 id="description"><title>Description</title>
        <para>
            <function>pow</function> Computes <varname>x</varname> to the power of <varname>y</varname>.
        </para>
        <para>
            <function>pown</function> Computes <varname>x</varname> to the power of <varname>y</varname>, where <varname>y</varname> is an integer.
        </para>
        <para>
            <function>powr</function> Computes <varname>x</varname> to the power of <varname>y</varname>, where <varname>x</varname> is greater than or equal to 0.
        </para>
        <para>
            <function>half_powr</function> Computes <varname>x</varname> to the power of <varname>y</varname>, where <varname>x</varname> is greater than or equal to 0.
        </para>
        <para>
            <function>native_powr</function> Computes <varname>x</varname> to the power of <varname>y</varname>, where <varname>x</varname> is greater than or equal to 0. The range of <varname>x</varname> and <varname>y</varname> are implementation-defined. The maximum error is implementation-defined.
        </para>
        
    </refsect1>

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

    <refsect1 id="notes"><title>Notes</title>
    &mathFunctionsInc;
        <para>Functions with the <constant>half_</constant> prefix are implemented with a minimum of 10-bits of accuracy i.e. an ULP value less than or equal to 8192 ulp.
        </para>
        <para>Functions with the <constant>native__</constant> prefix may map to one or more native device instructions and will typically have better performance compared to the corresponding functions (without the <constant>native__</constant> prefix). The accuracy (and in some cases the input range(s)) of these
functions is implementation-defined.
        </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="mathFunctions">OpenCL Specification</olink>
        </para>
    </refsect1>


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

    <refsect1 id="seealso"><title>Also see</title>
        <para>
            <citerefentry href="mathFunctions"><refentrytitle>Math 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>

