1.4. Single Precision Mathematical Functions

This section describes single precision mathematical functions. To use these functions you do not need to include any additional header files in your program.

Functions

__device__ ​ float acosf ( float  x )
Calculate the arc cosine of the input argument.
__device__ ​ float acoshf ( float  x )
Calculate the nonnegative arc hyperbolic cosine of the input argument.
__device__ ​ float asinf ( float  x )
Calculate the arc sine of the input argument.
__device__ ​ float asinhf ( float  x )
Calculate the arc hyperbolic sine of the input argument.
__device__ ​ float atan2f ( float  y, float  x )
Calculate the arc tangent of the ratio of first and second input arguments.
__device__ ​ float atanf ( float  x )
Calculate the arc tangent of the input argument.
__device__ ​ float atanhf ( float  x )
Calculate the arc hyperbolic tangent of the input argument.
__device__ ​ float cbrtf ( float  x )
Calculate the cube root of the input argument.
__device__ ​ float ceilf ( float  x )
Calculate ceiling of the input argument.
__device__ ​ float copysignf ( float  x, float  y )
Create value with given magnitude, copying sign of second value.
__device__ ​ float cosf ( float  x )
Calculate the cosine of the input argument.
__device__ ​ float coshf ( float  x )
Calculate the hyperbolic cosine of the input argument.
__device__ ​ float cospif ( float  x )
Calculate the cosine of the input argument × π .
__device__ ​ float cyl_bessel_i0f ( float  x )
Calculate the value of the regular modified cylindrical Bessel function of order 0 for the input argument.
__device__ ​ float cyl_bessel_i1f ( float  x )
Calculate the value of the regular modified cylindrical Bessel function of order 1 for the input argument.
__device__ ​ float erfcf ( float  x )
Calculate the complementary error function of the input argument.
__device__ ​ float erfcinvf ( float  y )
Calculate the inverse complementary error function of the input argument.
__device__ ​ float erfcxf ( float  x )
Calculate the scaled complementary error function of the input argument.
__device__ ​ float erff ( float  x )
Calculate the error function of the input argument.
__device__ ​ float erfinvf ( float  y )
Calculate the inverse error function of the input argument.
__device__ ​ float exp10f ( float  x )
Calculate the base 10 exponential of the input argument.
__device__ ​ float exp2f ( float  x )
Calculate the base 2 exponential of the input argument.
__device__ ​ float expf ( float  x )
Calculate the base e exponential of the input argument.
__device__ ​ float expm1f ( float  x )
Calculate the base e exponential of the input argument, minus 1.
__device__ ​ float fabsf ( float  x )
Calculate the absolute value of its argument.
__device__ ​ float fdimf ( float  x, float  y )
Compute the positive difference between x and y.
__device__ ​ float fdividef ( float  x, float  y )
Divide two floating-point values.
__device__ ​ float floorf ( float  x )
Calculate the largest integer less than or equal to x.
__device__ ​ float fmaf ( float  x, float  y, float  z )
Compute x × y + z as a single operation.
__device__ ​ float fmaxf ( float  x, float  y )
Determine the maximum numeric value of the arguments.
__device__ ​ float fminf ( float  x, float  y )
Determine the minimum numeric value of the arguments.
__device__ ​ float fmodf ( float  x, float  y )
Calculate the floating-point remainder of x / y.
__device__ ​ float frexpf ( float  x, int* nptr )
Extract mantissa and exponent of a floating-point value.
__device__ ​ float hypotf ( float  x, float  y )
Calculate the square root of the sum of squares of two arguments.
__device__ ​ int ilogbf ( float  x )
Compute the unbiased integer exponent of the argument.
__device__ ​ __RETURN_TYPE isfinite ( float  a )
Determine whether argument is finite.
__device__ ​ __RETURN_TYPE isinf ( float  a )
Determine whether argument is infinite.
__device__ ​ __RETURN_TYPE isnan ( float  a )
Determine whether argument is a NaN.
__device__ ​ float j0f ( float  x )
Calculate the value of the Bessel function of the first kind of order 0 for the input argument.
__device__ ​ float j1f ( float  x )
Calculate the value of the Bessel function of the first kind of order 1 for the input argument.
__device__ ​ float jnf ( int  n, float  x )
Calculate the value of the Bessel function of the first kind of order n for the input argument.
__device__ ​ float ldexpf ( float  x, int  exp )
Calculate the value of x 2 e x p .
__device__ ​ float lgammaf ( float  x )
Calculate the natural logarithm of the absolute value of the gamma function of the input argument.
__device__ ​ long long int llrintf ( float  x )
Round input to nearest integer value.
__device__ ​ long long int llroundf ( float  x )
Round to nearest integer value.
__device__ ​ float log10f ( float  x )
Calculate the base 10 logarithm of the input argument.
__device__ ​ float log1pf ( float  x )
Calculate the value of l o g e ( 1 + x ) .
__device__ ​ float log2f ( float  x )
Calculate the base 2 logarithm of the input argument.
__device__ ​ float logbf ( float  x )
Calculate the floating-point representation of the exponent of the input argument.
__device__ ​ float logf ( float  x )
Calculate the natural logarithm of the input argument.
__device__ ​ long int lrintf ( float  x )
Round input to nearest integer value.
__device__ ​ long int lroundf ( float  x )
Round to nearest integer value.
__device__ ​ float max ( float  a, float  b )
Calculate the maximum value of the input float arguments.
__device__ ​ float min ( float  a, float  b )
Calculate the minimum value of the input float arguments.
__device__ ​ float modff ( float  x, float* iptr )
Break down the input argument into fractional and integral parts.
__device__ ​ float nanf ( const char* tagp )
Returns "Not a Number" value.
__device__ ​ float nearbyintf ( float  x )
Round the input argument to the nearest integer.
__device__ ​ float nextafterf ( float  x, float  y )
Return next representable single-precision floating-point value after argument x in the direction of y.
__device__ ​ float norm3df ( float  a, float  b, float  c )
Calculate the square root of the sum of squares of three coordinates of the argument.
__device__ ​ float norm4df ( float  a, float  b, float  c, float  d )
Calculate the square root of the sum of squares of four coordinates of the argument.
__device__ ​ float normcdff ( float  y )
Calculate the standard normal cumulative distribution function.
__device__ ​ float normcdfinvf ( float  y )
Calculate the inverse of the standard normal cumulative distribution function.
__device__ ​ float normf ( int  dim, const float* a )
Calculate the square root of the sum of squares of any number of coordinates.
__device__ ​ float powf ( float  x, float  y )
Calculate the value of first argument to the power of second argument.
__device__ ​ float rcbrtf ( float  x )
Calculate reciprocal cube root function.
__device__ ​ float remainderf ( float  x, float  y )
Compute single-precision floating-point remainder.
__device__ ​ float remquof ( float  x, float  y, int* quo )
Compute single-precision floating-point remainder and part of quotient.
__device__ ​ float rhypotf ( float  x, float  y )
Calculate one over the square root of the sum of squares of two arguments.
__device__ ​ float rintf ( float  x )
Round input to nearest integer value in floating-point.
__device__ ​ float rnorm3df ( float  a, float  b, float  c )
Calculate one over the square root of the sum of squares of three coordinates of the argument.
__device__ ​ float rnorm4df ( float  a, float  b, float  c, float  d )
Calculate one over the square root of the sum of squares of four coordinates of the argument.
__device__ ​ float rnormf ( int  dim, const float* a )
Calculate the reciprocal of square root of the sum of squares of any number of coordinates.
__device__ ​ float roundf ( float  x )
Round to nearest integer value in floating-point.
__device__ ​ float rsqrtf ( float  x )
Calculate the reciprocal of the square root of the input argument.
__device__ ​ float scalblnf ( float  x, long int  n )
Scale floating-point input by integer power of two.
__device__ ​ float scalbnf ( float  x, int  n )
Scale floating-point input by integer power of two.
__device__ ​ __RETURN_TYPE signbit ( float  a )
Return the sign bit of the input.
__device__ ​ void sincosf ( float  x, float* sptr, float* cptr )
Calculate the sine and cosine of the first input argument.
__device__ ​ void sincospif ( float  x, float* sptr, float* cptr )
Calculate the sine and cosine of the first input argument × π .
__device__ ​ float sinf ( float  x )
Calculate the sine of the input argument.
__device__ ​ float sinhf ( float  x )
Calculate the hyperbolic sine of the input argument.
__device__ ​ float sinpif ( float  x )
Calculate the sine of the input argument × π .
__device__ ​ float sqrtf ( float  x )
Calculate the square root of the input argument.
__device__ ​ float tanf ( float  x )
Calculate the tangent of the input argument.
__device__ ​ float tanhf ( float  x )
Calculate the hyperbolic tangent of the input argument.
__device__ ​ float tgammaf ( float  x )
Calculate the gamma function of the input argument.
__device__ ​ float truncf ( float  x )
Truncate input argument to the integral part.
__device__ ​ float y0f ( float  x )
Calculate the value of the Bessel function of the second kind of order 0 for the input argument.
__device__ ​ float y1f ( float  x )
Calculate the value of the Bessel function of the second kind of order 1 for the input argument.
__device__ ​ float ynf ( int  n, float  x )
Calculate the value of the Bessel function of the second kind of order n for the input argument.

