<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
<!-- saved from url=(0013)about:internet -->
<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" xmlns:xlink="http://www.w3.org/1999/xlink" pref:renderer="mathplayer-dl">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <style xmlns="" type="text/css">
    /* This style sets a margin around the entire page */
        html, body {
            margin: 10px;
        }

        p {
            font: normal 16px verdana, sans-serif;
            margin: 0;
            padding-bottom:12px;
        }

        h1 {
            font: bold 25px verdana, sans-serif;
            margin-top: 0;
            margin-bottom: 3px;
            padding-top: 0;
            padding-bottom: 0;
        }

        h2 {
            font: bold 19px verdana, sans-serif;
            margin-top: 28px;
            margin-bottom: 3px;
            padding-top: 0;
            padding-bottom: 0;
        }

        h3 {
            font: bold 19px verdana, sans-serif !important;
            margin-top: 28px;
            margin-bottom: 3px;
            padding-top: 0;
            padding-bottom: 0;
        }

        li {
            font: normal 16px verdana, sans-serif;
            margin-top: 0;
            margin-bottom: 18px;
            padding-top: 0;
            padding-bottom: 0;
        }

        .pdparam {
            font: italic 16px verdana, sans-serif;
        }

                .term {
                        font: italic 16px verdana, sans-serif;
                        font-weight: normal;
                }

                .type {
                        font: normal 16px verdana, sans-serif !important;
                }

                .parameter {
                        font-style: italic;
                        }

        a:link, a:visited {
            color: blue;
            text-decoration: none;
            font: normal 16px;
        }

        a:hover {
            background-color: #FFFF99;
            font: normal 16px;
        }

        div.funcsynopsis {
            text-align: left;
            background-color: #e6e6e6;
            font: normal 16px verdana, sans-serif;
                        padding-top: 10px;
                        padding-bottom: 10px;
        }

        div.funcsynopsis table {
            border-collapse: separate;
            font: normal 16px verdana, sans-serif;
        }

        div.funcsynopsis td {
            background-color: #e6e6e6;
            border: 0 solid #000;
            padding: 1px;
            font: normal 16px verdana, sans-serif;
        }

        div.refsect1 {
            font-family: verdana, sans-serif;
            font-size: 16px;
        }

        code.constant {
            font: normal 16px courier new, monospace !important;
        }

                span.errorname {
            font: normal 16px verdana, sans-serif !important;
        }

        code.function {
            font: bold 16px verdana, sans-serif !important;
        }

        b.fsfunc {
            font: bold 16px verdana, sans-serif !important;
        }

        code.varname {
            font: italic 16px verdana, sans-serif;
        }

        code.replaceable {
            font: italic 16px courier new, monospace;
        }

        code.funcdef {
            font: normal 16px verdana, sans-serif !important;
        }

        .citerefentry {
            font: normal 16px verdana, sans-serif !important;
        }

        .parameter {
            font-style: italic;
        }

        code.fsfunc {
            font: normal 16px verdana, sans-serif !important;
        }

        /* PARAMETER: This style controls spacing between the terms in Parameter section */
        dt {
            margin-top: 15px;
        }

        /* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */
        div.refsect1 table {
            width: 100%;
                        margin-top: 10px;
            background-color: #FFF;
                        border-collapse: collapse;
                        border-color: #000;
            border-width: 1px;
                        font: normal 16px verdana, sans-serif;
        }

        div.refsect1 th {
                        border-collapse: collapse;
                        border-color: #000;
            border-width: 1px;
            font: bold 16px verdana, sans-serif;
        }

        div.refsect1 td {
            background-color: #FFF;
            padding: 5px;
            vertical-align: text-top;
                        border-collapse: collapse;
                        border-color: #000;
            border-width: 1px;
            font: normal 16px verdana, sans-serif;
        }

                  div.refsect1 p{
            font: normal 16px verdana, sans-serif;
            margin-top: 8px;
            margin-bottom: 8px;
            padding-top: 0;
            padding-bottom: 0;
        }


        /* EXAMPLE: These styles apply only to the Example section */
        div.refsect2 {
            font: normal 16px courier new, monospace !important;
        }

        div.refsect2 table {
            margin-top: 0;
            background-color: #e6e6e6;
            width: 100%;
            border: 0 solid #000;
            padding: 2px;
            font: normal 16px courier new, monospace !important;
        }

        div.refsect2 td {
            background-color: #e6e6e6;
            font: normal 16px courier new, monospace !important;
                        white-space:pre;
        }

        /* COPYRIGHT: This style formats the text of the copyright statement at the bottom of the page */
        div.refsect3 {
            font: normal 11px verdana, sans-serif;
            margin-top: 50px;
            margin-bottom: 20px;
            padding-top: 0;
            padding-bottom: 0;
        }

