fma - perform a fused multiply-add operation
Contents
Copyright
Copyright © 2011-2014 Khronos Group
[FIXME: source] 11/18/2024 FMA(3G)
Declaration
genTypefma(genTypea,genTypeb,genTypec);genDTypefma(genDTypea,genDTypeb,genDTypec);
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 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.
Name
fma - perform a fused multiply-add operation
Parameters
a
Specifies the first multiplicand.
b
Specifies the second multiplicand.
c
Specifies the value to be added to the result.
Version Support
┌────────────┬───────────────────────────────────────────────────────────────────────────────────┐
│ │ OpenGLShadingLanguageVersion │
├────────────┼──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┤
│ Function │ 1.10 │ 1.20 │ 1.30 │ 1.40 │ 1.50 │ 3.30 │ 4.00 │ 4.10 │ 4.20 │ 4.30 │ 4.40 │ 4.50 │
│ Name │ │ │ │ │ │ │ │ │ │ │ │ │
├────────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤
│ fma │ - │ - │ - │ - │ - │ - │ ✔ │ ✔ │ ✔ │ ✔ │ ✔ │ ✔ │
│ (genType) │ │ │ │ │ │ │ │ │ │ │ │ │
├────────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤
│ fma │ - │ - │ - │ - │ - │ - │ ✔ │ ✔ │ ✔ │ ✔ │ ✔ │ ✔ │
│ (genDType) │ │ │ │ │ │ │ │ │ │ │ │ │
└────────────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┘