Functions

__device__ ​ float acosf ( float  x )
Calculate the arc cosine of the input argument.
Returns

Result will be in radians, in the interval [0, π ] for x inside [-1, +1].

  • acosf(1) returns +0.
  • acosf(x) returns NaN for x outside [-1, +1].

Description

Calculate the principal value of the arc cosine of the input argument x.

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float acoshf ( float  x )
Calculate the nonnegative arc hyperbolic cosine of the input argument.
Returns

Result will be in the interval [0, + ].

  • acoshf(1) returns 0.
  • acoshf(x) returns NaN for x in the interval [ , 1).

Description

Calculate the nonnegative arc hyperbolic cosine of the input argument x.

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float asinf ( float  x )
Calculate the arc sine of the input argument.
Returns

Result will be in radians, in the interval [- π / 2 , + π / 2 ] for x inside [-1, +1].

  • asinf(0) returns +0.
  • asinf(x) returns NaN for x outside [-1, +1].

Description

Calculate the principal value of the arc sine of the input argument x.

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float asinhf ( float  x )
Calculate the arc hyperbolic sine of the input argument.
Returns

  • asinhf(0) returns 1.

Description

Calculate the arc hyperbolic sine of the input argument x.

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float atan2f ( float  y, float  x )
Calculate the arc tangent of the ratio of first and second input arguments.
Returns

