clang 20.0.0git
__clang_cuda_cmath.h File Reference
`#include <limits>`

Go to the source code of this file.

## Classes

struct  __clang_cuda_enable_if< __B, __T >

struct  __clang_cuda_enable_if< true, __T >

namespace  std

## Macros

#define __DEVICE__   static __device__ __inline__ __attribute__((always_inline))

## Functions

__DEVICE__ long long abs (long long __n)

__DEVICE__ long abs (long __n)

__DEVICE__ float abs (float __x)

__DEVICE__ double abs (double __x)

__DEVICE__ float acos (float __x)
Arc cosine function.

__DEVICE__ float asin (float __x)
Arc sine function.

__DEVICE__ float atan (float __x)
Arc tangent function.

__DEVICE__ float atan2 (float __x, float __y)
Arc tangent of y / x.

__DEVICE__ float ceil (float __x)
Round to integral value using the round to positive infinity rounding mode.

__DEVICE__ float cos (float __x)
Compute cosine.

__DEVICE__ float cosh (float __x)
Compute hyperbolic cosine.

__DEVICE__ float exp (float __x)
Compute the base e exponential function of x.

__DEVICE__ float fabs (float __x)
Compute absolute value of a floating-point number.

__DEVICE__ float floor (float __x)
Round to integral value using the round to -ve infinity rounding mode.

__DEVICE__ float fmod (float __x, float __y)
Modulus.

__DEVICE__ int fpclassify (float __x)

__DEVICE__ int fpclassify (double __x)

__DEVICE__ float frexp (float __arg, int *__exp)

__DEVICE__ bool isinf (float __x)
Test for infinity value (+ve or -ve) .

__DEVICE__ bool isinf (double __x)

__DEVICE__ bool isfinite (float __x)
Test for finite value.

__DEVICE__ bool isfinite (double __x)

__DEVICE__ bool isnan (float __x)
Test for a NaN.

__DEVICE__ bool isnan (double __x)

__DEVICE__ bool isgreater (float __x, float __y)
Returns the component-wise compare of x > y.

__DEVICE__ bool isgreater (double __x, double __y)

__DEVICE__ bool isgreaterequal (float __x, float __y)
Returns the component-wise compare of x >= y.

__DEVICE__ bool isgreaterequal (double __x, double __y)

__DEVICE__ bool isless (float __x, float __y)
Returns the component-wise compare of x < y.

__DEVICE__ bool isless (double __x, double __y)

__DEVICE__ bool islessequal (float __x, float __y)
Returns the component-wise compare of x <= y.

__DEVICE__ bool islessequal (double __x, double __y)

__DEVICE__ bool islessgreater (float __x, float __y)
Returns the component-wise compare of (x < y) || (x > y) .

__DEVICE__ bool islessgreater (double __x, double __y)

__DEVICE__ bool isnormal (float __x)
Test for a normal value.

__DEVICE__ bool isnormal (double __x)

__DEVICE__ bool isunordered (float __x, float __y)
Test if arguments are unordered.

__DEVICE__ bool isunordered (double __x, double __y)

__DEVICE__ float ldexp (float __arg, int __exp)
Multiply x by 2 to the power n.

__DEVICE__ float log (float __x)
Compute natural logarithm.

__DEVICE__ float log10 (float __x)
Compute a base 10 logarithm.

__DEVICE__ float modf (float __x, float *__iptr)

__DEVICE__ float pow (float __base, float __exp)
Compute x to the power y.

__DEVICE__ float pow (float __base, int __iexp)

__DEVICE__ double pow (double __base, int __iexp)

__DEVICE__ bool signbit (float __x)
Test for sign bit.

__DEVICE__ bool signbit (double __x)

__DEVICE__ float sin (float __x)
Compute sine.

__DEVICE__ float sinh (float __x)
Compute hyperbolic sine.

__DEVICE__ float sqrt (float __x)
Compute square root.

__DEVICE__ float tan (float __x)
Compute tangent.

__DEVICE__ float tanh (float __x)
Compute hyperbolic tangent.

