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

    <refmeta>                                    
        <refentrytitle>vstorea_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="vstorea_halfn>">             
        <refname>vstorea_half<varname>n</varname></refname>

        <refpurpose>
            Convert float vector to half vector and write to a pointer to memory.
        </refpurpose>
    </refnamediv>
	<refsynopsisdiv xmlns:xlink="http://www.w3.org/1999/xlink"><title></title>
        <funcsynopsis>
            <funcprototype>
                <funcdef>
                    <link xlink:href="scalarDataTypes.html">void</link>
                    <function>                   
                        vstorea_half<replaceable>n</replaceable>
                    </function>
                </funcdef>		
				<paramdef>float<replaceable>n</replaceable><parameter>data</parameter></paramdef>
<paramdef><link xlink:href="scalarDataTypes.html">size_t</link><parameter>offset</parameter></paramdef>
<paramdef><link xlink:href="global.html">__global</link> half<parameter>*p</parameter></paramdef>            
</funcprototype>
        </funcsynopsis>     
		 <funcsynopsis>
            <funcprototype>
                <funcdef>
                    <link xlink:href="scalarDataTypes.html">void</link>
                    <function>                   
                        vstorea_half<replaceable>n</replaceable>_rte
                    </function>
                </funcdef>		
				<paramdef>float<replaceable>n</replaceable><parameter>data</parameter></paramdef>
<paramdef><link xlink:href="scalarDataTypes.html">size_t</link><parameter>offset</parameter></paramdef>
<paramdef><link xlink:href="global.html">__global</link> half<parameter>*p</parameter></paramdef>            
</funcprototype>
        </funcsynopsis>  
  	    <funcsynopsis>
            <funcprototype>
                <funcdef>
                    <link xlink:href="scalarDataTypes.html">void</link>
                    <function>                   
                        vstorea_half<replaceable>n</replaceable>_rtz
                    </function>
                </funcdef>		
				<paramdef>float<replaceable>n</replaceable><parameter>data</parameter></paramdef>
<paramdef><link xlink:href="scalarDataTypes.html">size_t</link><parameter>offset</parameter></paramdef>
<paramdef><link xlink:href="global.html">__global</link> half<parameter>*p</parameter></paramdef>            
</funcprototype>
        </funcsynopsis>  
		 <funcsynopsis>
            <funcprototype>
                <funcdef>
                    <link xlink:href="scalarDataTypes.html">void</link>
                    <function>                   
                        vstorea_half<replaceable>n</replaceable>_rtp
                    </function>
                </funcdef>		
				<paramdef>float<replaceable>n</replaceable><parameter>data</parameter></paramdef>
<paramdef><link xlink:href="scalarDataTypes.html">size_t</link><parameter>offset</parameter></paramdef>
<paramdef><link xlink:href="global.html">__global</link> half<parameter>*p</parameter></paramdef>            
</funcprototype>
        </funcsynopsis>  
		 <funcsynopsis>
            <funcprototype>
                <funcdef>
                    <link xlink:href="scalarDataTypes.html">void</link>
                    <function>                   
                        vstorea_half<replaceable>n</replaceable>_rtn
                    </function>
                </funcdef>		
				<paramdef>float<replaceable>n</replaceable><parameter>data</parameter></paramdef>
<paramdef><link xlink:href="scalarDataTypes.html">size_t</link><parameter>offset</parameter></paramdef>
<paramdef><link xlink:href="global.html">__global</link> half<parameter>*p</parameter></paramdef>            
</funcprototype>
        </funcsynopsis>  
   
	</refsynopsisdiv>	

	<refsynopsisdiv xmlns:xlink="http://www.w3.org/1999/xlink"><title></title>
        <funcsynopsis>
            <funcprototype>
                <funcdef>
                    <link xlink:href="scalarDataTypes.html">void</link>
                    <function>                   
                        vstorea_half<replaceable>n</replaceable>
                    </function>
                </funcdef>		
				<paramdef>float<replaceable>n</replaceable><parameter>data</parameter></paramdef>