Result will be in radians, in the interval [- π , + π ].

  • atan2f(0, 1) returns +0.

Description

Calculate the principal value of the arc tangent of the ratio of first and second input arguments y / x. The quadrant of the result is determined by the signs of inputs y and x.

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float atanf ( float  x )
Calculate the arc tangent of the input argument.
Returns

Result will be in radians, in the interval [- π / 2 , + π / 2 ].

  • atanf(0) returns +0.

Description

Calculate the principal value of the arc tangent of the input argument x.

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float atanhf ( float  x )
Calculate the arc hyperbolic tangent of the input argument.
Returns

  • atanhf( ± 0 ) returns ± 0 .
  • atanhf( ± 1 ) returns ± .
  • atanhf(x) returns NaN for x outside interval [-1, 1].

Description

Calculate the arc hyperbolic tangent of the input argument x.

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float cbrtf ( float  x )
Calculate the cube root of the input argument.
Returns

Returns x 1 / 3 .

  • cbrtf( ± 0 ) returns ± 0 .
  • cbrtf( ± ) returns ± .

Description

Calculate the cube root of x, x 1 / 3 .

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float ceilf ( float  x )
Calculate ceiling of the input argument.
Returns

Returns x expressed as a floating-point number.

  • ceilf( ± 0 ) returns ± 0 .
  • ceilf( ± ) returns ± .

Description

Compute the smallest integer value not less than x.

__device__ ​ float copysignf ( float  x, float  y )
Create value with given magnitude, copying sign of second value.
Returns

Returns a value with the magnitude of x and the sign of y.

Description

Create a floating-point value with the magnitude x and the sign of y.

__device__ ​ float cosf ( float  x )
Calculate the cosine of the input argument.
Returns

  • cosf(0) returns 1.
  • cosf( ± ) returns NaN.

Description

Calculate the cosine of the input argument x (measured in radians).

Note:
  • For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

  • This function is affected by the --use_fast_math compiler flag. See the CUDA C++ Programming Guide, Appendix E.2, Table 8 for a complete list of functions affected.

__device__ ​ float coshf ( float  x )
Calculate the hyperbolic cosine of the input argument.
Returns

  • coshf(0) returns 1.
  • coshf( ± ) returns + .

Description

Calculate the hyperbolic cosine of the input argument x.

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float cospif ( float  x )
Calculate the cosine of the input argument × π .
Returns

  • cospif( ± 0 ) returns 1.
  • cospif( ± ) returns NaN.

Description

Calculate the cosine of x × π (measured in radians), where x is the input argument.

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float cyl_bessel_i0f ( float  x )
Calculate the value of the regular modified cylindrical Bessel function of order 0 for the input argument.
Returns

Returns the value of the regular modified cylindrical Bessel function of order 0.

Description

Calculate the value of the regular modified cylindrical Bessel function of order 0 for the input argument x, I 0 ( x ) .

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float cyl_bessel_i1f ( float  x )
Calculate the value of the regular modified cylindrical Bessel function of order 1 for the input argument.
Returns

Returns the value of the regular modified cylindrical Bessel function of order 1.

Description

Calculate the value of the regular modified cylindrical Bessel function of order 1 for the input argument x, I 1 ( x ) .

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float erfcf ( float  x )
Calculate the complementary error function of the input argument.
Returns

  • erfcf( ) returns 2.
  • erfcf( + ) returns +0.

Description

Calculate the complementary error function of the input argument x, 1 - erf(x).

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float erfcinvf ( float  y )
Calculate the inverse complementary error function of the input argument.
Returns

  • erfcinvf(0) returns + .
  • erfcinvf(2) returns .

Description

Calculate the inverse complementary error function of the input argument y, for y in the interval [0, 2]. The inverse complementary error function find the value x that satisfies the equation y = erfc(x), for 0 y 2 , and x .

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float erfcxf ( float  x )
Calculate the scaled complementary error function of the input argument.
Returns

  • erfcxf( - ) returns +
  • erfcxf( + ) returns +0
  • erfcxf(x) returns + if the correctly calculated value is outside the single floating-point range.

Description

Calculate the scaled complementary error function of the input argument x, e x 2 erfc ( x ) .

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float erff ( float  x )
Calculate the error function of the input argument.
Returns

  • erff( ± 0 ) returns ± 0 .
  • erff( ± ) returns ± 1 .

Description

Calculate the value of the error function for the input argument x, 2 π 0 x e t 2 d t .

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float erfinvf ( float  y )
Calculate the inverse error function of the input argument.
Returns

  • erfinvf(1) returns + .
  • erfinvf(-1) returns .

Description

Calculate the inverse error function of the input argument y, for y in the interval [-1, 1]. The inverse error function finds the value x that satisfies the equation y = erf(x), for 1 y 1 , and x .

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float exp10f ( float  x )
Calculate the base 10 exponential of the input argument.
Returns

Returns 10 x .

Description

Calculate the base 10 exponential of the input argument x.

Note:
  • For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

  • This function is affected by the --use_fast_math compiler flag. See the CUDA C++ Programming Guide, Appendix E.2, Table 8 for a complete list of functions affected.

__device__ ​ float exp2f ( float  x )
Calculate the base 2 exponential of the input argument.
Returns

