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

This commit is contained in:
Rohit Santhanam 2021-05-10 19:20:32 +00:00
parent c0eb5f89a4
commit 39ec31c0ad

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