6 template<length_t L,
typename T, qualifier Q>
7 GLM_FUNC_QUALIFIER vec<L, T, Q> taylorCos(vec<L, T, Q>
const& x)
9 return static_cast<T
>(1)
10 - (x * x) * (1.f / 2.f)
11 + ((x * x) * (x * x)) * (1.f / 24.f)
12 - (((x * x) * (x * x)) * (x * x)) * (1.f / 720.f)
13 + (((x * x) * (x * x)) * ((x * x) * (x * x))) * (1.f / 40320.f);
17 GLM_FUNC_QUALIFIER T cos_52s(T x)
20 return (T(0.9999932946) + xx * (T(-0.4999124376) + xx * (T(0.0414877472) + xx * T(-0.0012712095))));
23 template<length_t L,
typename T, qualifier Q>
24 GLM_FUNC_QUALIFIER vec<L, T, Q> cos_52s(vec<L, T, Q>
const& x)
26 return detail::functor1<vec, L, T, T, Q>::call(cos_52s, x);
37 template<length_t L,
typename T, qualifier Q>
38 GLM_FUNC_QUALIFIER vec<L, T, Q>
wrapAngle(vec<L, T, Q>
const& x)
40 return detail::functor1<vec, L, T, T, Q>::call(
wrapAngle, x);
50 return detail::cos_52s(
angle);
59 template<length_t L,
typename T, qualifier Q>
60 GLM_FUNC_QUALIFIER vec<L, T, Q>
fastCos(vec<L, T, Q>
const& x)
62 return detail::functor1<vec, L, T, T, Q>::call(
fastCos, x);
72 template<length_t L,
typename T, qualifier Q>
73 GLM_FUNC_QUALIFIER vec<L, T, Q>
fastSin(vec<L, T, Q>
const& x)
75 return detail::functor1<vec, L, T, T, Q>::call(
fastSin, x);
82 return x + (x * x * x * T(0.3333333333)) + (x * x * x * x * x * T(0.1333333333333)) + (x * x * x * x * x * x * x * T(0.0539682539));
85 template<length_t L,
typename T, qualifier Q>
86 GLM_FUNC_QUALIFIER vec<L, T, Q>
fastTan(vec<L, T, Q>
const& x)
88 return detail::functor1<vec, L, T, T, Q>::call(
fastTan, x);
95 return x + (x * x * x * T(0.166666667)) + (x * x * x * x * x * T(0.075)) + (x * x * x * x * x * x * x * T(0.0446428571)) + (x * x * x * x * x * x * x * x * x * T(0.0303819444));
98 template<length_t L,
typename T, qualifier Q>
99 GLM_FUNC_QUALIFIER vec<L, T, Q>
fastAsin(vec<L, T, Q>
const& x)
101 return detail::functor1<vec, L, T, T, Q>::call(
fastAsin, x);
108 return T(1.5707963267948966192313216916398) -
fastAsin(x);
111 template<length_t L,
typename T, qualifier Q>
112 GLM_FUNC_QUALIFIER vec<L, T, Q>
fastAcos(vec<L, T, Q>
const& x)
114 return detail::functor1<vec, L, T, T, Q>::call(
fastAcos, x);
125 template<length_t L,
typename T, qualifier Q>
126 GLM_FUNC_QUALIFIER vec<L, T, Q>
fastAtan(vec<L, T, Q>
const& y, vec<L, T, Q>
const& x)
128 return detail::functor2<vec, L, T, Q>::call(
fastAtan, y, x);
134 return x - (x * x * x * T(0.333333333333)) + (x * x * x * x * x * T(0.2)) - (x * x * x * x * x * x * x * T(0.1428571429)) + (x * x * x * x * x * x * x * x * x * T(0.111111111111)) - (x * x * x * x * x * x * x * x * x * x * x * T(0.0909090909));
137 template<length_t L,
typename T, qualifier Q>
138 GLM_FUNC_QUALIFIER vec<L, T, Q>
fastAtan(vec<L, T, Q>
const& x)
140 return detail::functor1<vec, L, T, T, Q>::call(
fastAtan, x);
GLM_FUNC_DECL GLM_CONSTEXPR genType abs(genType x)
GLM_FUNC_DECL vec< L, T, Q > sign(vec< L, T, Q > const &x)
Definition func_common.inl:295
GLM_FUNC_DECL T angle(qua< T, Q > const &x)
Definition quaternion_trigonometric.inl:6
GLM_FUNC_DECL GLM_CONSTEXPR genType pi()
Return the pi constant for floating point types.
Definition scalar_constants.inl:13
GLM_FUNC_DECL GLM_CONSTEXPR genType half_pi()
Definition constants.inl:30
GLM_FUNC_DECL GLM_CONSTEXPR genType two_pi()
Definition constants.inl:18
GLM_FUNC_DECL T wrapAngle(T angle)
Definition fast_trigonometry.inl:32
GLM_FUNC_DECL T fastSin(T angle)
Definition fast_trigonometry.inl:67
GLM_FUNC_DECL T fastAsin(T angle)
Definition fast_trigonometry.inl:93
GLM_FUNC_DECL T fastAtan(T y, T x)
Definition fast_trigonometry.inl:119
GLM_FUNC_DECL T fastAcos(T angle)
Definition fast_trigonometry.inl:106
GLM_FUNC_DECL T fastCos(T angle)
Definition fast_trigonometry.inl:45
GLM_FUNC_DECL T fastTan(T angle)
Definition fast_trigonometry.inl:80
detail namespace with internal helper functions
Definition json.h:249
Core features
Definition common.hpp:21