3 #include "../common.hpp"
9 GLM_FUNC_QUALIFIER T mod289(T
const& x)
11 return x -
floor(x * (
static_cast<T
>(1.0) /
static_cast<T
>(289.0))) *
static_cast<T
>(289.0);
15 GLM_FUNC_QUALIFIER T permute(T
const& x)
17 return mod289(((x *
static_cast<T
>(34)) +
static_cast<T
>(1)) * x);
20 template<
typename T, qualifier Q>
21 GLM_FUNC_QUALIFIER vec<2, T, Q> permute(vec<2, T, Q>
const& x)
23 return mod289(((x *
static_cast<T
>(34)) +
static_cast<T
>(1)) * x);
26 template<
typename T, qualifier Q>
27 GLM_FUNC_QUALIFIER vec<3, T, Q> permute(vec<3, T, Q>
const& x)
29 return mod289(((x *
static_cast<T
>(34)) +
static_cast<T
>(1)) * x);
32 template<
typename T, qualifier Q>
33 GLM_FUNC_QUALIFIER vec<4, T, Q> permute(vec<4, T, Q>
const& x)
35 return mod289(((x *
static_cast<T
>(34)) +
static_cast<T
>(1)) * x);
39 GLM_FUNC_QUALIFIER T taylorInvSqrt(T
const& r)
41 return static_cast<T
>(1.79284291400159) -
static_cast<T
>(0.85373472095314) * r;
44 template<
typename T, qualifier Q>
45 GLM_FUNC_QUALIFIER vec<2, T, Q> taylorInvSqrt(vec<2, T, Q>
const& r)
47 return static_cast<T
>(1.79284291400159) -
static_cast<T
>(0.85373472095314) * r;
50 template<
typename T, qualifier Q>
51 GLM_FUNC_QUALIFIER vec<3, T, Q> taylorInvSqrt(vec<3, T, Q>
const& r)
53 return static_cast<T
>(1.79284291400159) -
static_cast<T
>(0.85373472095314) * r;
56 template<
typename T, qualifier Q>
57 GLM_FUNC_QUALIFIER vec<4, T, Q> taylorInvSqrt(vec<4, T, Q>
const& r)
59 return static_cast<T
>(1.79284291400159) -
static_cast<T
>(0.85373472095314) * r;
62 template<
typename T, qualifier Q>
63 GLM_FUNC_QUALIFIER vec<2, T, Q> fade(vec<2, T, Q>
const& t)
65 return (t * t * t) * (t * (t *
static_cast<T
>(6) -
static_cast<T
>(15)) +
static_cast<T
>(10));
68 template<
typename T, qualifier Q>
69 GLM_FUNC_QUALIFIER vec<3, T, Q> fade(vec<3, T, Q>
const& t)
71 return (t * t * t) * (t * (t *
static_cast<T
>(6) -
static_cast<T
>(15)) +
static_cast<T
>(10));
74 template<
typename T, qualifier Q>
75 GLM_FUNC_QUALIFIER vec<4, T, Q> fade(vec<4, T, Q>
const& t)
77 return (t * t * t) * (t * (t *
static_cast<T
>(6) -
static_cast<T
>(15)) +
static_cast<T
>(10));