• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/// @ref core
2/// @file glm/detail/func_exponential_simd.inl
3
4#include "../simd/exponential.h"
5
6#if GLM_ARCH & GLM_ARCH_SSE2_BIT
7
8namespace glm{
9namespace detail
10{
11	template <precision P>
12	struct compute_sqrt<tvec4, float, P, true>
13	{
14		GLM_FUNC_QUALIFIER static tvec4<float, P> call(tvec4<float, P> const & v)
15		{
16			tvec4<float, P> result(uninitialize);
17			result.data = _mm_sqrt_ps(v.data);
18			return result;
19		}
20	};
21
22	template <>
23	struct compute_sqrt<tvec4, float, aligned_lowp, true>
24	{
25		GLM_FUNC_QUALIFIER static tvec4<float, aligned_lowp> call(tvec4<float, aligned_lowp> const & v)
26		{
27			tvec4<float, aligned_lowp> result(uninitialize);
28			result.data = glm_vec4_sqrt_lowp(v.data);
29			return result;
30		}
31	};
32}//namespace detail
33}//namespace glm
34
35#endif//GLM_ARCH & GLM_ARCH_SSE2_BIT
36