Returns 2 x .

Description

Calculate the base 2 exponential of the input argument x.

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float expf ( float  x )
Calculate the base e exponential of the input argument.
Returns

Returns e x .

Description

Calculate the base e exponential of the input argument x, e x .

Note:
  • For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

  • This function is affected by the --use_fast_math compiler flag. See the CUDA C++ Programming Guide, Appendix E.2, Table 8 for a complete list of functions affected.

__device__ ​ float expm1f ( float  x )
Calculate the base e exponential of the input argument, minus 1.
Returns

Returns e x 1 .

Description

Calculate the base e exponential of the input argument x, minus 1.

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float fabsf ( float  x )
Calculate the absolute value of its argument.
Returns

Returns the absolute value of its argument.

  • fabs( ± ) returns + .
  • fabs( ± 0 ) returns 0.

Description

Calculate the absolute value of the input argument x.

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float fdimf ( float  x, float  y )
Compute the positive difference between x and y.
Returns

Returns the positive difference between x and y.

  • fdimf(x, y) returns x - y if x > y.
  • fdimf(x, y) returns +0 if x y.

Description

Compute the positive difference between x and y. The positive difference is x - y when x > y and +0 otherwise.

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float fdividef ( float  x, float  y )
Divide two floating-point values.
Returns

Returns x / y.

Description

Compute x divided by y. If --use_fast_math is specified, use __fdividef() for higher performance, otherwise use normal division.

Note:
  • For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

  • This function is affected by the --use_fast_math compiler flag. See the CUDA C++ Programming Guide, Appendix E.2, Table 8 for a complete list of functions affected.

__device__ ​ float floorf ( float  x )
Calculate the largest integer less than or equal to x.
Returns

Returns x expressed as a floating-point number.

  • floorf( ± ) returns ± .
  • floorf( ± 0 ) returns ± 0 .

Description

Calculate the largest integer value which is less than or equal to x.

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float fmaf ( float  x, float  y, float  z )
Compute x × y + z as a single operation.
Returns

Returns the rounded value of x × y + z as a single operation.

  • fmaf( ± , ± 0 , z) returns NaN.
  • fmaf( ± 0 , ± , z) returns NaN.
  • fmaf(x, y, ) returns NaN if x × y is an exact + .
  • fmaf(x, y, + ) returns NaN if x × y is an exact .

Description

Compute the value of x × y + z as a single ternary operation. After computing the value to infinite precision, the value is rounded once.

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float fmaxf ( float  x, float  y )
Determine the maximum numeric value of the arguments.
Returns

Returns the maximum numeric values of the arguments x and y.

  • If both arguments are NaN, returns NaN.
  • If one argument is NaN, returns the numeric argument.

Description

Determines the maximum numeric value of the arguments x and y. Treats NaN arguments as missing data. If one argument is a NaN and the other is legitimate numeric value, the numeric value is chosen.

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float fminf ( float  x, float  y )
Determine the minimum numeric value of the arguments.
Returns

Returns the minimum numeric value of the arguments x and y.

  • If both arguments are NaN, returns NaN.
  • If one argument is NaN, returns the numeric argument.

Description

Determines the minimum numeric value of the arguments x and y. Treats NaN arguments as missing data. If one argument is a NaN and the other is legitimate numeric value, the numeric value is chosen.

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float fmodf ( float  x, float  y )
Calculate the floating-point remainder of x / y.
Returns

  • Returns the floating-point remainder of x / y.
  • fmodf( ± 0 , y) returns ± 0 if y is not zero.
  • fmodf(x, ± ) returns x if x is finite.
  • fmodf(x, y) returns NaN if x is ± or y is zero.
  • If either argument is NaN, NaN is returned.

Description

Calculate the floating-point remainder of x / y. The floating-point remainder of the division operation x / y calculated by this function is exactly the value x - n*y, where n is x / y with its fractional part truncated. The computed value will have the same sign as x, and its magnitude will be less than the magnitude of y.

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float frexpf ( float  x, int* nptr )
Extract mantissa and exponent of a floating-point value.
Returns

Returns the fractional component m.

  • frexp(0, nptr) returns 0 for the fractional component and zero for the integer component.
  • frexp( ± 0 , nptr) returns ± 0 and stores zero in the location pointed to by nptr.
  • frexp( ± , nptr) returns ± and stores an unspecified value in the location to which nptr points.
  • frexp(NaN, y) returns a NaN and stores an unspecified value in the location to which nptr points.

Description

Decomposes the floating-point value x into a component m for the normalized fraction element and another term n for the exponent. The absolute value of m will be greater than or equal to 0.5 and less than 1.0 or it will be equal to 0; x = m 2 n . The integer exponent n will be stored in the location to which nptr points.

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float hypotf ( float  x, float  y )
Calculate the square root of the sum of squares of two arguments.
Returns

Returns the length of the hypotenuse x 2 + y 2 . If the correct value would overflow, returns + . If the correct value would underflow, returns 0.

Description

