20 #include "vector_relational.hpp"
35 template<length_t L, qualifier Q>
37 vec<L, uint, Q>
const& x,
38 vec<L, uint, Q>
const& y,
39 vec<L, uint, Q> & carry);
49 template<length_t L, qualifier Q>
51 vec<L, uint, Q>
const& x,
52 vec<L, uint, Q>
const& y,
53 vec<L, uint, Q> & borrow);
63 template<length_t L, qualifier Q>
65 vec<L, uint, Q>
const& x,
66 vec<L, uint, Q>
const& y,
67 vec<L, uint, Q> & msb,
68 vec<L, uint, Q> & lsb);
78 template<length_t L, qualifier Q>
80 vec<L, int, Q>
const& x,
81 vec<L, int, Q>
const& y,
83 vec<L, int, Q> & lsb);
101 template<length_t L,
typename T, qualifier Q>
103 vec<L, T, Q>
const& Value,
122 template<length_t L,
typename T, qualifier Q>
124 vec<L, T, Q>
const& Base,
125 vec<L, T, Q>
const& Insert,
138 template<length_t L,
typename T, qualifier Q>
147 template<
typename genType>
148 GLM_FUNC_DECL
int bitCount(genType v);
157 template<length_t L,
typename T, qualifier Q>
158 GLM_FUNC_DECL vec<L, int, Q>
bitCount(vec<L, T, Q>
const& v);
168 template<
typename genIUType>
169 GLM_FUNC_DECL
int findLSB(genIUType x);
180 template<length_t L,
typename T, qualifier Q>
181 GLM_FUNC_DECL vec<L, int, Q>
findLSB(vec<L, T, Q>
const& v);
192 template<
typename genIUType>
193 GLM_FUNC_DECL
int findMSB(genIUType x);
205 template<length_t L,
typename T, qualifier Q>
206 GLM_FUNC_DECL vec<L, int, Q>
findMSB(vec<L, T, Q>
const& v);
211 #include "detail/func_integer.inl"
GLM_FUNC_DECL vec< L, int, Q > findMSB(vec< L, T, Q > const &v)
Returns the bit number of the most significant bit in the binary representation of value...
GLM_FUNC_DECL vec< L, T, Q > bitfieldReverse(vec< L, T, Q > const &v)
Returns the reversal of the bits of value.
GLM_FUNC_DECL void imulExtended(vec< L, int, Q > const &x, vec< L, int, Q > const &y, vec< L, int, Q > &msb, vec< L, int, Q > &lsb)
Multiplies 32-bit integers x and y, producing a 64-bit result.
GLM_FUNC_DECL vec< L, uint, Q > uaddCarry(vec< L, uint, Q > const &x, vec< L, uint, Q > const &y, vec< L, uint, Q > &carry)
Adds 32-bit unsigned integer x and y, returning the sum modulo pow(2, 32).
GLM_FUNC_DECL vec< L, int, Q > findLSB(vec< L, T, Q > const &v)
Returns the bit number of the least significant bit set to 1 in the binary representation of value...
GLM_FUNC_DECL vec< L, int, Q > bitCount(vec< L, T, Q > const &v)
Returns the number of bits set to 1 in the binary representation of value.
GLM_FUNC_DECL vec< L, T, Q > bitfieldInsert(vec< L, T, Q > const &Base, vec< L, T, Q > const &Insert, int Offset, int Bits)
Returns the insertion the bits least-significant bits of insert into base.
GLM_FUNC_DECL vec< L, T, Q > bitfieldExtract(vec< L, T, Q > const &Value, int Offset, int Bits)
Extracts bits [offset, offset + bits - 1] from value, returning them in the least significant bits of...
GLM_FUNC_DECL vec< L, uint, Q > usubBorrow(vec< L, uint, Q > const &x, vec< L, uint, Q > const &y, vec< L, uint, Q > &borrow)
Subtracts the 32-bit unsigned integer y from x, returning the difference if non-negative, or pow(2, 32) plus the difference otherwise.
GLM_FUNC_DECL void umulExtended(vec< L, uint, Q > const &x, vec< L, uint, Q > const &y, vec< L, uint, Q > &msb, vec< L, uint, Q > &lsb)
Multiplies 32-bit integers x and y, producing a 64-bit result.