Fixed build
This commit is contained in:
parent
340083edce
commit
9e9ffe65f1
@ -8,6 +8,44 @@
|
|||||||
#include "_vectorize.hpp"
|
#include "_vectorize.hpp"
|
||||||
#include <limits>
|
#include <limits>
|
||||||
|
|
||||||
|
namespace glm
|
||||||
|
{
|
||||||
|
// abs
|
||||||
|
template <>
|
||||||
|
GLM_FUNC_QUALIFIER int32 abs(int32 x)
|
||||||
|
{
|
||||||
|
int32 const y = x >> 31;
|
||||||
|
return (x ^ y) - y;
|
||||||
|
}
|
||||||
|
|
||||||
|
// round
|
||||||
|
# if GLM_HAS_CXX11_STL
|
||||||
|
using ::std::round;
|
||||||
|
# else
|
||||||
|
template <typename genType>
|
||||||
|
GLM_FUNC_QUALIFIER genType round(genType x)
|
||||||
|
{
|
||||||
|
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'round' only accept floating-point inputs");
|
||||||
|
|
||||||
|
return x < static_cast<genType>(0) ? static_cast<genType>(int(x - static_cast<genType>(0.5))) : static_cast<genType>(int(x + static_cast<genType>(0.5)));
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
|
||||||
|
// trunc
|
||||||
|
# if GLM_HAS_CXX11_STL
|
||||||
|
using ::std::trunc;
|
||||||
|
# else
|
||||||
|
template <typename genType>
|
||||||
|
GLM_FUNC_QUALIFIER genType trunc(genType x)
|
||||||
|
{
|
||||||
|
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'trunc' only accept floating-point inputs");
|
||||||
|
|
||||||
|
return x < static_cast<genType>(0) ? -floor(-x) : floor(x);
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
|
||||||
|
}//namespace glm
|
||||||
|
|
||||||
namespace glm{
|
namespace glm{
|
||||||
namespace detail
|
namespace detail
|
||||||
{
|
{
|
||||||
@ -152,7 +190,7 @@ namespace detail
|
|||||||
{
|
{
|
||||||
GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & x)
|
GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & x)
|
||||||
{
|
{
|
||||||
return detail::functor1<T, T, P, vecType>::call(floor, x);
|
return detail::functor1<T, T, P, vecType>::call(std::floor, x);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -161,7 +199,7 @@ namespace detail
|
|||||||
{
|
{
|
||||||
GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & x)
|
GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & x)
|
||||||
{
|
{
|
||||||
return detail::functor1<T, T, P, vecType>::call(ceil, x);
|
return detail::functor1<T, T, P, vecType>::call(std::ceil, x);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -203,14 +241,6 @@ namespace detail
|
|||||||
};
|
};
|
||||||
}//namespace detail
|
}//namespace detail
|
||||||
|
|
||||||
// abs
|
|
||||||
template <>
|
|
||||||
GLM_FUNC_QUALIFIER int32 abs(int32 x)
|
|
||||||
{
|
|
||||||
int32 const y = x >> 31;
|
|
||||||
return (x ^ y) - y;
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename genFIType>
|
template <typename genFIType>
|
||||||
GLM_FUNC_QUALIFIER genFIType abs(genFIType x)
|
GLM_FUNC_QUALIFIER genFIType abs(genFIType x)
|
||||||
{
|
{
|
||||||
@ -254,19 +284,6 @@ namespace detail
|
|||||||
return detail::compute_floor<T, P, vecType>::call(x);
|
return detail::compute_floor<T, P, vecType>::call(x);
|
||||||
}
|
}
|
||||||
|
|
||||||
// trunc
|
|
||||||
# if GLM_HAS_CXX11_STL
|
|
||||||
using ::std::trunc;
|
|
||||||
# else
|
|
||||||
template <typename genType>
|
|
||||||
GLM_FUNC_QUALIFIER genType trunc(genType x)
|
|
||||||
{
|
|
||||||
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'trunc' only accept floating-point inputs");
|
|
||||||
|
|
||||||
return x < static_cast<genType>(0) ? -floor(-x) : floor(x);
|
|
||||||
}
|
|
||||||
# endif
|
|
||||||
|
|
||||||
template <typename T, precision P, template <typename, precision> class vecType>
|
template <typename T, precision P, template <typename, precision> class vecType>
|
||||||
GLM_FUNC_QUALIFIER vecType<T, P> trunc(vecType<T, P> const & x)
|
GLM_FUNC_QUALIFIER vecType<T, P> trunc(vecType<T, P> const & x)
|
||||||
{
|
{
|
||||||
@ -274,19 +291,6 @@ namespace detail
|
|||||||
return detail::compute_trunc<T, P, vecType>::call(x);
|
return detail::compute_trunc<T, P, vecType>::call(x);
|
||||||
}
|
}
|
||||||
|
|
||||||
// round
|
|
||||||
# if GLM_HAS_CXX11_STL
|
|
||||||
using ::std::round;
|
|
||||||
# else
|
|
||||||
template <typename genType>
|
|
||||||
GLM_FUNC_QUALIFIER genType round(genType x)
|
|
||||||
{
|
|
||||||
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'round' only accept floating-point inputs");
|
|
||||||
|
|
||||||
return x < static_cast<genType>(0) ? static_cast<genType>(int(x - static_cast<genType>(0.5))) : static_cast<genType>(int(x + static_cast<genType>(0.5)));
|
|
||||||
}
|
|
||||||
# endif
|
|
||||||
|
|
||||||
template <typename T, precision P, template <typename, precision> class vecType>
|
template <typename T, precision P, template <typename, precision> class vecType>
|
||||||
GLM_FUNC_QUALIFIER vecType<T, P> round(vecType<T, P> const & x)
|
GLM_FUNC_QUALIFIER vecType<T, P> round(vecType<T, P> const & x)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user