<?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>atom_min</keyword>
        </keywordset>
    </refentryinfo>

    <refmeta>                                    
        <refentrytitle>atom_min</refentrytitle>

        <refmiscinfo>
            <copyright>
                <year>2007-2011</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="atom_min">             
        <refname>atom_min</refname>

        <refpurpose>
            64-bit atom_min functions. 
        </refpurpose>
    </refnamediv>

    <refsynopsisdiv xmlns:xlink="http://www.w3.org/1999/xlink"><title></title>
        <funcsynopsis>
            <funcprototype>
                <funcdef>
                    <link xlink:href="scalarDataTypes.html">long</link>
                    <function>                   
                        atom_min
                    </function>
                </funcdef>
                <paramdef>
                    volatile <citerefentry href="global"><refentrytitle>__global</refentrytitle></citerefentry> 
                    <link xlink:href="scalarDataTypes.html">long</link><parameter>*p</parameter>
                </paramdef>    
                <paramdef><link xlink:href="scalarDataTypes.html">long</link><parameter>val</parameter></paramdef>   
            </funcprototype>
        </funcsynopsis>     
        
        <funcsynopsis>
            <funcprototype>
                <funcdef>
                    <link xlink:href="scalarDataTypes.html">long</link>
                    <function>                   
                        atom_min
                    </function>
                </funcdef>
                <paramdef>
                    volatile <citerefentry href="global"><refentrytitle>__local</refentrytitle></citerefentry> 
                    <link xlink:href="scalarDataTypes.html">long</link><parameter>*p</parameter>
                </paramdef>   
                <paramdef><link xlink:href="scalarDataTypes.html">long</link><parameter>val</parameter></paramdef>  
            </funcprototype>
        </funcsynopsis>     

        <funcsynopsis>
            <funcprototype>
                <funcdef>
                    <link xlink:href="scalarDataTypes.html">ulong</link>
                    <function>                   
                        atom_min
                    </function>
                </funcdef>
                <paramdef>
                    volatile <citerefentry href="local"><refentrytitle>__global</refentrytitle></citerefentry> 
                    <link xlink:href="scalarDataTypes.html">ulong</link><parameter>*p</parameter>
                </paramdef>  
                <paramdef><link xlink:href="scalarDataTypes.html">ulong</link><parameter>val</parameter></paramdef>   
            </funcprototype>
        </funcsynopsis>     
        
        <funcsynopsis>
            <funcprototype>
                <funcdef>
                    <link xlink:href="scalarDataTypes.html">ulong</link>
                    <function>                   
                        atom_min
                    </function>
                </funcdef>
                <paramdef>
                    volatile <citerefentry href="local"><refentrytitle>__local</refentrytitle></citerefentry>
                    <link xlink:href="scalarDataTypes.html">ulong</link><parameter>*p</parameter>
                </paramdef> 
                <paramdef><link xlink:href="scalarDataTypes.html">ulong</link><parameter>val</parameter></paramdef>  
            </funcprototype>
        </funcsynopsis>     
    </refsynopsisdiv>

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

    <refsect1 id="description"><title>Description</title>
        <para>
            Read the 64-bit value (referred to as <varname>old</varname>) stored at location pointed by 
            <varname>p</varname>. Compute <citerefentry href="commonMin"><refentrytitle>min</refentrytitle></citerefentry>
            (<varname>old</varname>, <varname>val</varname>) and store minimum value at location pointed by 
            <varname>p</varname>. The function returns <varname>old</varname>.
        </para>

        <para>
            An application that wants to use this extension will need to include the <code>#pragma 
            OPENCL EXTENSION cl_khr_int64_extended_atomics : enable</code> in the OpenCL program source.
        </para>

        <para>
            This function is performed in one atomic transaction. These transactions are atomic for the device 
            executing these atomic functions. There is no guarantee of atomicity if the atomic operations to 
            the same memory location are being performed by kernels executing on multiple devices.
        </para>

        <para>
            Atomic operations on 64-bit integers and 32-bit integers (and float) are also atomic with regard to each other.
        </para>

    </refsect1>

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

    <refsect1 id="notes"><title>Notes</title>
         
    </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="atomicFunctions">OpenCL Specification</olink>
        </para>
    </refsect1>


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

    <refsect1 id="seealso"><title>Also see</title>
        <para>
            <citerefentry href="atomicFunctions"><refentrytitle>Atomic Functions</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>atomic_min</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>cl_khr_int64_extended_atomics</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>
<!-- 11-Oct-11 -->
</refentry>

