summaryrefslogtreecommitdiff
path: root/src/glm/gtx/optimum_pow.inl
diff options
context:
space:
mode:
Diffstat (limited to 'src/glm/gtx/optimum_pow.inl')
-rw-r--r--src/glm/gtx/optimum_pow.inl63
1 files changed, 63 insertions, 0 deletions
diff --git a/src/glm/gtx/optimum_pow.inl b/src/glm/gtx/optimum_pow.inl
new file mode 100644
index 0000000..a941ec3
--- /dev/null
+++ b/src/glm/gtx/optimum_pow.inl
@@ -0,0 +1,63 @@
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// OpenGL Mathematics Copyright (c) 2005 - 2011 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{
+namespace gtx{
+namespace optimum_pow{
+
+ template <typename genType>
+ GLM_FUNC_QUALIFIER genType pow2(const genType& x)
+ {
+ return x * x;
+ }
+
+ template <typename genType>
+ GLM_FUNC_QUALIFIER genType pow3(const genType& x)
+ {
+ return x * x * x;
+ }
+
+ template <typename genType>
+ GLM_FUNC_QUALIFIER genType pow4(const genType& x)
+ {
+ return x * x * x * x;
+ }
+
+ GLM_FUNC_QUALIFIER bool powOfTwo(int x)
+ {
+ return !(x & (x - 1));
+ }
+
+ GLM_FUNC_QUALIFIER detail::tvec2<bool> powOfTwo(const detail::tvec2<int>& x)
+ {
+ return detail::tvec2<bool>(
+ powOfTwo(x.x),
+ powOfTwo(x.y));
+ }
+
+ GLM_FUNC_QUALIFIER detail::tvec3<bool> powOfTwo(const detail::tvec3<int>& x)
+ {
+ return detail::tvec3<bool>(
+ powOfTwo(x.x),
+ powOfTwo(x.y),
+ powOfTwo(x.z));
+ }
+
+ GLM_FUNC_QUALIFIER detail::tvec4<bool> powOfTwo(const detail::tvec4<int>& x)
+ {
+ return detail::tvec4<bool>(
+ powOfTwo(x.x),
+ powOfTwo(x.y),
+ powOfTwo(x.z),
+ powOfTwo(x.w));
+ }
+
+}//namespace optimum_pow
+}//namespace gtx
+}//namespace glm