The following symbolic constants are available. Their values are of type float and are accurate within the precision of a single precision floating-point number.
Constant Name | Description |
---|---|
MAXFLOAT | Value of maximum non-infinite single-precision floating-point number. |
HUGE_VALF |
A positive float constant expression. HUGE_VALF evaluates to +infinity.
Used as an error value returned by the
built-in math functions.
|
INFINITY | A constant expression of type float representing positive or unsigned infinity. |
NAN | A constant expression of type float representing a quiet NaN. |
If double precision is supported by the device, the following symbolic constant will also be available:
Constant Name | Description |
---|---|
HUGE_VAL |
A positive double constant expression. |
The following constants are also available. They are of type float and are accurate within the precision of the float type.
Constant Name | Description |
---|---|
M_E_F | Value of e |
M_LOG2E_F | Value of log2e |
M_LOG10E_F | Value of log10e |
M_LN2_F | Value of loge2 |
M_LN10_F | Value of loge10 |
M_PI_F | Value of pi |
M_PI_2_F | Value of pi / 2 |
M_PI_4_F | Value of pi / 4 |
M_1_PI_F | Value of 1 / pi |
M_2_PI_F | Value of 2 / pi |
M_2_SQRTPI_F | Value of 2 / (square root of pi) |
M_SQRT2_F | Value of square root of 2 |
M_SQRT1_2_F | Value of 1 / (square root of 2) |
If double precision is supported by the device, the following macros and constants are also available. They are of type double and are accurate within the precision of the double type.
Constant Name | Description |
---|---|
M_E | Value of e |
M_LOG2E | Value of log2e |
M_LOG10E | Value of log10e |
M_LN2 | Value of loge2 |
M_LN10 | Value of loge10 |
M_PI | Value of pi |
M_PI_2 | Value of pi / 2 |
M_PI_4 | Value of pi / 4 |
M_1_PI | Value of 1 / pi |
M_2_PI | Value of 2 / pi |
M_2_SQRTPI | Value of 2 / (square root of pi) |
M_SQRT2 | Value of square root of 2 |
M_SQRT1_2 | Value of 1 / (square root of 2) |
The following constants are also available. They are of type half and
are accurate within the precision of the half type. An application that
wants to use half and halfn
types will need to include the #pragma OPENCL EXTENSION
cl_khr_fp16 : enable
directive.
Constant | Description |
---|---|
M_E_H | Value of e |
M_LOG2E_H | Value of log2e |
M_LOG10E_H | Value of log10e |
M_LN2_H | Value of loge2 |
M_LN10_H | Value of loge10 |
M_PI_H | Value of pi |
M_PI_2_H | Value of pi / 2 |
M_PI_4_H | Value of pi / 4 |
M_1_PI_H | Value of 1 / pi |
M_2_PI_H | Value of 2 / pi |
M_2_SQRTPI_H | Value of 2 / (square root of pi) |
M_SQRT2_H | Value of square root of 2 |
M_SQRT1_2_H | Value of 1 / (square root of 2) |