This document includes math equations (highlighted in red) which are best viewed with Firefox version 4.0 or higher, or another MathML-aware browser. There is also a PDF version of this document.
CUDA Math API (PDF) - CUDA Toolkit v5.5 (older) - Last updated July 19, 2013 - Send Feedback

1.3. Double Precision Mathematical Functions

This section describes double precision mathematical functions.

Functions

__device__ ​ double acos ( double  x )
Calculate the arc cosine of the input argument.
__device__ ​ double acosh ( double  x )
Calculate the nonnegative arc hyperbolic cosine of the input argument.
__device__ ​ double asin ( double  x )
Calculate the arc sine of the input argument.
__device__ ​ double asinh ( double  x )
Calculate the arc hyperbolic sine of the input argument.
__device__ ​ double atan ( double  x )
Calculate the arc tangent of the input argument.
__device__ ​ double atan2 ( double  x, double  y )
Calculate the arc tangent of the ratio of first and second input arguments.
__device__ ​ double atanh ( double  x )
Calculate the arc hyperbolic tangent of the input argument.
__device__ ​ double cbrt ( double  x )
Calculate the cube root of the input argument.
__device__ ​ double ceil ( double  x )
Calculate ceiling of the input argument.
__device__ ​ double copysign ( double  x, double  y )
Create value with given magnitude, copying sign of second value.
__device__ ​ double cos ( double  x )
Calculate the cosine of the input argument.
__device__ ​ double cosh ( double  x )
Calculate the hyperbolic cosine of the input argument.
__device__ ​ double cospi ( double  x )
Calculate the cosine of the input argument × π .
__device__ ​ double erf ( double  x )
Calculate the error function of the input argument.
__device__ ​ double erfc ( double  x )
Calculate the complementary error function of the input argument.
__device__ ​ double erfcinv ( double  y )
Calculate the inverse complementary error function of the input argument.
__device__ ​ double erfcx ( double  x )
Calculate the scaled complementary error function of the input argument.
__device__ ​ double erfinv ( double  y )
Calculate the inverse error function of the input argument.
__device__ ​ double exp ( double  x )
Calculate the base e exponential of the input argument.
__device__ ​ double exp10 ( double  x )
Calculate the base 10 exponential of the input argument.
__device__ ​ double exp2 ( double  x )
Calculate the base 2 exponential of the input argument.
__device__ ​ double expm1 ( double  x )
Calculate the base e exponential of the input argument, minus 1.
__device__ ​ double fabs ( double  x )
Calculate the absolute value of the input argument.
__device__ ​ double fdim ( double  x, double  y )
Compute the positive difference between x and y.
__device__ ​ double floor ( double  x )
Calculate the largest integer less than or equal to x.
__device__ ​ double fma ( double  x, double  y, double  z )
Compute x × y + z as a single operation.
__device__ ​ double fmax ( double , double )
Determine the maximum numeric value of the arguments.
__device__ ​ double fmin ( double  x, double  y )
Determine the minimum numeric value of the arguments.
__device__ ​ double fmod ( double  x, double  y )
Calculate the floating-point remainder of x / y.
__device__ ​ double frexp ( double  x, int* nptr )
Extract mantissa and exponent of a floating-point value.
__device__ ​ double hypot ( double  x, double  y )
Calculate the square root of the sum of squares of two arguments.
__device__ ​ int ilogb ( double  x )
Compute the unbiased integer exponent of the argument.
__device__ ​ int isfinite ( double  a )
Determine whether argument is finite.
__device__ ​ int isinf ( double  a )
Determine whether argument is infinite.
__device__ ​ int isnan ( double  a )
Determine whether argument is a NaN.
__device__ ​ double j0 ( double  x )
Calculate the value of the Bessel function of the first kind of order 0 for the input argument.
__device__ ​ double j1 ( double  x )
Calculate the value of the Bessel function of the first kind of order 1 for the input argument.
__device__ ​ double jn ( int  n, double  x )
Calculate the value of the Bessel function of the first kind of order n for the input argument.
__device__ ​ double ldexp ( double  x, int  exp )
Calculate the value of x 2 e x p .
__device__ ​ double lgamma ( double  x )
Calculate the natural logarithm of the absolute value of the gamma function of the input argument.
__device__ ​ long long int llrint ( double  x )
Round input to nearest integer value.
__device__ ​ long long int llround ( double  x )
Round to nearest integer value.
__device__ ​ double log ( double  x )
Calculate the base e logarithm of the input argument.
__device__ ​ double log10 ( double  x )
Calculate the base 10 logarithm of the input argument.
__device__ ​ double log1p ( double  x )
Calculate the value of l o g e ( 1 + x ) .
__device__ ​ double log2 ( double  x )
Calculate the base 2 logarithm of the input argument.
__device__ ​ double logb ( double  x )
Calculate the floating point representation of the exponent of the input argument.
__device__ ​ long int lrint ( double  x )
Round input to nearest integer value.
__device__ ​ long int lround ( double  x )
Round to nearest integer value.
__device__ ​ double modf ( double  x, double* iptr )
Break down the input argument into fractional and integral parts.
__device__ ​ double nan ( const char* tagp )
Returns "Not a Number" value.
__device__ ​ double nearbyint ( double  x )
Round the input argument to the nearest integer.
__device__ ​ double nextafter ( double  x, double  y )
Return next representable double-precision floating-point value after argument.
__device__ ​ double normcdf ( double  y )
Calculate the standard normal cumulative distribution function.
__device__ ​ double normcdfinv ( double  y )
Calculate the inverse of the standard normal cumulative distribution function.
__device__ ​ double pow ( double  x, double  y )
Calculate the value of first argument to the power of second argument.
__device__ ​ double rcbrt ( double  x )
Calculate reciprocal cube root function.
__device__ ​ double remainder ( double  x, double  y )
Compute double-precision floating-point remainder.
__device__ ​ double remquo ( double  x, double  y, int* quo )
Compute double-precision floating-point remainder and part of quotient.
__device__ ​ double rint ( double  x )
Round to nearest integer value in floating-point.
__device__ ​ double round ( double  x )
Round to nearest integer value in floating-point.
__device__ ​ double rsqrt ( double  x )
Calculate the reciprocal of the square root of the input argument.
__device__ ​ double scalbln ( double  x, long int  n )
Scale floating-point input by integer power of two.
__device__ ​ double scalbn ( double  x, int  n )
Scale floating-point input by integer power of two.
__device__ ​ int signbit ( double  a )
Return the sign bit of the input.
__device__ ​ double sin ( double  x )
Calculate the sine of the input argument.
__device__ ​ void sincos ( double  x, double* sptr, double* cptr )
Calculate the sine and cosine of the first input argument.
__device__ ​ void sincospi ( double  x, double* sptr, double* cptr )
Calculate the sine and cosine of the first input argument × π .
__device__ ​ double sinh ( double  x )
Calculate the hyperbolic sine of the input argument.
__device__ ​ double sinpi ( double  x )
Calculate the sine of the input argument × π .
__device__ ​ double sqrt ( double  x )
Calculate the square root of the input argument.
__device__ ​ double tan ( double  x )
Calculate the tangent of the input argument.
__device__ ​ double tanh ( double  x )
Calculate the hyperbolic tangent of the input argument.
__device__ ​ double tgamma ( double  x )
Calculate the gamma function of the input argument.
__device__ ​ double trunc ( double  x )
Truncate input argument to the integral part.
__device__ ​ double y0 ( double  x )
Calculate the value of the Bessel function of the second kind of order 0 for the input argument.
__device__ ​ double y1 ( double  x )
Calculate the value of the Bessel function of the second kind of order 1 for the input argument.
__device__ ​ double yn ( int  n, double  x )
Calculate the value of the Bessel function of the second kind of order n for the input argument.

