<?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 relationalFunctionsInc1 SYSTEM "relationalFunctionsInc1.xml">
<!ENTITY relationalFunctionsInc2 SYSTEM "relationalFunctionsInc2.xml">
]>
<refentry>
    <refentryinfo>
        <keywordset>
            <keyword>isfinite</keyword>
        </keywordset>
    </refentryinfo>

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

        <refpurpose>
            Test for finite value.
        </refpurpose>
    </refnamediv>

    <refsynopsisdiv xmlns:xlink="http://www.w3.org/1999/xlink"><title></title>
        <funcsynopsis>
            <funcprototype>
                <funcdef>
                    <link xlink:href="scalarDataTypes.html">int</link>


                    <function>                   
                        isfinite
                    </function>
                </funcdef>
                <paramdef><link xlink:href="scalarDataTypes.html">float</link><parameter></parameter></paramdef>
            </funcprototype>
        </funcsynopsis>     

        <funcsynopsis>
            <funcprototype>
                <funcdef>
                    <link xlink:href="vectorDataTypes.html">int<replaceable>n</replaceable></link>
                    <function>                   
                        isfinite
                    </function>
                </funcdef>
                <paramdef><link xlink:href="vectorDataTypes.html">float<replaceable>n</replaceable></link><parameter></parameter></paramdef>
            </funcprototype>
        </funcsynopsis>     
    </refsynopsisdiv>   

    
    
<!-- Optional Double and Half prototypes -->
 <refsect2 xmlns:xlink="http://www.w3.org/1999/xlink" id="double">
        <title></title>

        <informaltable frame="none">
            <tgroup cols="1" align="left" colsep="0" rowsep="0">
                <colspec colname="col1" colnum="1" />
                <tbody>
                    <row>
                        <entry>
<type><link xlink:href="scalarDataTypes.html">int</link></type> <function>isfinite</function> (<type><link xlink:href="scalarDataTypes.html">double</link></type>)      // if double extension enabled 

<type><link xlink:href="vectorDataTypes.html">long<replaceable>n</replaceable></link></type> <function>isfinite</function> (<type><link xlink:href="vectorDataTypes.html">double<replaceable>n</replaceable></link></type>)      // if double extension enabled 
</entry>
                    </row>
                </tbody>
            </tgroup>
        </informaltable>

        <informaltable frame="none">
            <tgroup cols="1" align="left" colsep="0" rowsep="0">
                <colspec colname="col1" colnum="1" />
                <tbody>
                    <row>
                        <entry>
<type><link xlink:href="scalarDataTypes.html">int</link></type> <function>isfinite</function> (<type><link xlink:href="scalarDataTypes.html">half</link></type>)      // if half extension enabled 

<type><link xlink:href="vectorDataTypes.html">short<replaceable>n</replaceable></link></type> <function>isfinite</function> (<type><link xlink:href="vectorDataTypes.html">half<replaceable>n</replaceable></link></type>)      // if half extension enabled 
</entry>
                    </row>
                </tbody>
            </tgroup>
        </informaltable>
    </refsect2> 
        

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

    <refsect1 id="description"><title>Description</title>
        <para>
        Test for finite value.
        </para>
        <para>
        
        </para>
        
    </refsect1>

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

     <refsect1 id="notes"><title>Notes</title>
     <para>
The relational and equality operators (&lt;, &lt;=, >, >=, !=, ==) can be used with halfn vector types
and shall produce a vector short<replaceable>n</replaceable> result.
</para>
        &relationalFunctionsInc1;
        &relationalFunctionsInc2;
    </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="relationalFunctions">OpenCL Specification</olink>
        </para>
    </refsect1>


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

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

