Don't attempts to use lgamma_r for CUDA devices.

Fix type in lgamma_impl<double>.
This commit is contained in:
Rasmus Munk Larsen 2016-11-01 15:34:19 -07:00
parent 2ebb314fa7
commit b730952414

View File

@ -121,7 +121,7 @@ template <>
struct lgamma_impl<float> { struct lgamma_impl<float> {
EIGEN_DEVICE_FUNC EIGEN_DEVICE_FUNC
static EIGEN_STRONG_INLINE float run(float x) { static EIGEN_STRONG_INLINE float run(float x) {
#ifdef _BSD_SOURCE || _SVID_SOURCE #if !defined(__CUDA_ARCH__) && (defined(_BSD_SOURCE) || defined(_SVID_SOURCE))
int signgam; int signgam;
return ::lgammaf_r(x, &signgam); return ::lgammaf_r(x, &signgam);
#else #else
@ -134,9 +134,9 @@ template <>
struct lgamma_impl<double> { struct lgamma_impl<double> {
EIGEN_DEVICE_FUNC EIGEN_DEVICE_FUNC
static EIGEN_STRONG_INLINE double run(double x) { static EIGEN_STRONG_INLINE double run(double x) {
#ifdef _BSD_SOURCE || _SVID_SOURCE #if !defined(__CUDA_ARCH__) && (defined(_BSD_SOURCE) || defined(_SVID_SOURCE))
int signgam; int signgam;
return ::lgammaf_r(x, &signgam); return ::lgamma_r(x, &signgam);
#else #else
return ::lgamma(x); return ::lgamma(x);
#endif #endif