9 #include "../common.hpp"
15 GLM_FUNC_QUALIFIER T mod289(T
const & x)
17 return x -
floor(x * (static_cast<T>(1.0) / static_cast<T>(289.0))) *
static_cast<T
>(289.0);
21 GLM_FUNC_QUALIFIER T permute(T
const & x)
23 return mod289(((x * static_cast<T>(34)) + static_cast<T>(1)) * x);
26 template<
typename T, qualifier P>
27 GLM_FUNC_QUALIFIER vec<2, T, P> permute(vec<2, T, P>
const & x)
29 return mod289(((x * static_cast<T>(34)) + static_cast<T>(1)) * x);
32 template<
typename T, qualifier P>
33 GLM_FUNC_QUALIFIER vec<3, T, P> permute(vec<3, T, P>
const & x)
35 return mod289(((x * static_cast<T>(34)) + static_cast<T>(1)) * x);
38 template<
typename T, qualifier P>
39 GLM_FUNC_QUALIFIER vec<4, T, P> permute(vec<4, T, P>
const & x)
41 return mod289(((x * static_cast<T>(34)) + static_cast<T>(1)) * x);
45 GLM_FUNC_QUALIFIER T taylorInvSqrt(T
const & r)
47 return T(1.79284291400159) - T(0.85373472095314) * r;
50 template<
typename T, qualifier P>
51 GLM_FUNC_QUALIFIER vec<2, T, P> taylorInvSqrt(vec<2, T, P>
const & r)
53 return T(1.79284291400159) - T(0.85373472095314) * r;
56 template<
typename T, qualifier P>
57 GLM_FUNC_QUALIFIER vec<3, T, P> taylorInvSqrt(vec<3, T, P>
const & r)
59 return T(1.79284291400159) - T(0.85373472095314) * r;
62 template<
typename T, qualifier P>
63 GLM_FUNC_QUALIFIER vec<4, T, P> taylorInvSqrt(vec<4, T, P>
const & r)
65 return T(1.79284291400159) - T(0.85373472095314) * r;
68 template<
typename T, qualifier P>
69 GLM_FUNC_QUALIFIER vec<2, T, P> fade(vec<2, T, P>
const & t)
71 return (t * t * t) * (t * (t * T(6) - T(15)) + T(10));
74 template<
typename T, qualifier P>
75 GLM_FUNC_QUALIFIER vec<3, T, P> fade(vec<3, T, P>
const & t)
77 return (t * t * t) * (t * (t * T(6) - T(15)) + T(10));
80 template<
typename T, qualifier P>
81 GLM_FUNC_QUALIFIER vec<4, T, P> fade(vec<4, T, P>
const & t)
83 return (t * t * t) * (t * (t * T(6) - T(15)) + T(10));
GLM_FUNC_DECL vec< L, T, P > floor(vec< L, T, P > const &x)
Returns a value equal to the nearest integer that is less then or equal to x.