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

    <refmeta>
        <refentrytitle>get_global_linear_id</refentrytitle>

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

        <refpurpose>
            Returns the work-items 1-dimensional global ID. 
        </refpurpose>
    </refnamediv>

    <refsynopsisdiv xmlns:xlink="http://www.w3.org/1999/xlink"><title></title>
        <funcsynopsis>
            <funcprototype>
                <funcdef>
                    <link xlink:href="scalarDataTypes.html">size_t</link>
                    <function>
                        get_global_linear_id
                    </function>
                </funcdef>
                <paramdef><link xlink:href="scalarDataTypes.html">uint</link></paramdef>
            </funcprototype>
        </funcsynopsis>
    </refsynopsisdiv>

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

    <refsect1 id="description"><title>Description</title>
        <para>
            Returns the work-items 1-dimensional global ID. 
            For 1D work-groups, it is computed as
            <citerefentry><refentrytitle>get_global_id</refentrytitle></citerefentry>(0) – 
            <citerefentry><refentrytitle>get_global_offset</refentrytitle></citerefentry>(0).
        </para>

        <para>
            For 2D work-groups, it is computed as 
            (<citerefentry><refentrytitle>get_global_id</refentrytitle></citerefentry>(1) -
            <citerefentry><refentrytitle>get_global_offset</refentrytitle></citerefentry>(1)) *
            <citerefentry><refentrytitle>get_global_size</refentrytitle></citerefentry>(0) + 
            (<citerefentry><refentrytitle>get_global_id</refentrytitle></citerefentry>(0) -
            <citerefentry><refentrytitle>get_global_offset</refentrytitle></citerefentry>(0)).
        </para>

        <para>
            For 3D work-groups, it is computed as 
            ((<citerefentry><refentrytitle>get_global_id</refentrytitle></citerefentry>(2) – 
            <citerefentry><refentrytitle>get_global_offset</refentrytitle></citerefentry>(2)) * 
            <citerefentry><refentrytitle>get_global_size</refentrytitle></citerefentry>(1) * 
            <citerefentry><refentrytitle>get_global_size</refentrytitle></citerefentry>(0)) + 
            ((<citerefentry><refentrytitle>get_global_id</refentrytitle></citerefentry>(1) – 
            <citerefentry><refentrytitle>get_global_offset</refentrytitle></citerefentry>(1)) * 
            <citerefentry><refentrytitle>get_global_size</refentrytitle></citerefentry>(0)) + 
            (<citerefentry><refentrytitle>get_global_id</refentrytitle></citerefentry>(0) – 
            <citerefentry><refentrytitle>get_global_offset</refentrytitle></citerefentry>(0)).
        </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="workItemFunctions">OpenCL Specification</olink>
        </para>
    </refsect1>

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

    <refsect1 id="seealso"><title>Also see</title>
        <para>
            <citerefentry href="workItemFunctions"><refentrytitle>Work-Item Functions</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>get_global_id</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>get_global_size</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>

<!-- 12-Dec-2013, rev. 19 -->
</refentry>

