17 #include "detail/qualifier.hpp" 
   18 #include "detail/_fixes.hpp" 
   31         template<
typename genType>
 
   32         GLM_FUNC_DECL GLM_CONSTEXPR genType 
abs(genType x);
 
   42         template<length_t L, 
typename T, qualifier Q>
 
   43         GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> 
abs(vec<L, T, Q> 
const& x);
 
   53         template<length_t L, 
typename T, qualifier Q>
 
   54         GLM_FUNC_DECL vec<L, T, Q> 
sign(vec<L, T, Q> 
const& x);
 
   64         template<length_t L, 
typename T, qualifier Q>
 
   65         GLM_FUNC_DECL vec<L, T, Q> 
floor(vec<L, T, Q> 
const& x);
 
   76         template<length_t L, 
typename T, qualifier Q>
 
   77         GLM_FUNC_DECL vec<L, T, Q> 
trunc(vec<L, T, Q> 
const& x);
 
   91         template<length_t L, 
typename T, qualifier Q>
 
   92         GLM_FUNC_DECL vec<L, T, Q> 
round(vec<L, T, Q> 
const& x);
 
  105         template<length_t L, 
typename T, qualifier Q>
 
  106         GLM_FUNC_DECL vec<L, T, Q> 
roundEven(vec<L, T, Q> 
const& x);
 
  117         template<length_t L, 
typename T, qualifier Q>
 
  118         GLM_FUNC_DECL vec<L, T, Q> 
ceil(vec<L, T, Q> 
const& x);
 
  126         template<
typename genType>
 
  127         GLM_FUNC_DECL genType 
fract(genType x);
 
  137         template<length_t L, 
typename T, qualifier Q>
 
  138         GLM_FUNC_DECL vec<L, T, Q> 
fract(vec<L, T, Q> 
const& x);
 
  140         template<
typename genType>
 
  141         GLM_FUNC_DECL genType 
mod(genType x, genType y);
 
  143         template<length_t L, 
typename T, qualifier Q>
 
  144         GLM_FUNC_DECL vec<L, T, Q> 
mod(vec<L, T, Q> 
const& x, T y);
 
  155         template<length_t L, 
typename T, qualifier Q>
 
  156         GLM_FUNC_DECL vec<L, T, Q> 
mod(vec<L, T, Q> 
const& x, vec<L, T, Q> 
const& y);
 
  167         template<
typename genType>
 
  168         GLM_FUNC_DECL genType 
modf(genType x, genType& i);
 
  176         template<
typename genType>
 
  177         GLM_FUNC_DECL GLM_CONSTEXPR genType 
min(genType x, genType y);
 
  187         template<length_t L, 
typename T, qualifier Q>
 
  188         GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> 
min(vec<L, T, Q> 
const& x, T y);
 
  198         template<length_t L, 
typename T, qualifier Q>
 
  199         GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> 
min(vec<L, T, Q> 
const& x, vec<L, T, Q> 
const& y);
 
  207         template<
typename genType>
 
  208         GLM_FUNC_DECL GLM_CONSTEXPR genType 
max(genType x, genType y);
 
  218         template<length_t L, 
typename T, qualifier Q>
 
  219         GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> 
max(vec<L, T, Q> 
const& x, T y);
 
  229         template<length_t L, 
typename T, qualifier Q>
 
  230         GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> 
max(vec<L, T, Q> 
const& x, vec<L, T, Q> 
const& y);
 
  239         template<
typename genType>
 
  240         GLM_FUNC_DECL GLM_CONSTEXPR genType 
clamp(genType x, genType minVal, genType maxVal);
 
  251         template<length_t L, 
typename T, qualifier Q>
 
  252         GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> 
clamp(vec<L, T, Q> 
const& x, T minVal, T maxVal);
 
  263         template<length_t L, 
typename T, qualifier Q>
 
  264         GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> 
clamp(vec<L, T, Q> 
const& x, vec<L, T, Q> 
const& minVal, vec<L, T, Q> 
const& maxVal);
 
  308         template<
