blob: 45f53e3963914d68ac4e23928f93ac6045378fa1 [file] [log] [blame]
<bridgehead>Half and Native forms</bridgehead>
<para>
A subset of Math functions (table 6.8) are defined
with the <code>half_</code> prefix. These
functions are implemented with a minimum of
10-bits of accuracy i.e. an ULP value &le;
8192 ulp.
</para>
<para>
A subset of Math functions (table 6.8) are
defined with the <code>native_</code> prefix. These
functions may map to one or more native device
instructions and will typically have
better performance compared to the corresponding
functions (without the <code>native__</code>
prefix). The accuracy (and in some cases the
input range(s)) of
these functions is implementation-defined.
</para>
<para>
For the half and native forms, we use the
generic type name
gentype to indicate that the functions
(table 6.9) can take
<type>float</type>, <type>float2</type>,
<type>float3</type>,
<type>float4</type>, <type>float8</type>
or <type>float16</type> as the type for the
arguments.
</para>
<para>
Support for denormal values is optional for
<code>half_</code> functions. The <code>half_</code>
functions may return any
result allowed by section 7.5.3, even when
<code>-cl-denorms-are-zero</code> (see section 5.8.4.2) is not in
force. Support for denormal values is
implementation-defined for <code>native_</code> functions.
</para>
<!-- 24-May-2013 -->