Second set of fixes for Android #284

master
Christophe Riccio ago%!(EXTRA string=11 years)
parent c02d031eaf
commit e4ccd06e29
  1. 10
      glm/detail/func_common.inl
  2. 2
      glm/detail/func_exponential.inl
  3. 6
      glm/detail/func_trigonometric.inl
  4. 12
      glm/detail/setup.hpp
  5. 8
      glm/gtc/ulp.inl
  6. 2
      glm/gtx/common.inl
  7. 6
      glm/gtx/compatibility.inl

@ -546,7 +546,7 @@ namespace detail
{ {
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'isnan' only accept floating-point inputs"); GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'isnan' only accept floating-point inputs");
# if GLM_LANG & GLM_LANG_CXX11_FLAG # if GLM_HAS_CXX11_STL
return std::isnan(x); return std::isnan(x);
# elif GLM_COMPILER & (GLM_COMPILER_VC | GLM_COMPILER_INTEL) # elif GLM_COMPILER & (GLM_COMPILER_VC | GLM_COMPILER_INTEL)
return _isnan(x) != 0; return _isnan(x) != 0;
@ -580,17 +580,17 @@ namespace detail
{ {
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'isinf' only accept floating-point inputs"); GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'isinf' only accept floating-point inputs");
# if(GLM_LANG & GLM_LANG_CXX11_FLAG) # if GLM_HAS_CXX11_STL
return std::isinf(x); return std::isinf(x);
# elif(GLM_COMPILER & (GLM_COMPILER_INTEL | GLM_COMPILER_VC)) # elif GLM_COMPILER & (GLM_COMPILER_INTEL | GLM_COMPILER_VC)
return _fpclass(x) == _FPCLASS_NINF || _fpclass(x) == _FPCLASS_PINF; return _fpclass(x) == _FPCLASS_NINF || _fpclass(x) == _FPCLASS_PINF;
# elif(GLM_COMPILER & (GLM_COMPILER_GCC | (GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM))) # elif GLM_COMPILER & (GLM_COMPILER_GCC | (GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM))
# if(GLM_PLATFORM & GLM_PLATFORM_ANDROID && __cplusplus < 201103L) # if(GLM_PLATFORM & GLM_PLATFORM_ANDROID && __cplusplus < 201103L)
return _isinf(x) != 0; return _isinf(x) != 0;
# else # else
return std::isinf(x); return std::isinf(x);
# endif # endif
# elif(GLM_COMPILER & GLM_COMPILER_CUDA) # elif GLM_COMPILER & GLM_COMPILER_CUDA
// http://developer.download.nvidia.com/compute/cuda/4_2/rel/toolkit/docs/online/group__CUDA__MATH__DOUBLE_g13431dd2b40b51f9139cbb7f50c18fab.html#g13431dd2b40b51f9139cbb7f50c18fab // http://developer.download.nvidia.com/compute/cuda/4_2/rel/toolkit/docs/online/group__CUDA__MATH__DOUBLE_g13431dd2b40b51f9139cbb7f50c18fab.html#g13431dd2b40b51f9139cbb7f50c18fab
return isinf(double(x)) != 0; return isinf(double(x)) != 0;
# else # else

@ -39,7 +39,7 @@
namespace glm{ namespace glm{
namespace detail namespace detail
{ {
# if GLM_LANG & GLM_LANG_CXX11_FLAG # if GLM_HAS_CXX11_STL
using std::log2; using std::log2;
# else # else
template <typename genType> template <typename genType>

@ -162,7 +162,7 @@ namespace glm
} }
// asinh // asinh
# if GLM_LANG & GLM_LANG_CXX11_FLAG # if GLM_HAS_CXX11_STL
using std::asinh; using std::asinh;
# else # else
template <typename genType> template <typename genType>
@ -181,7 +181,7 @@ namespace glm
} }
// acosh // acosh
# if GLM_LANG & GLM_LANG_CXX11_FLAG # if GLM_HAS_CXX11_STL
using std::acosh; using std::acosh;
# else # else
template <typename genType> template <typename genType>
@ -202,7 +202,7 @@ namespace glm
} }
// atanh // atanh
# if GLM_LANG & GLM_LANG_CXX11_FLAG # if GLM_HAS_CXX11_STL
using std::atanh; using std::atanh;
# else # else
template <typename genType> template <typename genType>

@ -420,17 +420,17 @@
#if defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_LANG_DISPLAYED) #if defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_LANG_DISPLAYED)
# define GLM_MESSAGE_LANG_DISPLAYED # define GLM_MESSAGE_LANG_DISPLAYED
# if(GLM_LANG & GLM_LANG_CXXGNU_FLAG) # if GLM_LANG & GLM_LANG_CXXGNU_FLAG
# pragma message("GLM: C++ with language extensions") # pragma message("GLM: C++ with language extensions")
# elif(GLM_LANG & GLM_LANG_CXXMS_FLAG) # elif GLM_LANG & GLM_LANG_CXXMS_FLAG
# pragma message("GLM: C++ with language extensions") # pragma message("GLM: C++ with language extensions")
# elif(GLM_LANG & GLM_LANG_CXX11_FLAG) # elif GLM_LANG & GLM_LANG_CXX11_FLAG
# pragma message("GLM: C++11") # pragma message("GLM: C++11")
# elif(GLM_LANG & GLM_LANG_CXX0X_FLAG) # elif GLM_LANG & GLM_LANG_CXX0X_FLAG
# pragma message("GLM: C++0x") # pragma message("GLM: C++0x")
# elif(GLM_LANG & GLM_LANG_CXX03_FLAG) # elif GLM_LANG & GLM_LANG_CXX03_FLAG
# pragma message("GLM: C++03") # pragma message("GLM: C++03")
# elif(GLM_LANG & GLM_LANG_CXX98_FLAG) # elif GLM_LANG & GLM_LANG_CXX98_FLAG
# pragma message("GLM: C++98") # pragma message("GLM: C++98")
# else # else
# pragma message("GLM: C++ language undetected") # pragma message("GLM: C++ language undetected")

