func_integer.hpp
Go to the documentation of this file.
00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 
00028 
00029 #ifndef glm_core_func_integer
00030 #define glm_core_func_integer
00031 
00032 namespace glm
00033 {
00036 
00043         template <typename genUType>
00044         genUType uaddCarry(
00045                 genUType const & x, 
00046                 genUType const & y, 
00047                 genUType & carry);
00048 
00055         template <typename genUType>
00056         genUType usubBorrow(
00057                 genUType const & x, 
00058                 genUType const & y, 
00059                 genUType & borrow);
00060                 
00067         template <typename genUType>
00068         void umulExtended(
00069                 genUType const & x, 
00070                 genUType const & y, 
00071                 genUType & msb, 
00072                 genUType & lsb);
00073                 
00080         template <typename genIType>
00081         void imulExtended(
00082                 genIType const & x, 
00083                 genIType const & y, 
00084                 genIType & msb, 
00085                 genIType & lsb);
00086 
00100         template <typename genIUType>
00101         genIUType bitfieldExtract(
00102                 genIUType const & Value, 
00103                 int const & Offset, 
00104                 int const & Bits);
00105 
00118         template <typename genIUType>
00119         genIUType bitfieldInsert(
00120                 genIUType const & Base, 
00121                 genIUType const & Insert, 
00122                 int const & Offset, 
00123                 int const & Bits);
00124 
00131         template <typename genIUType>
00132         genIUType bitfieldReverse(genIUType const & value);
00133                 
00138         template <typename T, template <typename> class C>
00139         typename C<T>::signed_type bitCount(C<T> const & Value);
00140 
00147         template <typename T, template <typename> class C>
00148         typename C<T>::signed_type findLSB(C<T> const & Value);
00149 
00157         template <typename T, template <typename> class C>
00158         typename C<T>::signed_type findMSB(C<T> const & Value);
00159 
00161 }//namespace glm
00162 
00163 #include "func_integer.inl"
00164 
00165 #endif//glm_core_func_integer
00166