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

    <refmeta>                                    
        <refentrytitle>vload_halfn</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="vload_halfn">             
        <refname>vload_half<replaceable>n</replaceable></refname>

        <refpurpose>
            Read a half float vector from a pointer to memory.
        </refpurpose>
    </refnamediv>

	<refsynopsisdiv xmlns:xlink="http://www.w3.org/1999/xlink"><title></title>
        <funcsynopsis>
            <funcprototype>
                <funcdef>
                    float<replaceable>n</replaceable>
                    <function>                   
                        vload_half<replaceable>n</replaceable>
                    </function>
                </funcdef>		
<paramdef><link xlink:href="scalarDataTypes.html">size_t</link><parameter>offset</parameter></paramdef>
<paramdef>const <link xlink:href="global.html">__global</link> half<parameter>*p</parameter></paramdef>            
</funcprototype>
        </funcsynopsis>     
        <funcsynopsis>
            <funcprototype>
                <funcdef>
                    float<replaceable>n</replaceable>
                    <function>                   
                        vload_half<replaceable>n</replaceable>
                    </function>
                </funcdef>		
<paramdef><link xlink:href="scalarDataTypes.html">size_t</link><parameter>offset</parameter></paramdef>
<paramdef>const <link xlink:href="local.html">__local</link> half<parameter>*p</parameter></paramdef>            
</funcprototype>
        </funcsynopsis>    	   
         <funcsynopsis>
            <funcprototype>
                <funcdef>
                    float<replaceable>n</replaceable>
                    <function>                   
                        vload_half<replaceable>n</replaceable>
                    </function>
                </funcdef>		
<paramdef><link xlink:href="scalarDataTypes.html">size_t</link><parameter>offset</parameter></paramdef>
<paramdef>const <link xlink:href="constant.html">__constant</link> half<parameter>*p</parameter></paramdef>            
</funcprototype>
        </funcsynopsis>    
		        <funcsynopsis>
            <funcprototype>
                <funcdef>
                    float<replaceable>n</replaceable>
                    <function>                   
                        vload_half<replaceable>n</replaceable>
                    </function>
                </funcdef>		
<paramdef><link xlink:href="scalarDataTypes.html">size_t</link><parameter>offset</parameter></paramdef>
<paramdef>const <link xlink:href="private.html">__private</link> half<parameter>*p</parameter></paramdef>            
</funcprototype>
        </funcsynopsis>    
	</refsynopsisdiv>	
		

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

    <refsect1 id="description"><title>Description</title>
        <para>
		Returns <constant>sizeof(<type>float<varname>n</varname></type>)</constant> bytes of data read from location (<varname>p</varname> + (<varname>offset</varname> * <varname>n</varname>)). 
		</para>
        <para>
The half value read is converted to single precision floating-point. The read address computed as (<varname>p</varname> + (<varname>offset</varname> * <varname>n</varname>)) must be 16-bit aligned.
		</para>
		
    </refsect1>

<!-- ================================ NOTES  
    <refsect1 id="notes"><title>Notes</title>
		<para>

        </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="vectorDataLoadandStoreFunctions">OpenCL Specification</olink>
        </para>
    </refsect1>


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

    <refsect1 id="seealso"><title>Also see</title>
        <para>
            <citerefentry href="vectorDataLoadandStoreFunctions"><refentrytitle>Vector Data Load and Store 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>