typename genTypeT, 
typename genTypeU>
 
  309         GLM_FUNC_DECL genTypeT 
mix(genTypeT x, genTypeT y, genTypeU a);
 
  311         template<length_t L, 
typename T, 
typename U, qualifier Q>
 
  312         GLM_FUNC_DECL vec<L, T, Q> 
mix(vec<L, T, Q> 
const& x, vec<L, T, Q> 
const& y, vec<L, U, Q> 
const& a);
 
  314         template<length_t L, 
typename T, 
typename U, qualifier Q>
 
  315         GLM_FUNC_DECL vec<L, T, Q> 
mix(vec<L, T, Q> 
const& x, vec<L, T, Q> 
const& y, U a);
 
  321         template<
typename genType>
 
  322         GLM_FUNC_DECL genType 
step(genType edge, genType x);
 
  332         template<length_t L, 
typename T, qualifier Q>
 
  333         GLM_FUNC_DECL vec<L, T, Q> 
step(T edge, vec<L, T, Q> 
const& x);
 
  343         template<length_t L, 
typename T, qualifier Q>
 
  344         GLM_FUNC_DECL vec<L, T, Q> 
step(vec<L, T, Q> 
const& edge, vec<L, T, Q> 
const& x);
 
  360         template<
typename genType>
 
  361         GLM_FUNC_DECL genType 
smoothstep(genType edge0, genType edge1, genType x);
 
  363         template<length_t L, 
typename T, qualifier Q>
 
  364         GLM_FUNC_DECL vec<L, T, Q> 
smoothstep(T edge0, T edge1, vec<L, T, Q> 
const& x);
 
  366         template<length_t L, 
typename T, qualifier Q>
 
  367         GLM_FUNC_DECL vec<L, T, Q> 
smoothstep(vec<L, T, Q> 
const& edge0, vec<L, T, Q> 
const& edge1, vec<L, T, Q> 
const& x);
 
  383         template<length_t L, 
typename T, qualifier Q>
 
  384         GLM_FUNC_DECL vec<L, bool, Q> 
isnan(vec<L, T, Q> 
const& x);
 
  398         template<length_t L, 
typename T, qualifier Q>
 
  399         GLM_FUNC_DECL vec<L, bool, Q> 
isinf(vec<L, T, Q> 
const& x);
 
  418         template<length_t L, qualifier Q>
 
  419         GLM_FUNC_DECL vec<L, int, Q> 
floatBitsToInt(vec<L, float, Q> 
const& v);
 
  438         template<length_t L, qualifier Q>
 
  439         GLM_FUNC_DECL vec<L, uint, Q> 
floatBitsToUint(vec<L, float, Q> 
const& v);
 
  462         template<length_t L, qualifier Q>
 
  463         GLM_FUNC_DECL vec<L, float, Q> 
intBitsToFloat(vec<L, int, Q> 
const& v);
 
  486         template<length_t L, qualifier Q>
 
  487         GLM_FUNC_DECL vec<L, float, Q> 
uintBitsToFloat(vec<L, uint, Q> 
const& v);
 
  495         template<
typename genType>
 
  496         GLM_FUNC_DECL genType 
fma(genType 
const& a, genType 
const& b, genType 
const& c);
 
  512         template<
typename genType>
 
  513         GLM_FUNC_DECL genType 
frexp(genType x, 
int& 
exp);
 
  515         template<length_t L, 
typename T, qualifier Q>
 
  516         GLM_FUNC_DECL vec<L, T, Q> 
frexp(vec<L, T, Q> 
const& v, vec<L, int, Q>& 
exp);
 
  529         template<
typename genType>
 
  530         GLM_FUNC_DECL genType 
ldexp(genType 
const& x, 
int const& 
exp);
 
  532         template<length_t L, 
typename T, qualifier Q>
 
  533         GLM_FUNC_DECL vec<L, T, Q> 
ldexp(vec<L, T, Q> 
const& v, vec<L, int, Q> 
const& 
exp);
 
  538 #include "detail/func_common.inl" 