template<typename __T1 , typename __T2 , typename __T3 >
__DEVICE__ __clang_cuda_enable_if< std::numeric_limits< __T1 >::is_specialized &&std::numeric_limits< __T2 >::is_specialized &&std::numeric_limits< __T3 >::is_specialized, double >::type fma (__T1 __x, __T2 __y, __T3 __z)

template<typename __T >
__DEVICE__ __clang_cuda_enable_if< std::numeric_limits< __T >::is_integer, double >::type frexp (__T __x, int *__exp)

template<typename __T >
__DEVICE__ __clang_cuda_enable_if< std::numeric_limits< __T >::is_integer, double >::type ldexp (__T __x, int __exp)

template<typename __T1 , typename __T2 >
__DEVICE__ __clang_cuda_enable_if< std::numeric_limits< __T1 >::is_specialized &&std::numeric_limits< __T2 >::is_specialized, double >::type remquo (__T1 __x, __T2 __y, int *__quo)

template<typename __T >
__DEVICE__ __clang_cuda_enable_if< std::numeric_limits< __T >::is_integer, double >::type scalbln (__T __x, long __exp)

template<typename __T >
__DEVICE__ __clang_cuda_enable_if< std::numeric_limits< __T >::is_integer, double >::type scalbn (__T __x, int __exp)

## Macro Definition Documentation

 #define __CUDA_CLANG_FN_INTEGER_OVERLOAD_1 ( __retty, __fn )
Value:
template <typename __T> \
__DEVICE__ \
__retty>::type \
__fn(__T __x) { \
return ::__fn((double)__x); \
}

Definition at line 217 of file __clang_cuda_cmath.h.

 #define __CUDA_CLANG_FN_INTEGER_OVERLOAD_2 ( __retty, __fn )
Value:
template <typename __T1, typename __T2> \
std::numeric_limits<__T1>::is_specialized && \
std::numeric_limits<__T2>::is_specialized, \
__retty>::type \
__fn(__T1 __x, __T2 __y) { \
return __fn((double)__x, (double)__y); \
}
#define __DEVICE__
static __inline__ uint32_t uint32_t __y
Definition: arm_acle.h:130

Definition at line 231 of file __clang_cuda_cmath.h.

## ◆ __DEVICE__

 #define __DEVICE__   static __device__ __inline__ __attribute__((always_inline))

Definition at line 38 of file __clang_cuda_cmath.h.

## Function Documentation

 __CUDA_CLANG_FN_INTEGER_OVERLOAD_1 ( bool , isinf )

 __CUDA_CLANG_FN_INTEGER_OVERLOAD_1 ( bool , isnan )

 __CUDA_CLANG_FN_INTEGER_OVERLOAD_1 ( double , nearbyint )

 __CUDA_CLANG_FN_INTEGER_OVERLOAD_1 ( double , rint )

 __CUDA_CLANG_FN_INTEGER_OVERLOAD_1 ( double , round )

 __CUDA_CLANG_FN_INTEGER_OVERLOAD_1 ( double , trunc )

 __CUDA_CLANG_FN_INTEGER_OVERLOAD_2 ( bool , isgreater )

 __CUDA_CLANG_FN_INTEGER_OVERLOAD_2 ( bool , isgreaterequal )

 __CUDA_CLANG_FN_INTEGER_OVERLOAD_2 ( bool , isless )

 __CUDA_CLANG_FN_INTEGER_OVERLOAD_2 ( bool , islessequal )

 __CUDA_CLANG_FN_INTEGER_OVERLOAD_2 ( bool , islessgreater )

 __CUDA_CLANG_FN_INTEGER_OVERLOAD_2 ( bool , isunordered )

 __CUDA_CLANG_FN_INTEGER_OVERLOAD_2 ( double , atan2 )

 __CUDA_CLANG_FN_INTEGER_OVERLOAD_2 ( double , copysign )

 __CUDA_CLANG_FN_INTEGER_OVERLOAD_2 ( double , fdim )

 __CUDA_CLANG_FN_INTEGER_OVERLOAD_2 ( double , fmax )

 __CUDA_CLANG_FN_INTEGER_OVERLOAD_2 ( double , fmin )

 __CUDA_CLANG_FN_INTEGER_OVERLOAD_2 ( double , fmod )

 __CUDA_CLANG_FN_INTEGER_OVERLOAD_2 ( double , hypot )

 __CUDA_CLANG_FN_INTEGER_OVERLOAD_2 ( double , nextafter )

 __CUDA_CLANG_FN_INTEGER_OVERLOAD_2 ( double , pow )

 __CUDA_CLANG_FN_INTEGER_OVERLOAD_2 ( double , remainder )

