include more low-level bindings
[clinton/guile-figl.git] / upstream-man-pages / manglsl / fma.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
3 "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
4 <refentry id="fma">
5 <refmeta>
6 <refmetainfo>
7 <copyright>
8 <year>2011</year>
9 <holder>Khronos Group</holder>
10 </copyright>
11 </refmetainfo>
12 <refentrytitle>fma</refentrytitle>
13 <manvolnum>3G</manvolnum>
14 </refmeta>
15 <refnamediv>
16 <refname>fma</refname>
17 <refpurpose>perform a fused multiply-add operation</refpurpose>
18 </refnamediv>
19 <refsynopsisdiv><title>Declaration</title>
20 <funcsynopsis>
21 <funcprototype>
22 <funcdef>genType <function>fma</function></funcdef>
23 <paramdef>genType <parameter>a</parameter></paramdef>
24 <paramdef>genType <parameter>b</parameter></paramdef>
25 <paramdef>genType <parameter>c</parameter></paramdef>
26 </funcprototype>
27 <funcprototype>
28 <funcdef>genDType <function>fma</function></funcdef>
29 <paramdef>genDType <parameter>a</parameter></paramdef>
30 <paramdef>genDType <parameter>b</parameter></paramdef>
31 <paramdef>genDType <parameter>c</parameter></paramdef>
32 </funcprototype>
33 </funcsynopsis>
34 </refsynopsisdiv>
35 <refsect1 id="parameters"><title>Parameters</title>
36 <variablelist>
37 <varlistentry>
38 <term><parameter>a</parameter></term>
39 <listitem>
40 <para>
41 Specifies the first multiplicand.
42 </para>
43 </listitem>
44 </varlistentry>
45 <varlistentry>
46 <term><parameter>b</parameter></term>
47 <listitem>
48 <para>
49 Specifies the second multiplicand.
50 </para>
51 </listitem>
52 </varlistentry>
53 <varlistentry>
54 <term><parameter>c</parameter></term>
55 <listitem>
56 <para>
57 Specifies the value to be added to the result.
58 </para>
59 </listitem>
60 </varlistentry>
61 </variablelist>
62 </refsect1>
63 <refsect1 id="description"><title>Description</title>
64 <para>
65 <function>fma</function> performs, where possible, a fused multiply-add operation,
66 returning <code>a * b + c</code>.
67 In use cases where the return value is eventually consumed by a variable declared as
68 <code>precise</code>:
69 <itemizedlist>
70 <listitem><function>fma</function>() is considered a single operation, whereas the
71 expression <code>a * b + c</code> consumed by a variable declared as <code>precise</code>
72 is considered two operations.</listitem>
73 <listitem>The precision of <function>fma</function>() can differ from the precision
74 of the expression <code>a * b + c</code>.</listitem>
75 <listitem><function>fma</function>() will be computed with the same precision as any
76 other <function>fma</function>() consumed by a <code>precise</code> variable,
77 giving invariant results for the same input values of <parameter>a</parameter>,
78 <parameter>b</parameter> and <parameter>c</parameter>.</listitem>
79 </itemizedlist>
80 Otherwise, in the absense of <code>precise</code> consumption, there are no
81 special constraints on the number of operations or difference in precision between
82 <function>fma</function>() and the expression <code>a * b + c</code>.
83 </para>
84 </refsect1>
85 <refsect1 id="versions"><title>Version Support</title>
86 <informaltable frame="topbot">
87 #VARTABLECOLS#
88 <thead>
89 #FUNCTABLEHEADER#
90 <row>
91 <entry>fma (genType)</entry>#newin11#
92 </row>
93 <row>
94 <entry>fma (genDType)</entry>#newin40#
95 </row>
96 </thead>
97 </tgroup>
98 </informaltable>
99 </refsect1>
100 <refsect1 id="Copyright"><title>Copyright</title>
101 <para>
102 Copyright <trademark class="copyright"></trademark> 2011 Khronos Group.
103 This material may be distributed subject to the terms and conditions set forth in
104 the Open Publication License, v 1.0, 8 June 1999.
105 <ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
106 </para>
107 </refsect1>
108 </refentry>