Calculates the length of the hypotenuse of a right triangle whose two sides have lengths x and y without undue overflow or underflow.

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ int ilogbf ( float  x )
Compute the unbiased integer exponent of the argument.
Returns

  • If successful, returns the unbiased exponent of the argument.
  • ilogbf(0) returns INT_MIN.
  • ilogbf(NaN) returns INT_MIN.
  • ilogbf(x) returns INT_MAX if x is or the correct value is greater than INT_MAX.
  • ilogbf(x) returns INT_MIN if the correct value is less than INT_MIN.
  • Note: above behavior does not take into account FP_ILOGB0 nor FP_ILOGBNAN.

Description

Calculates the unbiased integer exponent of the input argument x.

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ __RETURN_TYPE isfinite ( float  a )
Determine whether argument is finite.
Returns

  • With Visual Studio 2013 host compiler: __RETURN_TYPE is 'bool'. Returns true if and only if a is a finite value.
  • With other host compilers: __RETURN_TYPE is 'int'. Returns a nonzero value if and only if a is a finite value.

Description

Determine whether the floating-point value a is a finite value (zero, subnormal, or normal and not infinity or NaN).

__device__ ​ __RETURN_TYPE isinf ( float  a )
Determine whether argument is infinite.
Returns

  • With Visual Studio 2013 host compiler: __RETURN_TYPE is 'bool'. Returns true if and only if a is a infinite value.
  • With other host compilers: __RETURN_TYPE is 'int'. Returns a nonzero value if and only if a is a infinite value.

Description

Determine whether the floating-point value a is an infinite value (positive or negative).

__device__ ​ __RETURN_TYPE isnan ( float  a )
Determine whether argument is a NaN.
Returns

  • With Visual Studio 2013 host compiler: __RETURN_TYPE is 'bool'. Returns true if and only if a is a NaN value.
  • With other host compilers: __RETURN_TYPE is 'int'. Returns a nonzero value if and only if a is a NaN value.

Description

Determine whether the floating-point value a is a NaN.

__device__ ​ float j0f ( float  x )
Calculate the value of the Bessel function of the first kind of order 0 for the input argument.
Returns

Returns the value of the Bessel function of the first kind of order 0.

  • j0f( ± ) returns +0.
  • j0f(NaN) returns NaN.

Description

Calculate the value of the Bessel function of the first kind of order 0 for the input argument x, J 0 ( x ) .

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float j1f ( float  x )
Calculate the value of the Bessel function of the first kind of order 1 for the input argument.
Returns

Returns the value of the Bessel function of the first kind of order 1.

  • j1f( ± 0 ) returns ± 0 .
  • j1f( ± ) returns ± 0 .
  • j1f(NaN) returns NaN.

Description

Calculate the value of the Bessel function of the first kind of order 1 for the input argument x, J 1 ( x ) .

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float jnf ( int  n, float  x )
Calculate the value of the Bessel function of the first kind of order n for the input argument.
Returns

Returns the value of the Bessel function of the first kind of order n.

  • jnf(n, NaN) returns NaN.
  • jnf(n, x) returns NaN for n < 0.
  • jnf(n, + ) returns +0.

Description

Calculate the value of the Bessel function of the first kind of order n for the input argument x, J n ( x ) .

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float ldexpf ( float  x, int  exp )
Calculate the value of x 2 e x p .
Returns

  • ldexpf(x) returns ± if the correctly calculated value is outside the single floating-point range.

Description

Calculate the value of x 2 e x p of the input arguments x and exp.

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float lgammaf ( float  x )
Calculate the natural logarithm of the absolute value of the gamma function of the input argument.
Returns

  • lgammaf(1) returns +0.
  • lgammaf(2) returns +0.
  • lgammaf(x) returns ± if the correctly calculated value is outside the single floating-point range.
  • lgammaf(x) returns + if x 0 and x is an integer.
  • lgammaf( ) returns .
  • lgammaf( + ) returns + .

Description

Calculate the natural logarithm of the absolute value of the gamma function of the input argument x, namely the value of l o g e |   0 e t t x 1 d t | .

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ long long int llrintf ( float  x )
Round input to nearest integer value.
Returns

Returns rounded integer value.

Description

Round x to the nearest integer value, with halfway cases rounded to the nearest even integer value. If the result is outside the range of the return type, the result is undefined.

__device__ ​ long long int llroundf ( float  x )
Round to nearest integer value.
Returns

Returns rounded integer value.

Description

Round x to the nearest integer value, with halfway cases rounded away from zero. If the result is outside the range of the return type, the result is undefined.

Note:

This function may be slower than alternate rounding methods. See llrintf().

__device__ ​ float log10f ( float  x )
Calculate the base 10 logarithm of the input argument.
Returns

  • log10f( ± 0 ) returns .
  • log10f(1) returns +0.
  • log10f(x) returns NaN for x < 0.
  • log10f( + ) returns + .

Description

Calculate the base 10 logarithm of the input argument x.

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float log1pf ( float  x )
Calculate the value of l o g e ( 1 + x ) .
Returns

  • log1pf( ± 0 ) returns ± 0 .
  • log1pf(-1) returns .
  • log1pf(x) returns NaN for x < -1.
  • log1pf( + ) returns + .

Description

Calculate the value of l o g e ( 1 + x ) of the input argument x.

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float log2f ( float  x )
Calculate the base 2 logarithm of the input argument.
Returns

  • log2f( ± 0 ) returns .
  • log2f(1) returns +0.
  • log2f(x) returns NaN for x < 0.
  • log2f( + ) returns + .

Description

