From 50e3bbfc90e6f7c90a0b3fd046e09a1bb80b28a5 Mon Sep 17 00:00:00 2001 From: Benoit Steiner Date: Thu, 22 Sep 2016 13:17:25 -0700 Subject: [PATCH] Calls x.imag() instead of imag(x) when x is a complex number since the former is a constexpr while the later isn't. This fixes compilation errors triggered by nvcc on Mac. --- Eigen/src/Core/MathFunctions.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Eigen/src/Core/MathFunctions.h b/Eigen/src/Core/MathFunctions.h index fa322aca7..4d8f8970e 100644 --- a/Eigen/src/Core/MathFunctions.h +++ b/Eigen/src/Core/MathFunctions.h @@ -1049,12 +1049,12 @@ double abs(const double &x) { return ::fabs(x); } template <> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE float abs(const std::complex& x) { - return ::hypotf(real(x), imag(x)); + return ::hypotf(x.real(), x.imag()); } template <> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE double abs(const std::complex& x) { - return ::hypot(real(x), imag(x)); + return ::hypot(x.real(), x.imag()); } #endif