@ -203,7 +203,7 @@ namespace glm
template <> template <>
GLM_FUNC_QUALIFIER float next_float(float const & x) GLM_FUNC_QUALIFIER float next_float(float const & x)
{ {
# if((GLM_LANG & GLM_LANG_CXX11_FLAG) && !(GLM_PLATFORM & GLM_PLATFORM_ANDROID)) # if GLM_HAS_CXX11_STL
return std::nextafter(x, std::numeric_limits<float>::max()); return std::nextafter(x, std::numeric_limits<float>::max());
# elif((GLM_COMPILER & GLM_COMPILER_VC) || ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_PLATFORM & GLM_PLATFORM_WINDOWS))) # elif((GLM_COMPILER & GLM_COMPILER_VC) || ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_PLATFORM & GLM_PLATFORM_WINDOWS)))
return detail::nextafterf(x, FLT_MAX); return detail::nextafterf(x, FLT_MAX);
@ -217,7 +217,7 @@ namespace glm
template <> template <>
GLM_FUNC_QUALIFIER double next_float(double const & x) GLM_FUNC_QUALIFIER double next_float(double const & x)
{ {
# if((GLM_LANG & GLM_LANG_CXX11_FLAG) && !(GLM_PLATFORM & GLM_PLATFORM_ANDROID)) # if GLM_HAS_CXX11_STL
return std::nextafter(x, std::numeric_limits<double>::max()); return std::nextafter(x, std::numeric_limits<double>::max());
# elif((GLM_COMPILER & GLM_COMPILER_VC) || ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_PLATFORM & GLM_PLATFORM_WINDOWS))) # elif((GLM_COMPILER & GLM_COMPILER_VC) || ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_PLATFORM & GLM_PLATFORM_WINDOWS)))
return detail::nextafter(x, std::numeric_limits<double>::max()); return detail::nextafter(x, std::numeric_limits<double>::max());
@ -239,7 +239,7 @@ namespace glm
GLM_FUNC_QUALIFIER float prev_float(float const & x) GLM_FUNC_QUALIFIER float prev_float(float const & x)
{ {
# if((GLM_LANG & GLM_LANG_CXX11_FLAG) && !(GLM_PLATFORM & GLM_PLATFORM_ANDROID)) # if GLM_HAS_CXX11_STL
return std::nextafter(x, std::numeric_limits<float>::min()); return std::nextafter(x, std::numeric_limits<float>::min());
# elif((GLM_COMPILER & GLM_COMPILER_VC) || ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_PLATFORM & GLM_PLATFORM_WINDOWS))) # elif((GLM_COMPILER & GLM_COMPILER_VC) || ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_PLATFORM & GLM_PLATFORM_WINDOWS)))
return detail::nextafterf(x, FLT_MIN); return detail::nextafterf(x, FLT_MIN);
@ -252,7 +252,7 @@ namespace glm
GLM_FUNC_QUALIFIER double prev_float(double const & x) GLM_FUNC_QUALIFIER double prev_float(double const & x)
{ {
# if((GLM_LANG & GLM_LANG_CXX11_FLAG) && !(GLM_PLATFORM & GLM_PLATFORM_ANDROID)) # if GLM_HAS_CXX11_STL
return std::nextafter(x, std::numeric_limits<double>::min()); return std::nextafter(x, std::numeric_limits<double>::min());
# elif((GLM_COMPILER & GLM_COMPILER_VC) || ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_PLATFORM & GLM_PLATFORM_WINDOWS))) # elif((GLM_COMPILER & GLM_COMPILER_VC) || ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_PLATFORM & GLM_PLATFORM_WINDOWS)))
return _nextafter(x, DBL_MIN); return _nextafter(x, DBL_MIN);

@ -39,7 +39,7 @@ namespace glm
{ {
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'isdenormal' only accept floating-point inputs"); GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'isdenormal' only accept floating-point inputs");
# if(GLM_LANG & GLM_LANG_CXX11_FLAG) # if GLM_HAS_CXX11_STL
return std::fpclassify(x) == FP_SUBNORMAL; return std::fpclassify(x) == FP_SUBNORMAL;
# else # else
return x != static_cast<T>(0) && std::fabs(x) < std::numeric_limits<T>::min(); return x != static_cast<T>(0) && std::fabs(x) < std::numeric_limits<T>::min();

@ -39,11 +39,11 @@ namespace glm
GLM_FUNC_QUALIFIER bool isfinite( GLM_FUNC_QUALIFIER bool isfinite(
genType const & x) genType const & x)
{ {
# if(GLM_LANG & GLM_LANG_CXX11_FLAG) # if GLM_HAS_CXX11_STL
return std::isfinite(x) != 0; return std::isfinite(x) != 0;
# elif(GLM_COMPILER & GLM_COMPILER_VC) # elif GLM_COMPILER & GLM_COMPILER_VC
return _finite(x); return _finite(x);
# elif(GLM_COMPILER & GLM_COMPILER_GCC && GLM_PLATFORM & GLM_PLATFORM_ANDROID) # elif GLM_COMPILER & GLM_COMPILER_GCC && GLM_PLATFORM & GLM_PLATFORM_ANDROID
return _isfinite(x) != 0; return _isfinite(x) != 0;
# else # else
return x >= std::numeric_limits<genType>::min() && x <= std::numeric_limits<genType>::max(); return x >= std::numeric_limits<genType>::min() && x <= std::numeric_limits<genType>::max();

Loading…
Cancel
Save