Go to the documentation of this file.
6 #ifndef OPENMPCD_CUDA_DEVICECODE_UTILITIES_HPP
7 #define OPENMPCD_CUDA_DEVICECODE_UTILITIES_HPP
11 #include <boost/core/enable_if.hpp>
12 #include <boost/type_traits/is_floating_point.hpp>
13 #include <boost/type_traits/is_integral.hpp>
27 void atomicAdd(
double*
const target,
const double increment);
35 void atomicAdd(
float*
const target,
const float increment);
49 typename boost::enable_if<boost::is_integral<B>,
double>::type
50 pow(
const B base,
const double exponent)
62 double pow(
const double base,
const double exponent)
OPENMPCD_CUDA_HOST_AND_DEVICE boost::enable_if< boost::is_integral< B >, double >::type pow(const B base, const double exponent)
The power function.
#define OPENMPCD_CUDA_DEVICE
Denotes a function to be callable from a CUDA Device.
#define OPENMPCD_CUDA_HOST_AND_DEVICE
Denotes a function to be callable both from the Host and from a CUDA Device.
OPENMPCD_CUDA_HOST_AND_DEVICE double pow(const double base, const double exponent)
The power function.
OPENMPCD_CUDA_DEVICE void atomicAdd(double *const target, const double increment)
Atomically adds increment to target.