<paramdef><link xlink:href="scalarDataTypes.html">size_t</link><parameter>offset</parameter></paramdef>
<paramdef><link xlink:href="local.html">__local</link> half<parameter>*p</parameter></paramdef>            
</funcprototype>
        </funcsynopsis>     
		 <funcsynopsis>
            <funcprototype>
                <funcdef>
                    <link xlink:href="scalarDataTypes.html">void</link>
                    <function>                   
                        vstorea_half<replaceable>n</replaceable>_rte
                    </function>
                </funcdef>		
				<paramdef>float<replaceable>n</replaceable><parameter>data</parameter></paramdef>
<paramdef><link xlink:href="scalarDataTypes.html">size_t</link><parameter>offset</parameter></paramdef>
<paramdef><link xlink:href="local.html">__local</link> half<parameter>*p</parameter></paramdef>            
</funcprototype>
        </funcsynopsis>  
  	    <funcsynopsis>
            <funcprototype>
                <funcdef>
                    <link xlink:href="scalarDataTypes.html">void</link>
                    <function>                   
                        vstorea_half<replaceable>n</replaceable>_rtz
                    </function>
                </funcdef>		
				<paramdef>float<replaceable>n</replaceable><parameter>data</parameter></paramdef>
<paramdef><link xlink:href="scalarDataTypes.html">size_t</link><parameter>offset</parameter></paramdef>
<paramdef><link xlink:href="local.html">__local</link> half<parameter>*p</parameter></paramdef>            
</funcprototype>
        </funcsynopsis>  
		 <funcsynopsis>
            <funcprototype>
                <funcdef>
                    <link xlink:href="scalarDataTypes.html">void</link>
                    <function>                   
                        vstorea_half<replaceable>n</replaceable>_rtp
                    </function>
                </funcdef>		
				<paramdef>float<replaceable>n</replaceable><parameter>data</parameter></paramdef>
<paramdef><link xlink:href="scalarDataTypes.html">size_t</link><parameter>offset</parameter></paramdef>
<paramdef><link xlink:href="local.html">__local</link> half<parameter>*p</parameter></paramdef>            
</funcprototype>
        </funcsynopsis>  
		 <funcsynopsis>
            <funcprototype>
                <funcdef>
                    <link xlink:href="scalarDataTypes.html">void</link>
                    <function>                   
                        vstorea_half<replaceable>n</replaceable>_rtn
                    </function>
                </funcdef>		
				<paramdef>float<replaceable>n</replaceable><parameter>data</parameter></paramdef>
<paramdef><link xlink:href="scalarDataTypes.html">size_t</link><parameter>offset</parameter></paramdef>
<paramdef><link xlink:href="local.html">__local</link> half<parameter>*p</parameter></paramdef>            
</funcprototype>
        </funcsynopsis>  
	</refsynopsisdiv>	


	<refsynopsisdiv xmlns:xlink="http://www.w3.org/1999/xlink"><title></title>
        <funcsynopsis>
            <funcprototype>
                <funcdef>
                    <link xlink:href="scalarDataTypes.html">void</link>
                    <function>                   
                        vstorea_half<replaceable>n</replaceable>
                    </function>
                </funcdef>		
				<paramdef>float<replaceable>n</replaceable><parameter>data</parameter></paramdef>
<paramdef><link xlink:href="scalarDataTypes.html">size_t</link><parameter>offset</parameter></paramdef>
<paramdef><link xlink:href="private.html">__private</link> half<parameter>*p</parameter></paramdef>            
</funcprototype>
        </funcsynopsis>     
		 <funcsynopsis>
            <funcprototype>
                <funcdef>
                    <link xlink:href="scalarDataTypes.html">void</link>
                    <function>                   
                        vstorea_half<replaceable>n</replaceable>_rte
                    </function>
                </funcdef>		
				<paramdef>float<replaceable>n</replaceable><parameter>data</parameter></paramdef>
