clang 20.0.0git
Classes | Namespaces | Macros | Functions
__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 >
 

Namespaces

namespace  std
 

Macros

#define __DEVICE__   static __device__ __inline__ __attribute__((always_inline))
 
#define __CUDA_CLANG_FN_INTEGER_OVERLOAD_1(__retty, __fn)
 
#define __CUDA_CLANG_FN_INTEGER_OVERLOAD_2(__retty, __fn)
 

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.
 
 __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 (bool, isgreater)
 
 __CUDA_CLANG_FN_INTEGER_OVERLOAD_2 (bool, isgreaterequal)
 
 __CUDA_CLANG_FN_INTEGER_OVERLOAD_1 (bool, isinf)
 
 __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_1 (bool, isnan)
 
 __CUDA_CLANG_FN_INTEGER_OVERLOAD_2 (bool, isunordered)
 
 __CUDA_CLANG_FN_INTEGER_OVERLOAD_1 (double, nearbyint)
 
 __CUDA_CLANG_FN_INTEGER_OVERLOAD_2 (double, nextafter)
 
 __CUDA_CLANG_FN_INTEGER_OVERLOAD_2 (double, pow)
 
 __CUDA_CLANG_FN_INTEGER_OVERLOAD_2 (double, remainder)
 
 __CUDA_CLANG_FN_INTEGER_OVERLOAD_1 (double, rint)
 
 __CUDA_CLANG_FN_INTEGER_OVERLOAD_1 (double, round)
 
 __CUDA_CLANG_FN_INTEGER_OVERLOAD_1 (double, trunc)
 
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

◆ __CUDA_CLANG_FN_INTEGER_OVERLOAD_1

#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.

◆ __CUDA_CLANG_FN_INTEGER_OVERLOAD_2

#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() [1/6]

__CUDA_CLANG_FN_INTEGER_OVERLOAD_1 ( bool  ,
isinf   
)

◆ __CUDA_CLANG_FN_INTEGER_OVERLOAD_1() [2/6]

__CUDA_CLANG_FN_INTEGER_OVERLOAD_1 ( bool  ,
isnan   
)

◆ __CUDA_CLANG_FN_INTEGER_OVERLOAD_1() [3/6]

__CUDA_CLANG_FN_INTEGER_OVERLOAD_1 ( double  ,
nearbyint   
)

◆ __CUDA_CLANG_FN_INTEGER_OVERLOAD_1() [4/6]

__CUDA_CLANG_FN_INTEGER_OVERLOAD_1 ( double  ,
rint   
)

◆ __CUDA_CLANG_FN_INTEGER_OVERLOAD_1() [5/6]

__CUDA_CLANG_FN_INTEGER_OVERLOAD_1 ( double  ,
round   
)

◆ __CUDA_CLANG_FN_INTEGER_OVERLOAD_1() [6/6]

__CUDA_CLANG_FN_INTEGER_OVERLOAD_1 ( double  ,
trunc   
)

◆ __CUDA_CLANG_FN_INTEGER_OVERLOAD_2() [1/16]

__CUDA_CLANG_FN_INTEGER_OVERLOAD_2 ( bool  ,
isgreater   
)

◆ __CUDA_CLANG_FN_INTEGER_OVERLOAD_2() [2/16]

__CUDA_CLANG_FN_INTEGER_OVERLOAD_2 ( bool  ,
isgreaterequal   
)

◆ __CUDA_CLANG_FN_INTEGER_OVERLOAD_2() [3/16]

__CUDA_CLANG_FN_INTEGER_OVERLOAD_2 ( bool  ,
isless   
)

◆ __CUDA_CLANG_FN_INTEGER_OVERLOAD_2() [4/16]

__CUDA_CLANG_FN_INTEGER_OVERLOAD_2 ( bool  ,
islessequal   
)

◆ __CUDA_CLANG_FN_INTEGER_OVERLOAD_2() [5/16]

__CUDA_CLANG_FN_INTEGER_OVERLOAD_2 ( bool  ,
islessgreater   
)

◆ __CUDA_CLANG_FN_INTEGER_OVERLOAD_2() [6/16]

__CUDA_CLANG_FN_INTEGER_OVERLOAD_2 ( bool  ,
isunordered   
)

◆ __CUDA_CLANG_FN_INTEGER_OVERLOAD_2() [7/16]

__CUDA_CLANG_FN_INTEGER_OVERLOAD_2 ( double  ,
atan2   
)

◆ __CUDA_CLANG_FN_INTEGER_OVERLOAD_2() [8/16]

__CUDA_CLANG_FN_INTEGER_OVERLOAD_2 ( double  ,
copysign   
)

◆ __CUDA_CLANG_FN_INTEGER_OVERLOAD_2() [9/16]

__CUDA_CLANG_FN_INTEGER_OVERLOAD_2 ( double  ,
fdim   
)

◆ __CUDA_CLANG_FN_INTEGER_OVERLOAD_2() [10/16]

__CUDA_CLANG_FN_INTEGER_OVERLOAD_2 ( double  ,
fmax   
)

◆ __CUDA_CLANG_FN_INTEGER_OVERLOAD_2() [11/16]

__CUDA_CLANG_FN_INTEGER_OVERLOAD_2 ( double  ,
fmin   
)

◆ __CUDA_CLANG_FN_INTEGER_OVERLOAD_2() [12/16]

__CUDA_CLANG_FN_INTEGER_OVERLOAD_2 ( double  ,
fmod   
)

◆ __CUDA_CLANG_FN_INTEGER_OVERLOAD_2() [13/16]

__CUDA_CLANG_FN_INTEGER_OVERLOAD_2 ( double  ,
hypot   
)

◆ __CUDA_CLANG_FN_INTEGER_OVERLOAD_2() [14/16]

__CUDA_CLANG_FN_INTEGER_OVERLOAD_2 ( double  ,
nextafter   
)

◆ __CUDA_CLANG_FN_INTEGER_OVERLOAD_2() [15/16]

__CUDA_CLANG_FN_INTEGER_OVERLOAD_2 ( double  ,
pow   
)

◆ __CUDA_CLANG_FN_INTEGER_OVERLOAD_2() [16/16]

__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)

◆ 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.