fma

From OpenGL Reference
Jump to navigation Jump to search

Perform a fused multiply-add operation.

Declaration[edit]

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


Parameters[edit]

a - Specifies the first multiplicand.
b - Specifies the second multiplicand.
c - Specifies the value to be added to the result.


Description[edit]

 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 asprecise:* fma () is considered a single operation, whereas the expression a * b + c consumed by a variable declared aspreciseis 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 aprecisevariable, giving invariant results for the same input values of a , b and c .

Otherwise, in the absence ofpreciseconsumption, there are no special constraints on the number of operations or difference in precision between fma () and the expression a * b + c.

Version Support[edit]

fma (genType) 4.0+
fma (genDType) 4.0+

Copyright[edit]

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. http://opencontent.org/openpub/.