mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-08-12 11:49:02 +08:00
Use std::isfinite when available
This commit is contained in:
parent
249c48ba00
commit
e5048b5501
@ -787,13 +787,16 @@ inline EIGEN_MATHFUNC_RETVAL(pow, Scalar) pow(const Scalar& x, const Scalar& y)
|
|||||||
return EIGEN_MATHFUNC_IMPL(pow, Scalar)::run(x, y);
|
return EIGEN_MATHFUNC_IMPL(pow, Scalar)::run(x, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
// std::isfinite is non standard, so let's define our own version,
|
|
||||||
// even though it is not very efficient.
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
EIGEN_DEVICE_FUNC
|
EIGEN_DEVICE_FUNC
|
||||||
bool (isfinite)(const T& x)
|
bool (isfinite)(const T& x)
|
||||||
{
|
{
|
||||||
return x<NumTraits<T>::highest() && x>NumTraits<T>::lowest();
|
#ifdef EIGEN_HAS_C99_MATH
|
||||||
|
using std::isfinite;
|
||||||
|
return isfinite(x);
|
||||||
|
#else
|
||||||
|
return x<NumTraits<T>::highest() && x>NumTraits<T>::lowest();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user