Calculate the base 2 logarithm of the input argument x.

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float logbf ( float  x )
Calculate the floating-point representation of the exponent of the input argument.
Returns

  • logbf ± 0 returns
  • logbf + returns +

Description

Calculate the floating-point representation of the exponent of the input argument x.

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float logf ( float  x )
Calculate the natural logarithm of the input argument.
Returns

  • logf( ± 0 ) returns .
  • logf(1) returns +0.
  • logf(x) returns NaN for x < 0.
  • logf( + ) returns + .

Description

Calculate the natural logarithm of the input argument x.

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ long int lrintf ( float  x )
Round input to nearest integer value.
Returns

Returns rounded integer value.

Description

Round x to the nearest integer value, with halfway cases rounded to the nearest even integer value. If the result is outside the range of the return type, the result is undefined.

__device__ ​ long int lroundf ( float  x )
Round to nearest integer value.
Returns

Returns rounded integer value.

Description

Round x to the nearest integer value, with halfway cases rounded away from zero. If the result is outside the range of the return type, the result is undefined.

Note:

This function may be slower than alternate rounding methods. See lrintf().

__device__ ​ float max ( float  a, float  b )
Calculate the maximum value of the input float arguments.
Description

Calculate the maximum value of the arguments a and b. Behavior is equivalent to fmaxf() function.

Note, this is different from std:: specification

__device__ ​ float min ( float  a, float  b )
Calculate the minimum value of the input float arguments.
Description

Calculate the minimum value of the arguments a and b. Behavior is equivalent to fminf() function.

Note, this is different from std:: specification

__device__ ​ float modff ( float  x, float* iptr )
Break down the input argument into fractional and integral parts.
Returns

  • modff( ± x , iptr) returns a result with the same sign as x.
  • modff( ± , iptr) returns ± 0 and stores ± in the object pointed to by iptr.
  • modff(NaN, iptr) stores a NaN in the object pointed to by iptr and returns a NaN.

Description

Break down the argument x into fractional and integral parts. The integral part is stored in the argument iptr. Fractional and integral parts are given the same sign as the argument x.

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float nanf ( const char* tagp )
Returns "Not a Number" value.
Returns

  • nanf(tagp) returns NaN.

Description

Return a representation of a quiet NaN. Argument tagp selects one of the possible representations.

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float nearbyintf ( float  x )
Round the input argument to the nearest integer.
Returns

  • nearbyintf( ± 0 ) returns ± 0 .
  • nearbyintf( ± ) returns ± .

Description

Round argument x to an integer value in single precision floating-point format.

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float nextafterf ( float  x, float  y )
Return next representable single-precision floating-point value after argument x in the direction of y.
Returns

  • nextafterf(x, y) = y if x equals y
  • nextafterf(x, y) = NaN if either x or y are NaN

Description

Calculate the next representable single-precision floating-point value following x in the direction of y. For example, if y is greater than x, nextafterf() returns the smallest representable number greater than x

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float norm3df ( float  a, float  b, float  c )
Calculate the square root of the sum of squares of three coordinates of the argument.
Returns

Returns the length of the 3D p.x 2 + p.y 2 + p.z 2 . If the correct value would overflow, returns + . If the correct value would underflow, returns 0.

Description

Calculates the length of three dimensional vector p in Euclidean space without undue overflow or underflow.

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float norm4df ( float  a, float  b, float  c, float  d )
Calculate the square root of the sum of squares of four coordinates of the argument.
Returns

Returns the length of the 4D vector p.x 2 + p.y 2 + p.z 2 + p.t 2 . If the correct value would overflow, returns + . If the correct value would underflow, returns 0.

Description

Calculates the length of four dimensional vector p in Euclidean space without undue overflow or underflow.

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float normcdff ( float  y )
Calculate the standard normal cumulative distribution function.
Returns

  • normcdff( + ) returns 1
  • normcdff( ) returns +0

Description

Calculate the cumulative distribution function of the standard normal distribution for input argument y, Φ ( y ) .

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float normcdfinvf ( float  y )
Calculate the inverse of the standard normal cumulative distribution function.
Returns

  • normcdfinvf(0) returns .
  • normcdfinvf(1) returns + .
  • normcdfinvf(x) returns NaN if x is not in the interval [0,1].

Description

Calculate the inverse of the standard normal cumulative distribution function for input argument y, Φ 1 ( y ) . The function is defined for input values in the interval ( 0 , 1 ) .

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float normf ( int  dim, const float* a )
Calculate the square root of the sum of squares of any number of coordinates.
Returns

Returns the length of the vector p.1 2 + p.2 2 + ... + p.dim 2 . If the correct value would overflow, returns + . If the correct value would underflow, returns 0.

Description