Functions

__device__ ​ double acos ( double  x )
Calculate the arc cosine of the input argument.
Returns

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

  • acos(1) returns +0.
  • acos(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 C, Table C-2.

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

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

  • acosh(1) returns 0.
  • acosh(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 C, Table C-2.

__device__ ​ double asin ( double  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].

  • asin(0) returns +0.
  • asin(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 C, Table C-2.

__device__ ​ double asinh ( double  x )
Calculate the arc hyperbolic sine of the input argument.
Returns

  • asinh(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 C, Table C-2.

__device__ ​ double atan ( double  x )
Calculate the arc tangent of the input argument.
Returns

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

  • atan(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 C, Table C-2.

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

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

  • atan2(0, 1) returns +0.

Description

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

Note:

For accuracy information for this function see the CUDA C Programming Guide, Appendix C, Table C-2.

__device__ ​ double atanh ( double  x )
Calculate the arc hyperbolic tangent of the input argument.
Returns

  • atanh( ± 0 ) returns ± 0 .
  • atanh( ± 1 ) returns ± .
  • atanh(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 C, Table C-2.

__device__ ​ double cbrt ( double  x )
Calculate the cube root of the input argument.
Returns

Returns x 1 / 3 .

  • cbrt( ± 0 ) returns ± 0 .
  • cbrt( ± ) 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 C, Table C-2.

__device__ ​ double ceil ( double  x )
Calculate ceiling of the input argument.
Returns

Returns x expressed as a floating-point number.

  • ceil( ± 0 ) returns ± 0 .
  • ceil( ± ) returns ± .

Description

Compute the smallest integer value not less than x.

__device__ ​ double copysign ( double  x, double  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__ ​ double cos ( double  x )
Calculate the cosine of the input argument.
Returns

  • cos( ± 0 ) returns 1.
  • cos( ± ) 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 C, Table C-2.

__device__ ​ double cosh ( double  x )
Calculate the hyperbolic cosine of the input argument.
Returns

  • cosh(0) returns 1.
  • cosh( ± ) 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 C, Table C-2.

__device__ ​ double cospi ( double  x )
Calculate the cosine of the input argument × π .
Returns

  • cospi( ± 0 ) returns 1.
  • cospi( ± ) 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 C, Table C-2.

__device__ ​ double erf ( double  x )
Calculate the error function of the input argument.
Returns

  • erf( ± 0 ) returns ± 0 .
  • erf( ± ) 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 C, Table C-2.

__device__ ​ double erfc ( double  x )
Calculate the complementary error function of the input argument.
Returns

  • erfc( ) returns 2.
  • erfc( + ) 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 C, Table C-2.

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

  • erfcinv(0) returns + .
  • erfcinv(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 C, Table C-2.

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

  • erfcx( - ) returns +
  • erfcx( + ) returns +0
  • erfcx(x) returns + if the correctly calculated value is outside the double 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 C, Table C-2.

__device__ ​ double erfinv ( double  y )
Calculate the inverse error function of the input argument.
Returns

  • erfinv(1) returns + .
  • erfinv(-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 C, Table C-2.

__device__ ​ double exp ( double  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.

Note:

For accuracy information for this function see the CUDA C Programming Guide, Appendix C, Table C-2.

__device__ ​ double exp10 ( double  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 C, Table C-2.

__device__ ​ double exp2 ( double  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 C, Table C-2.

__device__ ​ double expm1 ( double  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 C, Table C-2.

__device__ ​ double fabs ( double  x )
Calculate the absolute value of the input argument.
Returns

Returns the absolute value of the input 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 C, Table C-2.

__device__ ​ double fdim ( double  x, double  y )
Compute the positive difference between x and y.
Returns

Returns the positive difference between x and y.

  • fdim(x, y) returns x - y if x > y.
  • fdim(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 C, Table C-1.

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

Returns l o g e ( 1 + x ) expressed as a floating-point number.

  • floor( ± ) returns ± .
  • floor( ± 0 ) returns ± 0 .

Description

Calculates 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 C, Table C-2.

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

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

  • fma( ± , ± 0 , z) returns NaN.
  • fma( ± 0 , ± , z) returns NaN.
  • fma(x, y, ) returns NaN if x × y is an exact + .
  • fma(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 C, Table C-2.

__device__ ​ double fmax ( double , double )
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 C, Table C-2.

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

Returns the minimum 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 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 C, Table C-2.

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

  • Returns the floating point remainder of x / y.
  • fmod( ± 0 , y) returns ± 0 if y is not zero.
  • fmod(x, y) returns NaN and raised an invalid floating point exception if x is ± or y is zero.
  • fmod(x, y) returns zero if y is zero or the result would overflow.
  • fmod(x, ± ) returns x if x is finite.
  • fmod(x, 0) returns NaN.

Description

Calculate the floating-point remainder of x / y. The absolute value of the computed value is always less than y's absolute value and will have the same sign as x.

Note:

For accuracy information for this function see the CUDA C Programming Guide, Appendix C, Table C-2.

__device__ ​ double frexp ( double  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

Decompose 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 C, Table C-2.

__device__ ​ double hypot ( double  x, double  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

Calculate 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 C, Table C-2.

__device__ ​ int ilogb ( double  x )
Compute the unbiased integer exponent of the argument.
Returns

  • If successful, returns the unbiased exponent of the argument.
  • ilogb(0) returns INT_MIN.
  • ilogb(NaN) returns NaN.
  • ilogb(x) returns INT_MAX if x is or the correct value is greater than INT_MAX.
  • ilogb(x) return INT_MIN if the correct value is less than INT_MIN.

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 C, Table C-2.

__device__ ​ int isfinite ( double  a )
Determine whether argument is finite.
Returns

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__ ​ int isinf ( double  a )
Determine whether argument is infinite.
Returns

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__ ​ int isnan ( double  a )
Determine whether argument is a NaN.
Returns

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__ ​ double j0 ( double  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.

  • j0( ± ) returns +0.
  • j0(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 C, Table C-2.

__device__ ​ double j1 ( double  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.

  • j1( ± 0 ) returns ± 0 .
  • j1( ± ) returns +0.
  • j1(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 C, Table C-2.

__device__ ​ double jn ( int  n, double  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.

  • jn(n, NaN) returns NaN.
  • jn(n, x) returns NaN for n < 0.
  • jn(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 C, Table C-2.

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

  • ldexp(x) returns ± if the correctly calculated value is outside the double 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 C, Table C-2.

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

  • lgamma(1) returns +0.
  • lgamma(2) returns +0.
  • lgamma(x) returns ± if the correctly calculated value is outside the double floating point range.
  • lgamma(x) returns + if x 0.
  • lgamma( ) returns .
  • lgamma( + ) returns + .

Description

Calculate the natural logarithm of the absolute value of the gamma function of the input argument x, namely the value of log e 0 e t t x 1 d t

Note:

For accuracy information for this function see the CUDA C Programming Guide, Appendix C, Table C-2.

__device__ ​ long long int llrint ( double  x )
Round input to nearest integer value.
Returns

Returns rounded integer value.

Description

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

__device__ ​ long long int llround ( double  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 llrint().

__device__ ​ double log ( double  x )
Calculate the base e logarithm of the input argument.
Returns

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

Description

Calculate the base e logarithm of the input argument x.

Note:

For accuracy information for this function see the CUDA C Programming Guide, Appendix C, Table C-2.

__device__ ​ double log10 ( double  x )
Calculate the base 10 logarithm of the input argument.
Returns

  • log10( ± 0 ) returns .
  • log10(1) returns +0.
  • log10(x) returns NaN for x < 0.
  • log10( + ) 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 C, Table C-2.

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

  • log1p( ± 0 ) returns .
  • log1p(-1) returns +0.
  • log1p(x) returns NaN for x < -1.
  • log1p( + ) 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 C, Table C-2.

__device__ ​ double log2 ( double  x )
Calculate the base 2 logarithm of the input argument.
Returns

  • log2( ± 0 ) returns .
  • log2(1) returns +0.
  • log2(x) returns NaN for x < 0.
  • log2( + ) 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 C, Table C-2.

__device__ ​ double logb ( double  x )
Calculate the floating point representation of the exponent of the input argument.
Returns

  • logb ± 0 returns
  • logb ± 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 C, Table C-2.

__device__ ​ long int lrint ( double  x )
Round input to nearest integer value.
Returns

Returns rounded integer value.

Description

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

__device__ ​ long int lround ( double  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 lrint().

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

  • modf( ± x , iptr) returns a result with the same sign as x.
  • modf( ± , iptr) returns ± 0 and stores ± in the object pointed to by iptr.
  • modf(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 C, Table C-2.

__device__ ​ double nan ( const char* tagp )
Returns "Not a Number" value.
Returns

  • nan(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 C, Table C-2.

__device__ ​ double nearbyint ( double  x )
Round the input argument to the nearest integer.
Returns

  • nearbyint( ± 0 ) returns ± 0 .
  • nearbyint( ± ) returns ± .

Description

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

Note:

For accuracy information for this function see the CUDA C Programming Guide, Appendix C, Table C-2.

__device__ ​ double nextafter ( double  x, double  y )
Return next representable double-precision floating-point value after argument.
Returns

  • nextafter( ± , y) returns ± .

Description

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

Note:

For accuracy information for this function see the CUDA C Programming Guide, Appendix C, Table C-2.

__device__ ​ double normcdf ( double  y )
Calculate the standard normal cumulative distribution function.
Returns

  • normcdf( + ) returns 1
  • normcdf( ) 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 C, Table C-2.

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

  • normcdfinv(0) returns .
  • normcdfinv(1) returns + .
  • normcdfinv(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 C, Table C-2.

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

  • pow( ± 0 , y) returns ± for y an integer less than 0.
  • pow( ± 0 , y) returns ± 0 for y an odd integer greater than 0.
  • pow( ± 0 , y) returns +0 for y > 0 and not and odd integer.
  • pow(-1, ± ) returns 1.
  • pow(+1, y) returns 1 for any y, even a NaN.
  • pow(x, ± 0 ) returns 1 for any x, even a NaN.
  • pow(x, y) returns a NaN for finite x < 0 and finite non-integer y.
  • pow(x, ) returns + for | x | < 1 .
  • pow(x, ) returns +0 for | x | > 1 .
  • pow(x, + ) returns +0 for | x | < 1 .
  • pow(x, + ) returns + for | x | > 1 .
  • pow( , y) returns -0 for y an odd integer less than 0.
  • pow( , y) returns +0 for y < 0 and not an odd integer.
  • pow( , y) returns for y an odd integer greater than 0.
  • pow( , y) returns + for y > 0 and not an odd integer.
  • pow( + , y) returns +0 for y < 0.
  • pow( + , 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 C, Table C-2.

__device__ ​ double rcbrt ( double  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 C, Table C-2.

__device__ ​ double remainder ( double  x, double  y )
Compute double-precision floating-point remainder.
Returns

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

Description

Compute double-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 C, Table C-2.

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

Returns the remainder.

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

Description

Compute a double-precision floating-point remainder in the same way as the remainder() 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 C, Table C-2.

__device__ ​ double rint ( double  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 to the nearest even integer value.

__device__ ​ double round ( double  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 rint().

__device__ ​ double rsqrt ( double  x )
Calculate the reciprocal of the square root of the input argument.
Returns

Returns 1 / x .

  • rsqrt( + ) returns +0.
  • rsqrt( ± 0 ) returns ± .
  • rsqrt(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 C, Table C-2.

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

Returns x * 2 n .

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

Description

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

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

Returns x * 2 n .

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

Description

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

__device__ ​ int signbit ( double  a )
Return the sign bit of the input.
Returns

Returns a nonzero value if and only if a is negative. Reports the sign bit of all values including infinities, zeros, and NaNs.

Description

Determine whether the floating-point value a is negative.

__device__ ​ double sin ( double  x )
Calculate the sine of the input argument.
Returns

  • sin( ± 0 ) returns ± 0 .
  • sin( ± ) 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 C, Table C-2.

__device__ ​ void sincos ( double  x, double* sptr, double* 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:

sin() and cos().

Note:

For accuracy information for this function see the CUDA C Programming Guide, Appendix C, Table C-2.

__device__ ​ void sincospi ( double  x, double* sptr, double* 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:

sinpi() and cospi().

Note:

For accuracy information for this function see the CUDA C Programming Guide, Appendix C, Table C-2.

__device__ ​ double sinh ( double  x )
Calculate the hyperbolic sine of the input argument.
Returns

  • sinh( ± 0 ) returns ± 0 .

Description

Calculate the hyperbolic sine of the input argument x.

Note:

For accuracy information for this function see the CUDA C Programming Guide, Appendix C, Table C-2.

__device__ ​ double sinpi ( double  x )
Calculate the sine of the input argument × π .
Returns

  • sinpi( ± 0 ) returns ± 0 .
  • sinpi( ± ) 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 C, Table C-2.

__device__ ​ double sqrt ( double  x )
Calculate the square root of the input argument.
Returns

Returns x .

  • sqrt( ± 0 ) returns ± 0 .
  • sqrt( + ) returns + .
  • sqrt(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 C, Table C-2.

__device__ ​ double tan ( double  x )
Calculate the tangent of the input argument.
Returns

  • tan( ± 0 ) returns ± 0 .
  • tan( ± ) 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 C, Table C-2.

__device__ ​ double tanh ( double  x )
Calculate the hyperbolic tangent of the input argument.
Returns

  • tanh( ± 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 C, Table C-2.

__device__ ​ double tgamma ( double  x )
Calculate the gamma function of the input argument.
Returns

  • tgamma( ± 0 ) returns ± .
  • tgamma(2) returns +0.
  • tgamma(x) returns ± if the correctly calculated value is outside the double floating point range.
  • tgamma(x) returns NaN if x < 0.
  • tgamma( ) returns NaN.
  • tgamma( + ) 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 C, Table C-2.

__device__ ​ double trunc ( double  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__ ​ double y0 ( double  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.

  • y0(0) returns .
  • y0(x) returns NaN for x < 0.
  • y0( + ) returns +0.
  • y0(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 C, Table C-2.

__device__ ​ double y1 ( double  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.

  • y1(0) returns .
  • y1(x) returns NaN for x < 0.
  • y1( + ) returns +0.
  • y1(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 C, Table C-2.

__device__ ​ double yn ( int  n, double  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.

  • yn(n, x) returns NaN for n < 0.
  • yn(n, 0) returns .
  • yn(n, x) returns NaN for x < 0.
  • yn(n, + ) returns +0.
  • yn(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 C, Table C-2.


CUDA Math API (PDF) - CUDA Toolkit v5.5 (older) - Last updated July 19, 2013 - Send Feedback