0.9.7
func_common.hpp
Go to the documentation of this file.
1 
40 #pragma once
41 
42 #include "setup.hpp"
43 #include "precision.hpp"
44 #include "type_int.hpp"
45 #include "_fixes.hpp"
46 
47 namespace glm
48 {
51 
58  template <typename genType>
59  GLM_FUNC_DECL genType abs(genType x);
60 
61  template <typename T, precision P, template <typename, precision> class vecType>
62  GLM_FUNC_DECL vecType<T, P> abs(vecType<T, P> const & x);
63 
70  template <typename T, precision P, template <typename, precision> class vecType>
71  GLM_FUNC_DECL vecType<T, P> sign(vecType<T, P> const & x);
72 
79  template <typename T, precision P, template <typename, precision> class vecType>
80  GLM_FUNC_DECL vecType<T, P> floor(vecType<T, P> const & x);
81 
89  template <typename T, precision P, template <typename, precision> class vecType>
90  GLM_FUNC_DECL vecType<T, P> trunc(vecType<T, P> const & x);
91 
102  template <typename T, precision P, template <typename, precision> class vecType>
103  GLM_FUNC_DECL vecType<T, P> round(vecType<T, P> const & x);
104 
114  template <typename T, precision P, template <typename, precision> class vecType>
115  GLM_FUNC_DECL vecType<T, P> roundEven(vecType<T, P> const & x);
116 
124  template <typename T, precision P, template <typename, precision> class vecType>
125  GLM_FUNC_DECL vecType<T, P> ceil(vecType<T, P> const & x);
126 
133  template <typename genType>
134  GLM_FUNC_DECL genType fract(genType x);
135 
136  template <typename T, precision P, template <typename, precision> class vecType>
137  GLM_FUNC_DECL vecType<T, P> fract(vecType<T, P> const & x);
138 
146  template <typename genType>
147  GLM_FUNC_DECL genType mod(genType x, genType y);
148 
149  template <typename T, precision P, template <typename, precision> class vecType>
150  GLM_FUNC_DECL vecType<T, P> mod(vecType<T, P> const & x, T y);
151 
152  template <typename T, precision P, template <typename, precision> class vecType>
153  GLM_FUNC_DECL vecType<T, P> mod(vecType<T, P> const & x, vecType<T, P> const & y);
154 
164  template <typename genType>
165  GLM_FUNC_DECL genType modf(genType x, genType & i);
166 
173  template <typename genType>
174  GLM_FUNC_DECL genType min(genType x, genType y);
175 
176  template <typename T, precision P, template <typename, precision> class vecType>
177  GLM_FUNC_DECL vecType<T, P> min(vecType<T, P> const & x, T y);
178 
179  template <typename T, precision P, template <typename, precision> class vecType>
180  GLM_FUNC_DECL vecType<T, P> min(vecType<T, P> const & x, vecType<T, P> const & y);
181 
188  template <typename genType>
189  GLM_FUNC_DECL genType max(genType x, genType y);
190 
191  template <typename T, precision P, template <typename, precision> class vecType>
192  GLM_FUNC_DECL vecType<T, P> max(vecType<T, P> const & x, T y);
193 
194  template <typename T, precision P, template <typename, precision> class vecType>
195  GLM_FUNC_DECL vecType<T, P> max(vecType<T, P> const & x, vecType<T, P> const & y);
196 
204  template <typename genType>
205  GLM_FUNC_DECL genType clamp(genType x, genType minVal, genType maxVal);
206 
207  template <typename T, precision P, template <typename, precision> class vecType>
208  GLM_FUNC_DECL vecType<T, P> clamp(vecType<T, P> const & x, T minVal, T maxVal);
209 
210  template <typename T, precision P, template <typename, precision> class vecType>
211  GLM_FUNC_DECL vecType<T, P> clamp(vecType<T, P> const & x, vecType<T, P> const & minVal, vecType<T, P> const & maxVal);
212 
255  template <typename T, typename U, precision P, template <typename, precision> class vecType>
256  GLM_FUNC_DECL vecType<T, P> mix(vecType<T, P> const & x, vecType<T, P> const & y, vecType<U, P> const & a);
257 
258  template <typename T, typename U, precision P, template <typename, precision> class vecType>
259  GLM_FUNC_DECL vecType<T, P> mix(vecType<T, P> const & x, vecType<T, P> const & y, U a);
260 
261  template <typename genTypeT, typename genTypeU>
262  GLM_FUNC_DECL genTypeT mix(genTypeT x, genTypeT y, genTypeU a);
263 
268  template <typename genType>
269  GLM_FUNC_DECL genType step(genType edge, genType x);
270 
275  template <template <typename, precision> class vecType, typename T, precision P>
276  GLM_FUNC_DECL vecType<T, P> step(T edge, vecType<T, P> const & x);
277 
282  template <template <typename, precision> class vecType, typename T, precision P>
283  GLM_FUNC_DECL vecType<T, P> step(vecType<T, P> const & edge, vecType<T, P> const & x);
284 
299  template <typename genType>
300  GLM_FUNC_DECL genType smoothstep(genType edge0, genType edge1, genType x);
301 
302  template <typename T, precision P, template <typename, precision> class vecType>
303  GLM_FUNC_DECL vecType<T, P> smoothstep(T edge0, T edge1, vecType<T, P> const & x);
304 
305  template <typename T, precision P, template <typename, precision> class vecType>
306  GLM_FUNC_DECL vecType<T, P> smoothstep(vecType<T, P> const & edge0, vecType<T, P> const & edge1, vecType<T, P> const & x);
307 
320  template <typename T, precision P, template <typename, precision> class vecType>
321  GLM_FUNC_DECL vecType<bool, P> isnan(vecType<T, P> const & x);
322 
333  template <typename T, precision P, template <typename, precision> class vecType>
334  GLM_FUNC_DECL vecType<bool, P> isinf(vecType<T, P> const & x);
335 
342  GLM_FUNC_DECL int floatBitsToInt(float const & v);
343 
350  template <template <typename, precision> class vecType, precision P>
351  GLM_FUNC_DECL vecType<int, P> floatBitsToInt(vecType<float, P> const & v);
352 
359  GLM_FUNC_DECL uint floatBitsToUint(float const & v);
360 
367  template <template <typename, precision> class vecType, precision P>
368  GLM_FUNC_DECL vecType<uint, P> floatBitsToUint(vecType<float, P> const & v);
369 
378  GLM_FUNC_DECL float intBitsToFloat(int const & v);
379 
388  template <template <typename, precision> class vecType, precision P>
389  GLM_FUNC_DECL vecType<float, P> intBitsToFloat(vecType<int, P> const & v);
390 
399  GLM_FUNC_DECL float uintBitsToFloat(uint const & v);
400 
409  template <template <typename, precision> class vecType, precision P>
410  GLM_FUNC_DECL vecType<float, P> uintBitsToFloat(vecType<uint, P> const & v);
411 
418  template <typename genType>
419  GLM_FUNC_DECL genType fma(genType const & a, genType const & b, genType const & c);
420 
435  template <typename genType, typename genIType>
436  GLM_FUNC_DECL genType frexp(genType const & x, genIType & exp);
437 
449  template <typename genType, typename genIType>
450  GLM_FUNC_DECL genType ldexp(genType const & x, genIType const & exp);
451 
453 }//namespace glm
454 
455 #include "func_common.inl"
456 
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< int, P > floatBitsToInt(vecType< float, P > const &v)
Returns a signed integer value representing the encoding of a floating-point value.
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 genType fma(genType const &a, genType const &b, genType const &c)
Computes and returns a * b + c.
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 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 genType fract(genType x)
Return x - floor(x).
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 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 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< 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.
unsigned int uint
Unsigned integer type.
Definition: type_int.hpp:308
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 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...
Definition: _noise.hpp:40
OpenGL Mathematics (glm.g-truc.net)
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.
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...
GLM_FUNC_DECL genType max(genType x, genType y)
Returns y if x < y; otherwise, it returns x.
GLM_FUNC_DECL vecType< T, P > mod(vecType< T, P > const &x, vecType< T, P > const &y)
Modulus.
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 abs(genType x)
Returns x if x >= 0; otherwise, it returns -x.
GLM_FUNC_DECL genType min(genType x, genType y)
Returns y if y < x; otherwise, it returns x.
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...
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 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 ...
OpenGL Mathematics (glm.g-truc.net)
OpenGL Mathematics (glm.g-truc.net)
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...
OpenGL Mathematics (glm.g-truc.net)