## ◆ abs() [1/4]

 __DEVICE__ double abs ( double __x )

Definition at line 44 of file __clang_cuda_cmath.h.

## ◆ abs() [2/4]

 __DEVICE__ float abs ( float __x )

Definition at line 43 of file __clang_cuda_cmath.h.

## ◆ abs() [3/4]

 __DEVICE__ long abs ( long __n )

Definition at line 42 of file __clang_cuda_cmath.h.

## ◆ abs() [4/4]

 __DEVICE__ long long abs ( long long __n )

Definition at line 41 of file __clang_cuda_cmath.h.

## ◆ acos()

 __DEVICE__ float acos ( float __x )

Arc cosine function.

Definition at line 45 of file __clang_cuda_cmath.h.

## ◆ asin()

 __DEVICE__ float asin ( float __x )

Arc sine function.

Definition at line 46 of file __clang_cuda_cmath.h.

## ◆ atan()

 __DEVICE__ float atan ( float __x )

Arc tangent function.

Definition at line 47 of file __clang_cuda_cmath.h.

## ◆ atan2()

 __DEVICE__ float atan2 ( float __x, float __y )

Arc tangent of y / x.

Definition at line 48 of file __clang_cuda_cmath.h.

References __y.

## ◆ ceil()

 __DEVICE__ float ceil ( float __x )

Round to integral value using the round to positive infinity rounding mode.

Definition at line 49 of file __clang_cuda_cmath.h.

## ◆ cos()

 __DEVICE__ float cos ( float __x )

Compute cosine.

Definition at line 50 of file __clang_cuda_cmath.h.

## ◆ cosh()

 __DEVICE__ float cosh ( float __x )

Compute hyperbolic cosine.

Definition at line 51 of file __clang_cuda_cmath.h.

## ◆ exp()

 __DEVICE__ float exp ( float __x )

Compute the base e exponential function of x.

Definition at line 52 of file __clang_cuda_cmath.h.

## ◆ fabs()

 __DEVICE__ float fabs ( float __x )

Compute absolute value of a floating-point number.

Definition at line 53 of file __clang_cuda_cmath.h.

## ◆ floor()

 __DEVICE__ float floor ( float __x )

Round to integral value using the round to -ve infinity rounding mode.

Definition at line 54 of file __clang_cuda_cmath.h.

## ◆ fma()

template<typename __T1 , typename __T2 , typename __T3 >
 __DEVICE__ __clang_cuda_enable_if< std::numeric_limits< __T1 >::is_specialized &&std::numeric_limits< __T2 >::is_specialized &&std::numeric_limits< __T3 >::is_specialized, double >::type fma ( __T1 __x, __T2 __y, __T3 __z )

Definition at line 313 of file __clang_cuda_cmath.h.

References __y.

## ◆ fmod()

 __DEVICE__ float fmod ( float __x, float __y )

Modulus.

Returns x - y * trunc (x/y).

Definition at line 55 of file __clang_cuda_cmath.h.

References __y.

## ◆ fpclassify() [1/2]

 __DEVICE__ int fpclassify ( double __x )

Definition at line 60 of file __clang_cuda_cmath.h.

## ◆ fpclassify() [2/2]

 __DEVICE__ int fpclassify ( float __x )

Definition at line 56 of file __clang_cuda_cmath.h.

## ◆ frexp() [1/2]

