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));
 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.