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.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 absense 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
.
Function | Version 1.10 | Version 1.20 | Version 1.30 | Version 1.40 | Version 1.50 | Version 3.30 | Version 4.00 | Version 4.10 | Version 4.20 | Version 4.30 |
---|---|---|---|---|---|---|---|---|---|---|
fma (genType) | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y |
fma (genDType) | - | - | - | - | - | - | Y | Y | Y | Y |
Copyright © 2011 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. http://opencontent.org/openpub/.