Fix CUDA build breakage and incorrect result for absdiff on HIP with long double arguments.

This commit is contained in:
Rasmus Munk Larsen 2020-10-02 21:05:35 +00:00
parent f7b185a8b1
commit ee714f79f7

View File

@ -1199,17 +1199,15 @@ EIGEN_ALWAYS_INLINE double absdiff(const double& x, const double& y)
{ {
return fabs(x - y); return fabs(x - y);
} }
#if !defined(EIGEN_GPUCC)
// HIP and CUDA do not support long double.
template<> template<>
EIGEN_DEVICE_FUNC EIGEN_DEVICE_FUNC
EIGEN_ALWAYS_INLINE long double absdiff(const long double& x, const long double& y) EIGEN_ALWAYS_INLINE long double absdiff(const long double& x, const long double& y) {
{
#if defined(EIGEN_HIPCC)
// no "fabsl" on HIP yet
return (x > y) ? x : y;
#else
return fabsl(x - y); return fabsl(x - y);
#endif
} }
#endif
template<typename Scalar> template<typename Scalar>
EIGEN_DEVICE_FUNC EIGEN_DEVICE_FUNC