The following symbolic constants are available.

Built-in Math Constants

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. HUGE_VAL evaluates to +infinity. Used as an error value returned by the built-in math functions.

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)

Also see

Specification