| /////////////////////////////////////////////////////////////////////////////////////////////////// |
| // OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) |
| /////////////////////////////////////////////////////////////////////////////////////////////////// |
| // Created : 2005-12-21 |
| // Updated : 2005-12-27 |
| // Licence : This source is under MIT License |
| // File : glm/gtx/optimum_pow.inl |
| /////////////////////////////////////////////////////////////////////////////////////////////////// |
| |
| namespace glm |
| { |
| template <typename genType> |
| GLM_FUNC_QUALIFIER genType pow2(genType const & x) |
| { |
| return x * x; |
| } |
| |
| template <typename genType> |
| GLM_FUNC_QUALIFIER genType pow3(genType const & x) |
| { |
| return x * x * x; |
| } |
| |
| template <typename genType> |
| GLM_FUNC_QUALIFIER genType pow4(genType const & x) |
| { |
| return (x * x) * (x * x); |
| } |
| |
| GLM_FUNC_QUALIFIER bool powOfTwo(int x) |
| { |
| return !(x & (x - 1)); |
| } |
| |
| template <precision P> |
| GLM_FUNC_QUALIFIER detail::tvec2<bool, P> powOfTwo(detail::tvec2<int, P> const & x) |
| { |
| return detail::tvec2<bool, P>( |
| powOfTwo(x.x), |
| powOfTwo(x.y)); |
| } |
| |
| template <precision P> |
| GLM_FUNC_QUALIFIER detail::tvec3<bool, P> powOfTwo(detail::tvec3<int, P> const & x) |
| { |
| return detail::tvec3<bool, P>( |
| powOfTwo(x.x), |
| powOfTwo(x.y), |
| powOfTwo(x.z)); |
| } |
| |
| template <precision P> |
| GLM_FUNC_QUALIFIER detail::tvec4<bool, P> powOfTwo(detail::tvec4<int, P> const & x) |
| { |
| return detail::tvec4<bool, P>( |
| powOfTwo(x.x), |
| powOfTwo(x.y), |
| powOfTwo(x.z), |
| powOfTwo(x.w)); |
| } |
| }//namespace glm |