54 template <
typename genType>
55 GLM_FUNC_DECL genType
abs(genType x);
57 template <
typename T, precision P,
template <
typename, precision>
class vecType>
58 GLM_FUNC_DECL vecType<T, P>
abs(vecType<T, P>
const & x);
66 template <
typename T, precision P,
template <
typename, precision>
class vecType>
67 GLM_FUNC_DECL vecType<T, P>
sign(vecType<T, P>
const & x);
75 template <
typename T, precision P,
template <
typename, precision>
class vecType>
76 GLM_FUNC_DECL vecType<T, P>
floor(vecType<T, P>
const & x);
85 template <
typename T, precision P,
template <
typename, precision>
class vecType>
86 GLM_FUNC_DECL vecType<T, P>
trunc(vecType<T, P>
const & x);
98 template <
typename T, precision P,
template <
typename, precision>
class vecType>
99 GLM_FUNC_DECL vecType<T, P>
round(vecType<T, P>
const & x);
110 template <
typename T, precision P,
template <
typename, precision>
class vecType>
111 GLM_FUNC_DECL vecType<T, P>
roundEven(vecType<T, P>
const & x);
120 template <
typename T, precision P,
template <
typename, precision>
class vecType>
121 GLM_FUNC_DECL vecType<T, P>
ceil(vecType<T, P>
const & x);
129 template <
typename genType>
130 GLM_FUNC_DECL genType
fract(genType x);
132 template <
typename T, precision P,
template <
typename, precision>
class vecType>
133 GLM_FUNC_DECL vecType<T, P>
fract(vecType<T, P>
const & x);
142 template <
typename genType>
143 GLM_FUNC_DECL genType
mod(genType x, genType y);
145 template <
typename T, precision P,
template <
typename, precision>
class vecType>
146 GLM_FUNC_DECL vecType<T, P>
mod(vecType<T, P>
const & x, T y);
148 template <
typename T, precision P,
template <
typename, precision>
class vecType>
149 GLM_FUNC_DECL vecType<T, P>
mod(vecType<T, P>
const & x, vecType<T, P>
const & y);
160 template <
typename genType>
161 GLM_FUNC_DECL genType
modf(genType x, genType & i);
169 template <
typename genType>
170 GLM_FUNC_DECL genType
min(genType x, genType y);
172 template <
typename T, precision P,
template <
typename, precision>
class vecType>
173 GLM_FUNC_DECL vecType<T, P>
min(vecType<T, P>
const & x, T y);
175 template <
typename T, precision P,
template <
typename, precision>
class vecType>
176 GLM_FUNC_DECL vecType<T, P>
min(vecType<T, P>
const & x, vecType<T, P>
const & y);
184 template <
typename genType>
185 GLM_FUNC_DECL genType
max(genType x, genType y);
187 template <
typename T, precision P,
template <
typename, precision>
class vecType>
188 GLM_FUNC_DECL vecType<T, P>
max(vecType<T, P>
const & x, T y);
190 template <
typename T, precision P,
template <
typename, precision>
class vecType>
191 GLM_FUNC_DECL vecType<T, P>
max(vecType<T, P>
const & x, vecType<T, P>
const & y);
200 template <
typename genType>
201 GLM_FUNC_DECL genType
clamp(genType x, genType minVal, genType maxVal);
203 template <
typename T, precision P,
template <
typename, precision>
class vecType>
204 GLM_FUNC_DECL vecType<T, P>
clamp(vecType<T, P>
const & x, T minVal, T maxVal);
206 template <
typename T, precision P,
template <
typename, precision>
class vecType>
207 GLM_FUNC_DECL vecType<T, P>
clamp(vecType<T, P>
const & x, vecType<T, P>
const & minVal, vecType<T, P>
const & maxVal);
251 template <
typename T,
typename U, precision P,
template <
typename, precision>
class vecType>
252 GLM_FUNC_DECL vecType<T, P>
mix(vecType<T, P>
const & x, vecType<T, P>
const & y, vecType<U, P>
const & a);
254 template <
typename T,
typename U, precision P,
template <
typename, precision>
class vecType>
255 GLM_FUNC_DECL vecType<T, P>
mix(vecType<T, P>
const & x, vecType<T, P>
const & y, U a);
257 template <
typename genTypeT,
typename genTypeU>
258 GLM_FUNC_DECL genTypeT
mix(genTypeT x, genTypeT y, genTypeU a);
264 template <
typename genType>
265 GLM_FUNC_DECL genType
step(genType edge, genType x);
271 template <
template <
typename, precision>
class vecType,
typename T, precision P>
272 GLM_FUNC_DECL vecType<T, P>
step(T edge, vecType<T, P>
const & x);
278 template <
template <
typename, precision>
class vecType,
typename T, precision P>
279 GLM_FUNC_DECL vecType<T, P>
step(vecType<T, P>
const & edge, vecType<T, P>
const & x);
295 template <
typename genType>
296 GLM_FUNC_DECL genType
smoothstep(genType edge0, genType edge1, genType x);
298 template <
typename T, precision P,
template <
typename, precision>
class vecType>
299 GLM_FUNC_DECL vecType<T, P>
smoothstep(T edge0, T edge1, vecType<T, P>
const & x);
301 template <
typename T, precision P,
template <
typename, precision>
class vecType>
302 GLM_FUNC_DECL vecType<T, P>
smoothstep(vecType<T, P>
const & edge0, vecType<T, P>
const & edge1, vecType<T, P>
const & x);
316 template <
typename T, precision P,
template <
typename, precision>
class vecType>
317 GLM_FUNC_DECL vecType<bool, P>
isnan(vecType<T, P>
const & x);
329 template <
typename T, precision P,
template <
typename, precision>
class vecType>
330 GLM_FUNC_DECL vecType<bool, P>
isinf(vecType<T, P>
const & x);
346 template <
template <
typename, precision>
class vecType, precision P>
347 GLM_FUNC_DECL vecType<int, P>
floatBitsToInt(vecType<float, P>
const & v);
363 template <
template <
typename, precision>
class vecType, precision P>
364 GLM_FUNC_DECL vecType<uint, P>
floatBitsToUint(vecType<float, P>
const & v);
384 template <
template <
typename, precision>
class vecType, precision P>
385 GLM_FUNC_DECL vecType<float, P>
intBitsToFloat(vecType<int, P>
const & v);
405 template <
template <
typename, precision>
class vecType, precision P>
406 GLM_FUNC_DECL vecType<float, P>
uintBitsToFloat(vecType<uint, P>
const & v);
414 template <
typename genType>
415 GLM_FUNC_DECL genType
fma(genType
const & a, genType
const & b, genType
const & c);
431 template <
typename genType,
typename genIType>
432 GLM_FUNC_DECL genType
frexp(genType
const & x, genIType &
exp);
445 template <
typename genType,
typename genIType>
446 GLM_FUNC_DECL genType
ldexp(genType
const & x, genIType
const &
exp);
451 #include "func_common.inl"
GLM_FUNC_DECL vecType< bool, P > isinf(vecType< T, P > const &x)
Returns true if x holds a positive infinity or negative infinity representation in the underlying imp...
unsigned int uint
Unsigned integer type.
GLM_FUNC_DECL genType mod(genType x, genType y)
Modulus.
GLM_FUNC_DECL vecType< T, P > roundEven(vecType< T, P > const &x)
Returns a value equal to the nearest integer to x.
GLM_FUNC_DECL vecType< T, P > exp(vecType< T, P > const &v)
Returns the natural exponentiation of x, i.e., e^x.
GLM_FUNC_DECL genType max(genType x, genType y)
Returns y if x < y; otherwise, it returns x.
GLM_FUNC_DECL genType abs(genType x)
Returns x if x >= 0; otherwise, it returns -x.
GLM_FUNC_DECL genType ldexp(genType const &x, genIType const &exp)
Builds a floating-point number from x and the corresponding integral exponent of two in exp...
GLM_FUNC_DECL vecType< T, P > step(vecType< T, P > const &edge, vecType< T, P > const &x)
Returns 0.0 if x < edge, otherwise it returns 1.0.
GLM_FUNC_DECL genType min(genType x, genType y)
Returns y if y < x; otherwise, it returns x.
OpenGL Mathematics (glm.g-truc.net)
GLM_FUNC_DECL genType fma(genType const &a, genType const &b, genType const &c)
Computes and returns a * b + c.
GLM_FUNC_DECL vecType< T, P > mix(vecType< T, P > const &x, vecType< T, P > const &y, vecType< U, P > const &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 vecType< bool, P > isnan(vecType< T, P > const &x)
Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of...
GLM_FUNC_DECL vecType< T, P > trunc(vecType< T, P > const &x)
Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolut...
GLM_FUNC_DECL vecType< T, P > ceil(vecType< T, P > const &x)
Returns a value equal to the nearest integer that is greater than or equal 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 genType clamp(genType x, genType minVal, genType maxVal)
Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...
GLM_FUNC_DECL vecType< float, P > uintBitsToFloat(vecType< uint, P > const &v)
Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value...
GLM_FUNC_DECL vecType< uint, P > floatBitsToUint(vecType< float, P > const &v)
Returns a unsigned integer value representing the encoding of a floating-point value.
GLM_FUNC_DECL vecType< T, P > round(vecType< T, P > const &x)
Returns a value equal to the nearest integer to x.
GLM_FUNC_DECL vecType< int, P > floatBitsToInt(vecType< float, P > const &v)
Returns a signed integer value representing the encoding of a floating-point value.
GLM_FUNC_DECL vecType< T, P > sign(vecType< T, P > const &x)
Returns 1.0 if x > 0, 0.0 if x == 0, or -1.0 if x < 0.
OpenGL Mathematics (glm.g-truc.net)
GLM_FUNC_DECL vecType< T, P > floor(vecType< T, P > const &x)
Returns a value equal to the nearest integer that is less then or equal to x.
GLM_FUNC_DECL genType frexp(genType const &x, genIType &exp)
Splits x into a floating-point significand in the range [0.5, 1.0) and an integral exponent of two...
OpenGL Mathematics (glm.g-truc.net)
GLM_FUNC_DECL genType fract(genType x)
Return x - floor(x).
GLM_FUNC_DECL vecType< float, P > intBitsToFloat(vecType< int, P > const &v)
Returns a floating-point value corresponding to a signed integer encoding of a floating-point value...
OpenGL Mathematics (glm.g-truc.net)
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...