</style>
    <title>Integer Built-In Functions</title>
    <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
    <meta name="keywords" content="Integer Built-In Functions" />
  </head>
  <body>
    <div class="refentry">
      <a id="id-1"></a>
      <div class="titlepage"></div>
      <div xmlns="" class="refnamediv">
        <h1>Integer Built-In Functions</h1>
        <p>Click an item in the table below for details about that function.</p>
      </div>
      <div class="refsect1">
        <a id="springboard"></a>
        <h2></h2>
        <div class="informaltable">
          <table border="1">
            <colgroup>
              <col align="left" class="col1" />
              <col align="left" class="col2" />
            </colgroup>
            <tbody>
              <tr>
                <td align="left">
                  <a class="citerefentry" href="abs.html">
                    <span class="citerefentry">
                      <span class="refentrytitle">abs</span>
                    </span>
                  </a>
                </td>
                <td align="left">|<code class="varname">x</code>|</td>
              </tr>
              <tr>
                <td align="left">
                  <a class="citerefentry" href="abs.html">
                    <span class="citerefentry">
                      <span class="refentrytitle">abs_diff</span>
                    </span>
                  </a>
                </td>
                <td align="left">|<code class="varname">x</code>-<code class="varname">y</code>| without modulo overflow</td>
              </tr>
              <tr>
                <td align="left">
                  <a class="citerefentry" href="add_sat.html">
                    <span class="citerefentry">
                      <span class="refentrytitle">add_sat</span>
                    </span>
                  </a>
                </td>
                <td align="left"><code class="varname">x</code>+<code class="varname">y</code> and saturate result</td>
              </tr>
              <tr>
                <td align="left">
                  <a class="citerefentry" href="hadd.html">
                    <span class="citerefentry">
                      <span class="refentrytitle">hadd</span>
                    </span>
                  </a>
                </td>
                <td align="left">(<code class="varname">x</code>+<code class="varname">y</code>) &gt;&gt; 1 without modulo overflow </td>
              </tr>
              <tr>
                <td align="left">
                  <a class="citerefentry" href="hadd.html">
                    <span class="citerefentry">
                      <span class="refentrytitle">rhadd</span>
                    </span>
                  </a>
                </td>
                <td align="left">(<code class="varname">x</code>+<code class="varname">y</code>+1) &gt;&gt; 1. The intermediate sum
