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

    <refmeta>                                    
        <refentrytitle>sub_sat</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="sub_sat">             
        <refname>sub_sat</refname>

        <refpurpose>
            Returns <varname>x</varname> - <varname>y</varname> and saturates the result.
        </refpurpose>
    </refnamediv>

	<refsynopsisdiv xmlns:xlink="http://www.w3.org/1999/xlink"><title></title>
        <funcsynopsis>
            <funcprototype>
                <funcdef>
                    gentype
                    <function>                   
                        sub_sat
                    </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>sub_sat</function> returns <varname>x</varname> - <varname>y</varname> and saturates the result.
		</para>	
    </refsect1>

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

    <refsect1 id="notes"><title>Notes</title>
        <para>
			Built-in integer functions can be used to take scalar or vector arguments. We use
the generic type name <type>gentype</type> to indicate that the function can take <type>char</type>, <type>char{2|4|8|16}</type>, <type>uchar</type>, <type>uchar{2|4|8|16}</type>, <type>short</type>, <type>short{2|4|8|16}</type>, <type>ushort</type>, <type>ushort{2|4|8|16}</type>, <type>int</type>, <type>int{2|4|8|16}</type>, <type>uint</type>,
<type>uint{2|4|8|16}</type>, <type>long</type>, <type>long{2|4|8|16}</type>, <type>ulong</type>, or <type>ulong{2|4|8|16}</type> as
the type for the arguments. We use the generic type name <type>ugentype</type> to refer to unsigned
versions of <type>gentype</type>. For example, if <type>gentype</type> is <type>char4</type>, <type>ugentype</type> is <type>uchar4</type>.</para>
 <para>For any specific use of a function, the actual type has to be the same for all arguments and the return type unless otherwise specified.
        </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="integerFunctions">OpenCL Specification</olink>
        </para>
    </refsect1>


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

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