template<typename __T >
 __DEVICE__ __clang_cuda_enable_if< std::numeric_limits< __T >::is_integer, double >::type frexp ( __T __x, int * __exp )

Definition at line 320 of file __clang_cuda_cmath.h.

## ◆ frexp() [2/2]

 __DEVICE__ float frexp ( float __arg, int * __exp )

Definition at line 64 of file __clang_cuda_cmath.h.

## ◆ isfinite() [1/2]

 __DEVICE__ bool isfinite ( double __x )

Definition at line 107 of file __clang_cuda_cmath.h.

## ◆ isfinite() [2/2]

 __DEVICE__ bool isfinite ( float __x )

Test for finite value.

Definition at line 103 of file __clang_cuda_cmath.h.

## ◆ isgreater() [1/2]

 __DEVICE__ bool isgreater ( double __x, double __y )

Definition at line 120 of file __clang_cuda_cmath.h.

References __y.

## ◆ isgreater() [2/2]

 __DEVICE__ bool isgreater ( float __x, float __y )

Returns the component-wise compare of x > y.

Definition at line 117 of file __clang_cuda_cmath.h.

References __y.

## ◆ isgreaterequal() [1/2]

 __DEVICE__ bool isgreaterequal ( double __x, double __y )

Definition at line 126 of file __clang_cuda_cmath.h.

References __y.

## ◆ isgreaterequal() [2/2]

 __DEVICE__ bool isgreaterequal ( float __x, float __y )

Returns the component-wise compare of x >= y.

Definition at line 123 of file __clang_cuda_cmath.h.

References __y.

## ◆ isinf() [1/2]

 __DEVICE__ bool isinf ( double __x )

Definition at line 102 of file __clang_cuda_cmath.h.

## ◆ isinf() [2/2]

 __DEVICE__ bool isinf ( float __x )

Test for infinity value (+ve or -ve) .

Definition at line 101 of file __clang_cuda_cmath.h.

## ◆ isless() [1/2]

 __DEVICE__ bool isless ( double __x, double __y )

Definition at line 132 of file __clang_cuda_cmath.h.

References __y.

## ◆ isless() [2/2]

 __DEVICE__ bool isless ( float __x, float __y )

Returns the component-wise compare of x < y.

Definition at line 129 of file __clang_cuda_cmath.h.

References __y.

## ◆ islessequal() [1/2]

 __DEVICE__ bool islessequal ( double __x, double __y )

Definition at line 138 of file __clang_cuda_cmath.h.

References __y.

## ◆ islessequal() [2/2]

 __DEVICE__ bool islessequal ( float __x, float __y )

Returns the component-wise compare of x <= y.

Definition at line 135 of file __clang_cuda_cmath.h.

References __y.

## ◆ islessgreater() [1/2]

 __DEVICE__ bool islessgreater ( double __x, double __y )

Definition at line 144 of file __clang_cuda_cmath.h.

References __y.

## ◆ islessgreater() [2/2]

 __DEVICE__ bool islessgreater ( float __x, float __y )

Returns the component-wise compare of (x < y) || (x > y) .

Definition at line 141 of file __clang_cuda_cmath.h.

References __y.

## ◆ isnan() [1/2]

 __DEVICE__ bool isnan ( double __x )

Definition at line 109 of file __clang_cuda_cmath.h.

## ◆ isnan() [2/2]

 __DEVICE__ bool isnan ( float __x )

Test for a NaN.

Definition at line 108 of file __clang_cuda_cmath.h.

Referenced by std::acos().

## ◆ isnormal() [1/2]

 __DEVICE__ bool isnormal ( double __x )

Definition at line 148 of file __clang_cuda_cmath.h.

## ◆ isnormal() [2/2]

 __DEVICE__ bool isnormal ( float __x )

Test for a normal value.

Definition at line 147 of file __clang_cuda_cmath.h.

## ◆ isunordered() [1/2]

 __DEVICE__ bool isunordered ( double __x, double __y )

Definition at line 152 of file __clang_cuda_cmath.h.

References __y.

## ◆ isunordered() [2/2]

 __DEVICE__ bool isunordered ( float __x, float __y )

