fma — perform a fused multiply-add operation
genType fma(
|
genType a, |
| genType b, | |
genType c); |
genDType fma(
|
genDType a, |
| genDType b, | |
genDType c); |
a
Specifies the first multiplicand.
b
Specifies the second multiplicand.
c
Specifies the value to be added to the result.
fma performs, where possible, a fused multiply-add operation,
returning a * b + c.
In use cases where the return value is eventually consumed by a variable declared as
precise:
fma() is considered a single operation, whereas the
expression a * b + c consumed by a variable declared as precise
is considered two operations.
The precision of fma() can differ from the precision
of the expression a * b + c.
fma() will be computed with the same precision as any
other fma() consumed by a precise variable,
giving invariant results for the same input values of a,
b and c.
Otherwise, in the absence of precise consumption, there are no
special constraints on the number of operations or difference in precision between
fma() and the expression a * b + c.
| OpenGL Shading Language Version | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Function Name | 1.10 | 1.20 | 1.30 | 1.40 | 1.50 | 3.30 | 4.00 | 4.10 | 4.20 | 4.30 | 4.40 | 4.50 |
| fma (genType) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| fma (genDType) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
Copyright © 2011-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. https://opencontent.org/openpub/.