func_integer.hpp
Go to the documentation of this file.
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 #ifndef glm_core_func_integer
39 #define glm_core_func_integer GLM_VERSION
40 
41 namespace glm
42 {
45 
54  template <typename genUType>
55  genUType uaddCarry(
56  genUType const & x,
57  genUType const & y,
58  genUType & carry);
59 
68  template <typename genUType>
69  genUType usubBorrow(
70  genUType const & x,
71  genUType const & y,
72  genUType & borrow);
73 
82  template <typename genUType>
83  void umulExtended(
84  genUType const & x,
85  genUType const & y,
86  genUType & msb,
87  genUType & lsb);
88 
97  template <typename genIType>
98  void imulExtended(
99  genIType const & x,
100  genIType const & y,
101  genIType & msb,
102  genIType & lsb);
103 
119  template <typename genIUType>
120  genIUType bitfieldExtract(
121  genIUType const & Value,
122  int const & Offset,
123  int const & Bits);
124 
139  template <typename genIUType>
140  genIUType bitfieldInsert(
141  genIUType const & Base,
142  genIUType const & Insert,
143  int const & Offset,
144  int const & Bits);
145 
154  template <typename genIUType>
155  genIUType bitfieldReverse(genIUType const & Value);
156 
165  template <typename T, template <typename> class genIUType>
166  typename genIUType<T>::signed_type bitCount(genIUType<T> const & Value);
167 
178  template <typename T, template <typename> class genIUType>
179  typename genIUType<T>::signed_type findLSB(genIUType<T> const & Value);
180 
192  template <typename T, template <typename> class genIUType>
193  typename genIUType<T>::signed_type findMSB(genIUType<T> const & Value);
194 
196 }//namespace glm
197 
198 #include "func_integer.inl"
199 
200 #endif//glm_core_func_integer
201