Test if arguments are unordered.

isunordered() takes arguments x and y, returning non-zero if x or y is NaN, and zero otherwise.

Definition at line 149 of file __clang_cuda_cmath.h.

References __y.

## ◆ ldexp() [1/2]

template<typename __T >
 __DEVICE__ __clang_cuda_enable_if< std::numeric_limits< __T >::is_integer, double >::type ldexp ( __T __x, int __exp )

Definition at line 327 of file __clang_cuda_cmath.h.

## ◆ ldexp() [2/2]

 __DEVICE__ float ldexp ( float __arg, int __exp )

Multiply x by 2 to the power n.

Definition at line 155 of file __clang_cuda_cmath.h.

## ◆ log()

 __DEVICE__ float log ( float __x )

Compute natural logarithm.

Definition at line 158 of file __clang_cuda_cmath.h.

## ◆ log10()

 __DEVICE__ float log10 ( float __x )

Compute a base 10 logarithm.

Definition at line 159 of file __clang_cuda_cmath.h.

## ◆ modf()

 __DEVICE__ float modf ( float __x, float * __iptr )

Definition at line 160 of file __clang_cuda_cmath.h.

Referenced by mutateLongDoubleBuiltin().

## ◆ pow() [1/3]

 __DEVICE__ double pow ( double __base, int __iexp )

Definition at line 167 of file __clang_cuda_cmath.h.

## ◆ pow() [2/3]

 __DEVICE__ float pow ( float __base, float __exp )

Compute x to the power y.

Definition at line 161 of file __clang_cuda_cmath.h.

## ◆ pow() [3/3]

 __DEVICE__ float pow ( float __base, int __iexp )

Definition at line 164 of file __clang_cuda_cmath.h.

## ◆ remquo()

template<typename __T1 , typename __T2 >
 __DEVICE__ __clang_cuda_enable_if< std::numeric_limits< __T1 >::is_specialized &&std::numeric_limits< __T2 >::is_specialized, double >::type remquo ( __T1 __x, __T2 __y, int * __quo )

Definition at line 336 of file __clang_cuda_cmath.h.

References __y.

## ◆ scalbln()

template<typename __T >
 __DEVICE__ __clang_cuda_enable_if< std::numeric_limits< __T >::is_integer, double >::type scalbln ( __T __x, long __exp )

Definition at line 343 of file __clang_cuda_cmath.h.

## ◆ scalbn()

template<typename __T >
 __DEVICE__ __clang_cuda_enable_if< std::numeric_limits< __T >::is_integer, double >::type scalbn ( __T __x, int __exp )

Definition at line 350 of file __clang_cuda_cmath.h.

## ◆ signbit() [1/2]

 __DEVICE__ bool signbit ( double __x )

Definition at line 171 of file __clang_cuda_cmath.h.

## ◆ signbit() [2/2]

 __DEVICE__ bool signbit ( float __x )

Test for sign bit.

The scalar version of the function returns a 1 if the sign bit in the float is set else returns 0. The vector version of the function returns the following for each component in floatn: a -1 if the sign bit in the float is set else returns 0.

Definition at line 170 of file __clang_cuda_cmath.h.

Referenced by std::acos(), and std::polar().

## ◆ sin()

 __DEVICE__ float sin ( float __x )

Compute sine.

Definition at line 172 of file __clang_cuda_cmath.h.

## ◆ sinh()

 __DEVICE__ float sinh ( float __x )

Compute hyperbolic sine.

Definition at line 173 of file __clang_cuda_cmath.h.

## ◆ sqrt()

 __DEVICE__ float sqrt ( float __x )

Compute square root.

Definition at line 174 of file __clang_cuda_cmath.h.

## ◆ tan()

 __DEVICE__ float tan ( float __x )

Compute tangent.

Definition at line 175 of file __clang_cuda_cmath.h.

## ◆ tanh()

 __DEVICE__ float tanh ( float __x )

Compute hyperbolic tangent.

Definition at line 176 of file __clang_cuda_cmath.h.