|
|
@ -648,11 +648,14 @@ namespace detail |
|
|
|
# endif |
|
|
|
# endif |
|
|
|
|
|
|
|
|
|
|
|
template<length_t L, typename T, qualifier Q> |
|
|
|
template<length_t L, typename T, qualifier Q> |
|
|
|
GLM_FUNC_QUALIFIER vec<L, bool, Q> isnan(vec<L, T, Q> const& x) |
|
|
|
GLM_FUNC_QUALIFIER vec<L, bool, Q> isnan(vec<L, T, Q> const& v) |
|
|
|
{ |
|
|
|
{ |
|
|
|
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'isnan' only accept floating-point inputs"); |
|
|
|
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'isnan' only accept floating-point inputs"); |
|
|
|
|
|
|
|
|
|
|
|
return detail::functor1<L, bool, T, Q>::call(glm::isnan, x); |
|
|
|
vec<L, bool, Q> Result; |
|
|
|
|
|
|
|
for (length_t l = 0; l < v.length(); ++l) |
|
|
|
|
|
|
|
Result[l] = glm::isnan(v[l]); |
|
|
|
|
|
|
|
return Result; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
# if GLM_HAS_CXX11_STL |
|
|
|
# if GLM_HAS_CXX11_STL |
|
|
@ -687,11 +690,14 @@ namespace detail |
|
|
|
# endif |
|
|
|
# endif |
|
|
|
|
|
|
|
|
|
|
|
template<length_t L, typename T, qualifier Q> |
|
|
|
template<length_t L, typename T, qualifier Q> |
|
|
|
GLM_FUNC_QUALIFIER vec<L, bool, Q> isinf(vec<L, T, Q> const& x) |
|
|
|
GLM_FUNC_QUALIFIER vec<L, bool, Q> isinf(vec<L, T, Q> const& v) |
|
|
|
{ |
|
|
|
{ |
|
|
|
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'isnan' only accept floating-point inputs"); |
|
|
|
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'isinf' only accept floating-point inputs"); |
|
|
|
|
|
|
|
|
|
|
|
return detail::functor1<L, bool, T, Q>::call(glm::isinf, x); |
|
|
|
vec<L, bool, Q> Result; |
|
|
|
|
|
|
|
for (length_t l = 0; l < v.length(); ++l) |
|
|
|
|
|
|
|
Result[l] = glm::isinf(v[l]); |
|
|
|
|
|
|
|
return Result; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
GLM_FUNC_QUALIFIER int floatBitsToInt(float const& v) |
|
|
|
GLM_FUNC_QUALIFIER int floatBitsToInt(float const& v) |
|
|
|