blob: 0982a01428603db178cf2cf96683352421959ef2 [file] [log] [blame]
<?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">
<!-- perhaps separate this page into two pages? One for FP_CONTRACT and one
for FP_FAST_FMA*.
To do: !!! Fix shading background on synposis.
-->
<refentry>
<refentryinfo>
<keywordset>
<keyword>FP_CONTRACT, FP_FAST_FMAF, FP_FAST_FMA_HALF</keyword>
</keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>FP_CONTRACT, FP_FAST_FMAF, FP_FAST_FMA_HALF</refentrytitle>
<refmiscinfo>
<copyright>
<year>2007-2011</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="FP_CONTRACT">
<refname>FP_CONTRACT, FP_FAST_FMAF, FP_FAST_FMA_HALF</refname>
<refpurpose>
Control expression contraction; fast fma()
</refpurpose>
<informaltable frame="none">
<tgroup cols="1" align="left" colsep="0" rowsep="0">
<colspec colname="col1" colnum="1" />
<tbody>
<row>
<entry>
<literallayout>
#pragma OPENCL FP_CONTRACT <varname>on-off-switch</varname>
<varname>on-off-switch</varname> is one of:
ON, OFF or DEFAULT.
The DEFAULT value is ON.
FP_FAST_FMAF
FP_FAST_FMA
FP_FAST_FMA_HALF
</literallayout>
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refnamediv>
<!-- ================================ DESCRIPTION -->
<!-- Use <function /> to refer ONLY to the function that this page describes. All other functions should use
-->
<refsect1 xmlns:xlink="http://www.w3.org/1999/xlink" id="fpcontract"><title>FP_CONTRACT</title>
<para>
The <function>FP_CONTRACT</function> pragma takes the form:
</para>
<para>
<informaltable frame="none">
<tgroup cols="1" align="left" colsep="0" rowsep="0">
<colspec colname="col1" colnum="1" /> <tbody>
<row>
<entry>
#pragma OPENCL FP_CONTRACT on-off-switch
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
<para>
<function>FP_CONTRACT</function> can be used to allow (if the state is
<constant>on</constant>) or disallow (if the state is <constant>off</constant>)
the implementation to contract expressions. Each pragma can occur either outside
external declarations or preceding all explicit declarations and statements inside
a compound statement.
</para>
<para>
The parameter <varname>on-off-switch</varname> is one of ON, OFF or DEFAULT. The
DEFAULT value is ON.
</para>
<para>
When outside external declarations, the pragma takes effect from its occurrence until
another <function>FP_CONTRACT</function> pragma is encountered, or until the end of
the translation unit. When inside a compound statement, the pragma takes effect from
its occurrence until another <function>FP_CONTRACT</function> pragma is encountered
(including within a nested compound statement), or until the end of the compound
statement; at the end of a compound statement the state for the pragma is restored
to its condition just before the compound statement. If this pragma is used in any
other context, the behavior is undefined.
</para>
</refsect1>
<refsect1 xmlns:xlink="http://www.w3.org/1999/xlink" id="fpfastfma">
<title>FP_FAST_FMAF and FP_FAST_FMA</title>
<para>
The <constant>FP_FAST_FMAF</constant> macro indicates whether the
<citerefentry><refentrytitle>fma</refentrytitle></citerefentry> function
is fast compared with direct code for single precision floating-point. If
defined, the <constant>FP_FAST_FMAF</constant> macro shall indicate that the
<citerefentry><refentrytitle>fma</refentrytitle></citerefentry>() function generally
executes about as fast as, or faster than, a multiply and an add of float operands.
</para>
<para>
The <constant>FP_FAST_FMA</constant> macro indicates whether the
<citerefentry><refentrytitle>fma</refentrytitle></citerefentry> family of functions
are fast compared with direct code for double precision floating-point. If
defined, the <constant>FP_FAST_FMA</constant> macro shall indicate that the
<citerefentry><refentrytitle>fma</refentrytitle></citerefentry>() function generally
executes about as fast as, or faster than, a multiply and an add of double operands.
</para>
<para>
The <constant>FP_FAST_FMA_HALF</constant> macro indicates whether the
<citerefentry><refentrytitle>fma</refentrytitle></citerefentry>() family of
functions are fast compared with direct code for half precision floating-point. If
defined, the <constant>FP_FAST_FMA_HALF</constant> macro shall indicate that the
<citerefentry><refentrytitle>fma</refentrytitle></citerefentry>() function generally
executes about as fast as, or faster than, a multiply and an add of half operands
</para>
</refsect1>
<!-- ================================ 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="FP_CONTRACT">OpenCL Specification</olink>
</para>
</refsect1>
<!-- ================================ ALSO SEE -->
<refsect1 id="seealso"><title>Also see</title>
<para>
<citerefentry href="mathFunctions"><refentrytitle>Math Functions</refentrytitle></citerefentry>,
<citerefentry href="mathConstants"><refentrytitle>Symbolic Math Constants</refentrytitle></citerefentry>,
<citerefentry href="macroLimits"><refentrytitle>Macros and Limits</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>
<!-- 17-Oct-2011 -->
</refentry>