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 }
00162
00163 #include "func_integer.inl"
00164
00165 #endif//glm_core_func_integer
00166