NAME¶
FP_CONTRACT,_FP_FAST_FMAF,_FP_FAST_FMA_HALF - Control expression contraction;
fast fma()
FP_CONTRACT¶
The
FP_CONTRACT pragma takes the form:
#pragma OPENCL FP_CONTRACT on-off-switch |
FP_CONTRACT can be used to allow (if the state is
on) or disallow
(if the state is
off) the implementation to contract expressions. Each
pragma can occur either outside external declarations or preceding all
explicit declarations and statements inside a compound statement.
The parameter
on-off-switch is one of ON, OFF or DEFAULT. The DEFAULT
value is ON.
When outside external declarations, the pragma takes effect from its occurrence
until another
FP_CONTRACT pragma is encountered, or until the end of
the translation unit. When inside a compound statement, the pragma takes
effect from its occurrence until another
FP_CONTRACT pragma is
encountered (including within a nested compound statement), or until the end
of the compound statement; at the end of a compound statement the state for
the pragma is restored to its condition just before the compound statement. If
this pragma is used in any other context, the behavior is undefined.
FP_FAST_FMAF AND FP_FAST_FMA¶
The
FP_FAST_FMAF macro indicates whether the
fma(3clc) function is
fast compared with direct code for single precision floating-point. If
defined, the
FP_FAST_FMAF macro shall indicate that the
fma(3clc)() function generally executes about as fast as, or faster
than, a multiply and an add of float operands.
The
FP_FAST_FMA macro indicates whether the
fma(3clc) family of
functions are fast compared with direct code for double precision
floating-point. If defined, the
FP_FAST_FMA macro shall indicate that
the
fma(3clc)() function generally executes about as fast as, or faster
than, a multiply and an add of double operands.
The
FP_FAST_FMA_HALF macro indicates whether the
fma(3clc)()
family of functions are fast compared with direct code for half precision
floating-point. If defined, the
FP_FAST_FMA_HALF macro shall indicate
that the
fma(3clc)() function generally executes about as fast as, or
faster than, a multiply and an add of half operands
SPECIFICATION¶
OpenCL Specification[1]
SEE ALSO¶
mathFunctions(3clc),
mathConstants(3clc),
macroLimits(3clc)
AUTHORS¶
The Khronos Group
COPYRIGHT¶
Copyright © 2007-2011 The Khronos Group Inc.
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and/or associated documentation files (the
"Materials"), to deal in the Materials without restriction,
including without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Materials, and to permit
persons to whom the Materials are furnished to do so, subject to the condition
that this copyright notice and permission notice shall be included in all
copies or substantial portions of the Materials.
NOTES¶
- 1.
- OpenCL Specification
page 252, section 6.12.2.1 - Floating-point macros and
pragmas