GLM Version 0.9.0
|
00001 00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) 00004 // Created : 2010-03-17 00005 // Updated : 2010-03-31 00006 // Licence : This source is under MIT License 00007 // File : glm/core/func_integer.hpp 00009 00010 #ifndef glm_core_func_integer 00011 #define glm_core_func_integer 00012 00013 namespace glm 00014 { 00015 namespace test{ 00016 void main_core_func_integer(); 00017 }//namespace test 00018 00019 namespace core{ 00020 namespace function{ 00022 namespace integer{ 00023 00029 template <typename genUType> 00030 genUType uaddCarry( 00031 genUType const & x, 00032 genUType const & y, 00033 genUType & carry); 00034 00040 template <typename genUType> 00041 genUType usubBorrow( 00042 genUType const & x, 00043 genUType const & y, 00044 genUType & borrow); 00045 00050 template <typename genUType> 00051 void umulExtended( 00052 genUType const & x, 00053 genUType const & y, 00054 genUType & msb, 00055 genUType & lsb); 00056 00061 template <typename genIType> 00062 void imulExtended( 00063 genIType const & x, 00064 genIType const & y, 00065 genIType & msb, 00066 genIType & lsb); 00067 00068 00081 template <typename genIUType> 00082 genIUType bitfieldExtract( 00083 genIUType const & Value, 00084 int const & Offset, 00085 int const & Bits); 00086 00098 template <typename genIUType> 00099 genIUType bitfieldInsert( 00100 genIUType const & Base, 00101 genIUType const & Insert, 00102 int const & Offset, 00103 int const & Bits); 00104 00109 template <typename genIUType> 00110 genIUType bitfieldReverse(genIUType const & value); 00111 00114 template <typename T, template <typename> class C> 00115 typename C<T>::signed_type bitCount(C<T> const & Value); 00116 00121 template <typename T, template <typename> class C> 00122 typename C<T>::signed_type findLSB(C<T> const & Value); 00123 00129 template <typename T, template <typename> class C> 00130 typename C<T>::signed_type findMSB(C<T> const & Value); 00131 00132 }//namespace integer 00133 }//namespace function 00134 }//namespace core 00135 00136 using namespace core::function::integer; 00137 }//namespace glm 00138 00139 #include "func_integer.inl" 00140 00141 #endif//glm_core_func_integer 00142