GLM_FUNC_DECL vec< L, T, Q > floor(vec< L, T, Q > const &x)
Returns a value equal to the nearest integer that is less then or equal to x. 
GLM_FUNC_DECL genType fma(genType const &a, genType const &b, genType const &c)
Computes and returns a * b + c. 
GLM_FUNC_DECL vec< L, T, Q > trunc(vec< L, T, Q > const &x)
Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolut...
GLM_FUNC_DECL vec< L, T, Q > mod(vec< L, T, Q > const &x, vec< L, T, Q > const &y)
Modulus. 
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > clamp(vec< L, T, Q > const &x, vec< L, T, Q > const &minVal, vec< L, T, Q > const &maxVal)
Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...
GLM_FUNC_DECL vec< L, T, Q > round(vec< L, T, Q > const &x)
Returns a value equal to the nearest integer to x. 
GLM_FUNC_DECL vec< L, float, Q > uintBitsToFloat(vec< L, uint, Q > const &v)
Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value...
GLM_FUNC_DECL vec< L, T, Q > sign(vec< L, T, Q > const &x)
Returns 1.0 if x > 0, 0.0 if x == 0, or -1.0 if x < 0. 
GLM_FUNC_DECL vec< L, bool, Q > isinf(vec< L, T, Q > const &x)
Returns true if x holds a positive infinity or negative infinity representation in the underlying imp...
GLM_FUNC_DECL vec< L, T, Q > roundEven(vec< L, T, Q > const &x)
Returns a value equal to the nearest integer to x. 
GLM_FUNC_DECL genType modf(genType x, genType &i)
Returns the fractional part of x and sets i to the integer part (as a whole number floating point val...
GLM_FUNC_DECL vec< L, T, Q > ceil(vec< L, T, Q > const &x)
Returns a value equal to the nearest integer that is greater than or equal to x. 
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > min(vec< L, T, Q > const &x, vec< L, T, Q > const &y)
Returns y if y < x; otherwise, it returns x. 
GLM_FUNC_DECL vec< L, float, Q > intBitsToFloat(vec< L, int, Q > const &v)
Returns a floating-point value corresponding to a signed integer encoding of a floating-point value...
GLM_FUNC_DECL vec< L, bool, Q > isnan(vec< L, T, Q > const &x)
Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of...
GLM_FUNC_DECL vec< L, T, Q > exp(vec< L, T, Q > const &v)
Returns the natural exponentiation of x, i.e., e^x. 
GLM_FUNC_DECL vec< L, uint, Q > floatBitsToUint(vec< L, float, Q > const &v)
Returns a unsigned integer value representing the encoding of a floating-point value. 
GLM_FUNC_DECL genType smoothstep(genType edge0, genType edge1, genType x)
Returns 0.0 if x <= edge0 and 1.0 if x >= edge1 and performs smooth Hermite interpolation between 0 a...
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > abs(vec< L, T, Q > const &x)
Returns x if x >= 0; otherwise, it returns -x. 
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > max(vec< L, T, Q > const &x, vec< L, T, Q > const &y)
Returns y if x < y; otherwise, it returns x. 
GLM_FUNC_DECL vec< L, T, Q > step(vec< L, T, Q > const &edge, vec< L, T, Q > const &x)
Returns 0.0 if x < edge, otherwise it returns 1.0. 
GLM_FUNC_DECL vec< L, T, Q > fract(vec< L, T, Q > const &x)
Return x - floor(x). 
GLM_FUNC_DECL genType ldexp(genType const &x, int const &exp)
Builds a floating-point number from x and the corresponding integral exponent of two in exp...
GLM_FUNC_DECL vec< L, int, Q > floatBitsToInt(vec< L, float, Q > const &v)
Returns a signed integer value representing the encoding of a floating-point value. 
GLM_FUNC_DECL genTypeT mix(genTypeT x, genTypeT y, genTypeU a)
If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...
GLM_FUNC_DECL genType frexp(genType x, int &exp)
Splits x into a floating-point significand in the range [0.5, 1.0) and an integral exponent of two...