Calculates the length of a vector p, dimension of which is passed as an argument without undue overflow or underflow.

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float powf ( float  x, float  y )
Calculate the value of first argument to the power of second argument.
Returns

  • powf( ± 0 , y) returns ± for y an integer less than 0.
  • powf( ± 0 , y) returns ± 0 for y an odd integer greater than 0.
  • powf( ± 0 , y) returns +0 for y > 0 and not and odd integer.
  • powf(-1, ± ) returns 1.
  • powf(+1, y) returns 1 for any y, even a NaN.
  • powf(x, ± 0 ) returns 1 for any x, even a NaN.
  • powf(x, y) returns a NaN for finite x < 0 and finite non-integer y.
  • powf(x, ) returns + for | x | < 1 .
  • powf(x, ) returns +0 for | x | > 1 .
  • powf(x, + ) returns +0 for | x | < 1 .
  • powf(x, + ) returns + for | x | > 1 .
  • powf( , y) returns -0 for y an odd integer less than 0.
  • powf( , y) returns +0 for y < 0 and not an odd integer.
  • powf( , y) returns for y an odd integer greater than 0.
  • powf( , y) returns + for y > 0 and not an odd integer.
  • powf( + , y) returns +0 for y < 0.
  • powf( + , y) returns + for y > 0.

Description

Calculate the value of x to the power of y.

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float rcbrtf ( float  x )
Calculate reciprocal cube root function.
Returns

  • rcbrt( ± 0 ) returns ± .
  • rcbrt( ± ) returns ± 0 .

Description

Calculate reciprocal cube root function of x

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float remainderf ( float  x, float  y )
Compute single-precision floating-point remainder.
Returns

  • remainderf(x, 0) returns NaN.
  • remainderf( ± , y) returns NaN.
  • remainderf(x, ± ) returns x for finite x.

Description

Compute single-precision floating-point remainder r of dividing x by y for nonzero y. Thus r = x n y . The value n is the integer value nearest x y . In the case when | n x y | = 1 2 , the even n value is chosen.

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float remquof ( float  x, float  y, int* quo )
Compute single-precision floating-point remainder and part of quotient.
Returns

Returns the remainder.

  • remquof(x, 0, quo) returns NaN.
  • remquof( ± , y, quo) returns NaN.
  • remquof(x, ± , quo) returns x.

Description

Compute a double-precision floating-point remainder in the same way as the remainderf() function. Argument quo returns part of quotient upon division of x by y. Value quo has the same sign as x y and may not be the exact quotient but agrees with the exact quotient in the low order 3 bits.

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float rhypotf ( float  x, float  y )
Calculate one over the square root of the sum of squares of two arguments.
Returns

Returns one over the length of the hypotenuse 1 x 2 + y 2 . If the square root would overflow, returns 0. If the square root would underflow, returns + .

Description

Calculates one over the length of the hypotenuse of a right triangle whose two sides have lengths x and y without undue overflow or underflow.

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float rintf ( float  x )
Round input to nearest integer value in floating-point.
Returns

Returns rounded integer value.

Description

Round x to the nearest integer value in floating-point format, with halfway cases rounded to the nearest even integer value.

__device__ ​ float rnorm3df ( float  a, float  b, float  c )
Calculate one over the square root of the sum of squares of three coordinates of the argument.
Returns

Returns one over the length of the 3D vector 1 p.x 2 + p.y 2 + p.z 2 . If the square root would overflow, returns 0. If the square root would underflow, returns + .

Description

Calculates one over the length of three dimension vector p in Euclidean space without undue overflow or underflow.

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float rnorm4df ( float  a, float  b, float  c, float  d )
Calculate one over the square root of the sum of squares of four coordinates of the argument.
Returns

Returns one over the length of the 3D vector 1 p.x 2 + p.y 2 + p.z 2 + p.z 2 . If the square root would overflow, returns 0. If the square root would underflow, returns + .

Description

Calculates one over the length of four dimension vector p in Euclidean space without undue overflow or underflow.

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float rnormf ( int  dim, const float* a )
Calculate the reciprocal of square root of the sum of squares of any number of coordinates.
Returns

Returns one over the length of the vector 1 p.1 2 + p.2 2 + ... + p.dim 2 . If the square root would overflow, returns 0. If the square root would underflow, returns + .

Description

Calculates one over the length of vector p, dimension of which is passed as an argument, in Euclidean space without undue overflow or underflow.

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float roundf ( float  x )
Round to nearest integer value in floating-point.
Returns

Returns rounded integer value.

Description

Round x to the nearest integer value in floating-point format, with halfway cases rounded away from zero.

Note:

This function may be slower than alternate rounding methods. See rintf().

__device__ ​ float rsqrtf ( float  x )
Calculate the reciprocal of the square root of the input argument.
Returns

Returns 1 / x .

  • rsqrtf( + ) returns +0.
  • rsqrtf( ± 0 ) returns ± .
  • rsqrtf(x) returns NaN if x is less than 0.

Description

Calculate the reciprocal of the nonnegative square root of x, 1 / x .

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float scalblnf ( float  x, long int  n )
Scale floating-point input by integer power of two.
Returns

Returns x * 2 n .

  • scalblnf( ± 0 , n) returns ± 0 .
  • scalblnf(x, 0) returns x.
  • scalblnf( ± , n) returns ± .

Description

Scale x by 2 n by efficient manipulation of the floating-point exponent.

__device__ ​ float scalbnf ( float  x, int  n )
Scale floating-point input by integer power of two.
Returns

Returns x * 2 n .

  • scalbnf( ± 0 , n) returns ± 0 .
  • scalbnf(x, 0) returns x.
  • scalbnf( ± , n) returns ± .

Description

Scale x by 2 n by efficient manipulation of the floating-point exponent.

__device__ ​ __RETURN_TYPE signbit ( float  a )
Return the sign bit of the input.
Returns

