Light | Dark



fma — perform a fused multiply-add operation


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



Specifies the first multiplicand.


Specifies the second multiplicand.


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

Version Support

OpenGL ES Shading Language Version
Function Name 1.00 3.00 3.10
fma - -
Think you can improve this page? Edit this page on GitHub.