Fix compilation of isnan(complex)

This commit is contained in:
Gael Guennebaud 2015-07-20 12:56:01 +02:00
parent 88e352adac
commit c11971de37

View File

@ -794,24 +794,6 @@ bool (isfinite)(const T& x)
#endif
}
template<typename T>
bool (isfinite)(const std::complex<T>& x)
{
return numext::isfinite(numext::real(x)) && numext::isfinite(numext::imag(x));
}
template<typename T>
bool (isnan)(const std::complex<T>& x)
{
return numext::isnan(numext::real(x)) || numext::isnan(numext::imag(x));
}
template<typename T>
bool (isinf)(const std::complex<T>& x)
{
return (numext::isinf(numext::real(x)) || numext::isinf(numext::imag(x))) && (!numext::isnan(x));
}
template<typename T>
EIGEN_DEVICE_FUNC
bool (isnan)(const T& x)
@ -836,6 +818,24 @@ bool (isinf)(const T& x)
#endif
}
template<typename T>
bool (isfinite)(const std::complex<T>& x)
{
return numext::isfinite(numext::real(x)) && numext::isfinite(numext::imag(x));
}
template<typename T>
bool (isnan)(const std::complex<T>& x)
{
return numext::isnan(numext::real(x)) || numext::isnan(numext::imag(x));
}
template<typename T>
bool (isinf)(const std::complex<T>& x)
{
return (numext::isinf(numext::real(x)) || numext::isinf(numext::imag(x))) && (!numext::isnan(x));
}
template<typename Scalar>
EIGEN_DEVICE_FUNC
inline EIGEN_MATHFUNC_RETVAL(round, Scalar) round(const Scalar& x)