Reports the sign bit of all values including infinities, zeros, and NaNs.

  • With Visual Studio 2013 host compiler: __RETURN_TYPE is 'bool'. Returns true if and only if a is negative.
  • With other host compilers: __RETURN_TYPE is 'int'. Returns a nonzero value if and only if a is negative.

Description

Determine whether the floating-point value a is negative.

__device__ ​ void sincosf ( float  x, float* sptr, float* cptr )
Calculate the sine and cosine of the first input argument.
Returns

  • none

Description

Calculate the sine and cosine of the first input argument x (measured in radians). The results for sine and cosine are written into the second argument, sptr, and, respectively, third argument, cptr.

See also:

sinf() and cosf().

Note:
  • For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

  • This function is affected by the --use_fast_math compiler flag. See the CUDA C++ Programming Guide, Appendix E.2, Table 8 for a complete list of functions affected.

__device__ ​ void sincospif ( float  x, float* sptr, float* cptr )
Calculate the sine and cosine of the first input argument × π .
Returns

  • none

Description

Calculate the sine and cosine of the first input argument, x (measured in radians), × π . The results for sine and cosine are written into the second argument, sptr, and, respectively, third argument, cptr.

See also:

sinpif() and cospif().

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float sinf ( float  x )
Calculate the sine of the input argument.
Returns

  • sinf( ± 0 ) returns ± 0 .
  • sinf( ± ) returns NaN.

Description

Calculate the sine of the input argument x (measured in radians).

Note:
  • For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

  • This function is affected by the --use_fast_math compiler flag. See the CUDA C++ Programming Guide, Appendix E.2, Table 8 for a complete list of functions affected.

__device__ ​ float sinhf ( float  x )
Calculate the hyperbolic sine of the input argument.
Returns

  • sinhf( ± 0 ) returns ± 0 .
  • sinhf( ± ) returns ± .

Description

Calculate the hyperbolic sine of the input argument x.

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float sinpif ( float  x )
Calculate the sine of the input argument × π .
Returns

  • sinpif( ± 0 ) returns ± 0 .
  • sinpif( ± ) returns NaN.

Description

Calculate the sine of x × π (measured in radians), where x is the input argument.

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float sqrtf ( float  x )
Calculate the square root of the input argument.
Returns

Returns x .

  • sqrtf( ± 0 ) returns ± 0 .
  • sqrtf( + ) returns + .
  • sqrtf(x) returns NaN if x is less than 0.

Description

Calculate the nonnegative square root of x, x .

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float tanf ( float  x )
Calculate the tangent of the input argument.
Returns

  • tanf( ± 0 ) returns ± 0 .
  • tanf( ± ) returns NaN.

Description

Calculate the tangent of the input argument x (measured in radians).

Note:
  • For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

  • This function is affected by the --use_fast_math compiler flag. See the CUDA C++ Programming Guide, Appendix E.2, Table 8 for a complete list of functions affected.

__device__ ​ float tanhf ( float  x )
Calculate the hyperbolic tangent of the input argument.
Returns

  • tanhf( ± 0 ) returns ± 0 .

Description

Calculate the hyperbolic tangent of the input argument x.

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float tgammaf ( float  x )
Calculate the gamma function of the input argument.
Returns

  • tgammaf( ± 0 ) returns ± .
  • tgammaf(2) returns +1.
  • tgammaf(x) returns ± if the correctly calculated value is outside the single floating-point range.
  • tgammaf(x) returns NaN if x < 0 and x is an integer.
  • tgammaf( ) returns NaN.
  • tgammaf( + ) returns + .

Description

Calculate the gamma function of the input argument x, namely the value of 0 e t t x 1 d t .

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float truncf ( float  x )
Truncate input argument to the integral part.
Returns

Returns truncated integer value.

Description

Round x to the nearest integer value that does not exceed x in magnitude.

__device__ ​ float y0f ( float  x )
Calculate the value of the Bessel function of the second kind of order 0 for the input argument.
Returns

Returns the value of the Bessel function of the second kind of order 0.

  • y0f(0) returns .
  • y0f(x) returns NaN for x < 0.
  • y0f( + ) returns +0.
  • y0f(NaN) returns NaN.

Description

Calculate the value of the Bessel function of the second kind of order 0 for the input argument x, Y 0 ( x ) .

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float y1f ( float  x )
Calculate the value of the Bessel function of the second kind of order 1 for the input argument.
Returns

Returns the value of the Bessel function of the second kind of order 1.

  • y1f(0) returns .
  • y1f(x) returns NaN for x < 0.
  • y1f( + ) returns +0.
  • y1f(NaN) returns NaN.

Description

Calculate the value of the Bessel function of the second kind of order 1 for the input argument x, Y 1 ( x ) .

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.

__device__ ​ float ynf ( int  n, float  x )
Calculate the value of the Bessel function of the second kind of order n for the input argument.
Returns

Returns the value of the Bessel function of the second kind of order n.

  • ynf(n, x) returns NaN for n < 0.
  • ynf(n, 0) returns .
  • ynf(n, x) returns NaN for x < 0.
  • ynf(n, + ) returns +0.
  • ynf(n, NaN) returns NaN.

Description

Calculate the value of the Bessel function of the second kind of order n for the input argument x, Y n ( x ) .

Note:

For accuracy information for this function see the CUDA C++ Programming Guide, Appendix E.1, Table 6.