Fix for issue where numext::imag and numext::real are used before they are defined.

(cherry picked from commit 39ec31c0adbdde6b8cda36b3415e9cc2af20dab6)
This commit is contained in:
Rohit Santhanam 2021-05-10 19:20:32 +00:00 committed by Antonio Sánchez
parent 2947c0cc84
commit 85ebd6aff8

View File

@ -263,18 +263,6 @@ struct conj_default_impl<Scalar,true>
template<typename Scalar, bool IsComplex = NumTraits<Scalar>::IsComplex>
struct conj_impl : conj_default_impl<Scalar, IsComplex> {};
#if defined(EIGEN_GPU_COMPILE_PHASE)
template<typename T>
struct conj_impl<std::complex<T>, true>
{
EIGEN_DEVICE_FUNC
static inline std::complex<T> run(const std::complex<T>& x)
{
return std::complex<T>(numext::real(x), -numext::imag(x));
}
};
#endif
template<typename Scalar>
struct conj_retval
{
@ -2024,6 +2012,18 @@ struct rsqrt_impl {
}
};
#if defined(EIGEN_GPU_COMPILE_PHASE)
template<typename T>
struct conj_impl<std::complex<T>, true>
{
EIGEN_DEVICE_FUNC
static inline std::complex<T> run(const std::complex<T>& x)
{
return std::complex<T>(numext::real(x), -numext::imag(x));
}
};
#endif
} // end namespace internal
} // end namespace Eigen