FMA(3G)

NAME
fma - perform a fused multiply-add operation

DECLARATION

genType fma(genType a, genType b, genType c);

genDType fma(genDType a, genDType b, genDType c);

PARAMETERS

a
    Specifies the first multiplicand.

b
    Specifies the second multiplicand.

c
    Specifies the value to be added to the result.

DESCRIPTION

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.

VERSION SUPPORT
 | 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

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/.

COPYRIGHT
Copyright © 2011-2014 Khronos Group