Provided by: opencl-1.2-man-doc_1.0~svn22836-1.1_all bug

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