does not modulo overflow. </td>
              </tr>
              <tr>
                <td align="left">
                  <a class="citerefentry" href="clz.html">
                    <span class="citerefentry">
                      <span class="refentrytitle">clz</span>
                    </span>
                  </a>
                </td>
                <td align="left">Number of leading 0-bits in <code class="varname">x</code></td>
              </tr>
              <tr>
                <td align="left">
                <a class="citerefentry" href="integerClamp.html"><span class="citerefentry"><span class="refentrytitle">clamp</span></span></a>
            </td>
                <td align="left">
                <code class="function">min</code>(<code class="function">max</code>(
                <code class="varname">x</code>, <code class="varname">minval</code>), <code class="varname">maxval</code>)
            </td>
              </tr>
              <tr>
                <td align="left">
                  <a class="citerefentry" href="mad_hi.html">
                    <span class="citerefentry">
                      <span class="refentrytitle">mad_hi</span>
                    </span>
                  </a>
                </td>
                <td align="left"><code class="function">mul_hi</code>(<code class="varname">a</code>,<code class="varname">b</code>)+<code class="varname">c</code></td>
              </tr>
              <tr>
                <td align="left">
                  <a class="citerefentry" href="mad24.html">
                    <span class="citerefentry">
                      <span class="refentrytitle">mad24</span>
                    </span>
                  </a>
                </td>
                <td align="left">(Fast integer function.) Multiply 24-bit integer then add the 32-bit result to 32-bit integer</td>
              </tr>
              <tr>
                <td align="left">
                  <a class="citerefentry" href="mad_sat.html">
                    <span class="citerefentry">
                      <span class="refentrytitle">mad_sat</span>
                    </span>
                  </a>
                </td>
                <td align="left"><code class="varname">a</code>*<code class="varname">b</code>+<code class="varname">c</code> and saturate the result</td>
              </tr>
              <tr>
                <td align="left">
                  <a class="citerefentry" href="integerMax.html">
                    <span class="citerefentry">
                      <span class="refentrytitle">max</span>
                    </span>
                  </a>
                </td>
                <td align="left">The greater of <code class="varname">x</code> or <code class="varname">y</code></td>
              </tr>
              <tr>
                <td align="left">
                  <a class="citerefentry" href="integerMax.html">
                    <span class="citerefentry">
                      <span class="refentrytitle">min</span>
                    </span>
                  </a>
                </td>
                <td align="left">The lessor of <code class="varname">x</code> or <code class="varname">y</code></td>
              </tr>
              <tr>
                <td align="left">
                  <a class="citerefentry" href="mul_hi.html">
                    <span class="citerefentry">
                      <span class="refentrytitle">mul_hi</span>
                    </span>
                  </a>
                </td>
                <td align="left">High half of the product of <code class="varname">x</code> and <code class="varname">y</code></td>
              </tr>
              <tr>
                <td align="left">
                  <a class="citerefentry" href="mul24.html">
                    <span class="citerefentry">
                      <span class="refentrytitle">mul24</span>
                    </span>
                  </a>
                </td>
                <td align="left">(Fast integer function.) Multiply 24-bit integer values <code class="varname">a</code> and <code class="varname">b</code></td>
              </tr>
              <tr>
                <td align="left">
                  <a class="citerefentry" href="rotate.html">
                    <span class="citerefentry">
                      <span class="refentrytitle">rotate</span>
                    </span>
                  </a>
                </td>
                <td align="left">result[<code class="varname">indx</code>]=<code class="varname">v</code>[<code class="varname">indx</code>]&lt;&lt;<code class="varname">i</code>[<code class="varname">indx</code>]</td>
              </tr>
              <tr>
                <td align="left">
                  <a class="citerefentry" href="sub_sat.html">
                    <span class="citerefentry">
                      <span class="refentrytitle">sub_sat</span>
                    </span>
                  </a>
                </td>
                <td align="left"><code class="varname">x</code> - <code class="varname">y</code> and saturate the result</td>
              </tr>
              <tr>
                <td align="left">
                  <a class="citerefentry" href="upsample.html">
                    <span class="citerefentry">
                      <span class="refentrytitle">upsample</span>
                    </span>
                  </a>
                </td>
                <td align="left"><code class="varname">result</code>[i] = ((gentype)<code class="varname">hi</code>[i] &lt;&lt; 8|16|32) | <code class="varname">lo</code>[i]</td>
              </tr>
            </tbody>
          </table>
        </div>
      </div>
      <div class="refsect1">
        <a id="description"></a>
        <h2>Description</h2>
        <p>
            Built-in integer functions can be used to take scalar or vector arguments. The
            vector versions of the integer functions operate component-wise. The description 
            is per component. 
        </p>
        <p>
            We use the generic type name <span class="type">gentype</span> to indicate 
            that the function can take <span class="type">char</span>, <span class="type">char{2|3|4|8|16}</span>, 
            <span class="type">uchar</span>, <span class="type">uchar{2|3|4|8|16}</span>, <span class="type">short</span>, 
            <span class="type">short{2|3|4|8|16}</span>, <span class="type">ushort</span>, <span class="type">ushort{2|3|4|8|16}</span>, 
            <span class="type">int</span>, <span class="type">int{2|3|4|8|16}</span>, <span class="type">uint</span>, 
            <span class="type">uint{2|3|4|8|16}</span>, <span class="type">long</span>, <span class="type">long{2|3|4|8|16}</span>, 
            <span class="type">ulong</span>, or <span class="type">ulong{2|3|4|8|16}</span> as the type for the arguments. 
            We use the generic type name <span class="type">ugentype</span> to refer to unsigned versions of 
            <span class="type">gentype</span>. For example, if <span class="type">gentype</span> is <span class="type">char4</span>, 
            <span class="type">ugentype</span> is <span class="type">uchar4</span>. 
        </p>
        <p>          
            We also use the generic type name <span class="type">sgentype</span> to indicate that the 
            function can take a scalar data type i.e. <span class="type">char</span>, <span class="type">uchar</span>, 
            <span class="type">short</span>, <span class="type">ushort</span>, <span class="type">int</span>, <span class="type">uint</span>,
            <span class="type">long</span>, or <span class="type">ulong</span> as the type for the arguments. 
            For built-in integer functions that take <span class="type">gentype</span> and 
            <span class="type">sgentype</span> arguments, the <span class="type">gentype</span> argument must be a 
            vector or scalar version of the <span class="type">sgentype</span> argument. For example, if
            <span class="type">sgentype</span> is <span class="type">uchar</span>, <span class="type">gentype</span> must be
            <span class="type">uchar</span> or <span class="type">uchar{2|3|4|8|16}</span>.
        </p>
        <p>
            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.
        </p>
      </div>
      <div class="refsect1">
        <a id="specification"></a>
        <h2>Specification</h2>
        <p>
            <img src="pdficon_small1.gif" />
                                                 
            <a href="http://www.khronos.org/registry/cl/specs/opencl-1.1.pdf#page=211" target="OpenCL Spec">OpenCL Specification</a>
        </p>
      </div>
      <div xmlns="" class="refsect3" lang="en" xml:lang="en"><a xmlns="http://www.w3.org/1999/xhtml" id="Copyright"></a><h4 xmlns="http://www.w3.org/1999/xhtml"></h4><img xmlns="http://www.w3.org/1999/xhtml" src="KhronosLogo.jpg" /><p xmlns="http://www.w3.org/1999/xhtml"></p>Copyright © 2007-2010 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.
</div>
    </div>
  </body>
</html>