<paramdef><link xlink:href="scalarDataTypes.html">size_t</link><parameter>offset</parameter></paramdef>
<paramdef><link xlink:href="private.html">__private</link> half<parameter>*p</parameter></paramdef>            
</funcprototype>
        </funcsynopsis>  
  	    <funcsynopsis>
            <funcprototype>
                <funcdef>
                    <link xlink:href="scalarDataTypes.html">void</link>
                    <function>                   
                        vstorea_half<replaceable>n</replaceable>_rtz
                    </function>
                </funcdef>		
				<paramdef>float<replaceable>n</replaceable><parameter>data</parameter></paramdef>
<paramdef><link xlink:href="scalarDataTypes.html">size_t</link><parameter>offset</parameter></paramdef>
<paramdef><link xlink:href="private.html">__private</link> half<parameter>*p</parameter></paramdef>            
</funcprototype>
        </funcsynopsis>  
		 <funcsynopsis>
            <funcprototype>
                <funcdef>
                    <link xlink:href="scalarDataTypes.html">void</link>
                    <function>                   
                        vstorea_half<replaceable>n_rtp</replaceable>
                    </function>
                </funcdef>		
				<paramdef>float<replaceable>n</replaceable><parameter>data</parameter></paramdef>
<paramdef><link xlink:href="scalarDataTypes.html">size_t</link><parameter>offset</parameter></paramdef>
<paramdef><link xlink:href="private.html">__private</link> half<parameter>*p</parameter></paramdef>            
</funcprototype>
        </funcsynopsis>  
		 <funcsynopsis>
            <funcprototype>
                <funcdef>
                    <link xlink:href="scalarDataTypes.html">void</link>
                    <function>                   
                        vstorea_half<replaceable>n_rtn</replaceable>
                    </function>
                </funcdef>		
				<paramdef>float<replaceable>n</replaceable><parameter>data</parameter></paramdef>
<paramdef><link xlink:href="scalarDataTypes.html">size_t</link><parameter>offset</parameter></paramdef>
<paramdef><link xlink:href="private.html">__private</link> half<parameter>*p</parameter></paramdef>            
</funcprototype>
        </funcsynopsis>  
	</refsynopsisdiv>		

	

    <refsect2 id="double">
        <title></title>

        <informaltable frame="none">
            <tgroup cols="1" align="left" colsep="0" rowsep="0">
                <colspec colname="col1" colnum="1" />
                <tbody>
                    <row>
                        <entry>
If the double extension enabled, you may use <type>double<replaceable>n</replaceable></type> instead of <type>float<replaceable>n</replaceable></type>.
                        </entry>
                    </row>
                </tbody>
            </tgroup>
        </informaltable>
    </refsect2>				

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

    <refsect1 id="description"><title>Description</title>
        <para>
		The single-precision floating-point vector value is  converted to a half vector value using the appropriate rounding mode. The half<varname>n</varname> value is then written to address computed as (<varname>p</varname> + (<varname>offset</varname> * <varname>n</varname>)). The write address computed as (<varname>p</varname> + (<varname>offset</varname> * <varname>n</varname>)) must be aligned to sizeof (half) * number of half elements
being read (given by <varname>n</varname>) bytes. 
        <para>
		</para>
<function>vstorea_half<varname>n</varname></function> uses the current rounding mode. The default current rounding mode is round to nearest even.
		</para>
		
    </refsect1>

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

    <refsect1 id="notes"><title>Notes</title>
		<para>
		If extended with <citerefentry><refentrytitle>cl_khr_fp64</refentrytitle></citerefentry>, the function is extended to allow a double precision scalar or vector value to be written to memory as half values. In this case, the functions use <type>double</type> instead of <type>float</type>.

		</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>

