parent
96963f88cc
commit
83999c749a
39 changed files with 1156 additions and 2911 deletions
File diff suppressed because it is too large
Load Diff
@ -1,87 +0,0 @@ |
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
/// OpenGL Mathematics (glm.g-truc.net)
|
||||
///
|
||||
/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
|
||||
/// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
/// of this software and associated documentation files (the "Software"), to deal
|
||||
/// in the Software without restriction, including without limitation the rights
|
||||
/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
/// copies of the Software, and to permit persons to whom the Software is
|
||||
/// furnished to do so, subject to the following conditions:
|
||||
///
|
||||
/// The above copyright notice and this permission notice shall be included in
|
||||
/// all copies or substantial portions of the Software.
|
||||
///
|
||||
/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
/// THE SOFTWARE.
|
||||
///
|
||||
/// @ref core
|
||||
/// @file glm/detail/intrinsic_common.hpp
|
||||
/// @date 2009-05-11 / 2011-06-15
|
||||
/// @author Christophe Riccio
|
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#pragma once |
||||
|
||||
#include "setup.hpp" |
||||
|
||||
#if(!(GLM_ARCH & GLM_ARCH_SSE2)) |
||||
# error "SSE2 instructions not supported or enabled" |
||||
#else |
||||
|
||||
namespace glm{ |
||||
namespace detail |
||||
{ |
||||
__m128 sse_abs_ps(__m128 x); |
||||
|
||||
__m128 sse_sgn_ps(__m128 x); |
||||
|
||||
//floor
|
||||
__m128 sse_flr_ps(__m128 v); |
||||
|
||||
//trunc
|
||||
__m128 sse_trc_ps(__m128 v); |
||||
|
||||
//round
|
||||
__m128 sse_nd_ps(__m128 v); |
||||
|
||||
//roundEven
|
||||
__m128 sse_rde_ps(__m128 v); |
||||
|
||||
__m128 sse_rnd_ps(__m128 x); |
||||
|
||||
__m128 sse_ceil_ps(__m128 v); |
||||
|
||||
__m128 sse_frc_ps(__m128 x); |
||||
|
||||
__m128 sse_mod_ps(__m128 x, __m128 y); |
||||
|
||||
__m128 sse_modf_ps(__m128 x, __m128i & i); |
||||
|
||||
//GLM_FUNC_QUALIFIER __m128 sse_min_ps(__m128 x, __m128 y)
|
||||
|
||||
//GLM_FUNC_QUALIFIER __m128 sse_max_ps(__m128 x, __m128 y)
|
||||
|
||||
__m128 sse_clp_ps(__m128 v, __m128 minVal, __m128 maxVal); |
||||
|
||||
__m128 sse_mix_ps(__m128 v1, __m128 v2, __m128 a); |
||||
|
||||
__m128 sse_stp_ps(__m128 edge, __m128 x); |
||||
|
||||
__m128 sse_ssp_ps(__m128 edge0, __m128 edge1, __m128 x); |
||||
|
||||
__m128 sse_nan_ps(__m128 x); |
||||
|
||||
__m128 sse_inf_ps(__m128 x); |
||||
|
||||
}//namespace detail
|
||||
}//namespace glm
|
||||
|
||||
#include "intrinsic_common.inl" |
||||
|
||||
#endif//GLM_ARCH
|
@ -1,137 +0,0 @@ |
||||
/////////////////////////////////////////////////////////////////////////////////// |
||||
/// OpenGL Mathematics (glm.g-truc.net) |
||||
/// |
||||
/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) |
||||
/// Permission is hereby granted, free of charge, to any person obtaining a copy |
||||
/// of this software and associated documentation files (the "Software"), to deal |
||||
/// in the Software without restriction, including without limitation the rights |
||||
/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
||||
/// copies of the Software, and to permit persons to whom the Software is |
||||
/// furnished to do so, subject to the following conditions: |
||||
/// |
||||
/// The above copyright notice and this permission notice shall be included in |
||||
/// all copies or substantial portions of the Software. |
||||
/// |
||||
/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
||||
/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
||||
/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
||||
/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
||||
/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
||||
/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
||||
/// THE SOFTWARE. |
||||
/// |
||||
/// @ref core |
||||
/// @file glm/detail/intrinsic_common.inl |
||||
/// @date 2009-05-08 / 2011-06-15 |
||||
/// @author Christophe Riccio |
||||
/////////////////////////////////////////////////////////////////////////////////// |
||||
|
||||
namespace glm{ |
||||
namespace detail |
||||
{ |
||||
/* |
||||
static const __m128 GLM_VAR_USED zero = _mm_setzero_ps(); |
||||
static const __m128 GLM_VAR_USED one = _mm_set_ps1(1.0f); |
||||
static const __m128 GLM_VAR_USED minus_one = _mm_set_ps1(-1.0f); |
||||
static const __m128 GLM_VAR_USED two = _mm_set_ps1(2.0f); |
||||
static const __m128 GLM_VAR_USED three = _mm_set_ps1(3.0f); |
||||
static const __m128 GLM_VAR_USED pi = _mm_set_ps1(3.1415926535897932384626433832795f); |
||||
static const __m128 GLM_VAR_USED hundred_eighty = _mm_set_ps1(180.f); |
||||
static const __m128 GLM_VAR_USED pi_over_hundred_eighty = _mm_set_ps1(0.017453292519943295769236907684886f); |
||||
static const __m128 GLM_VAR_USED hundred_eighty_over_pi = _mm_set_ps1(57.295779513082320876798154814105f); |
||||
|
||||
static const ieee754_QNAN absMask; |
||||
static const __m128 GLM_VAR_USED abs4Mask = _mm_set_ps1(absMask.f); |
||||
|
||||
static const __m128 GLM_VAR_USED _epi32_sign_mask = _mm_castsi128_ps(_mm_set1_epi32(static_cast<int>(0x80000000))); |
||||
//static const __m128 GLM_VAR_USED _epi32_inv_sign_mask = _mm_castsi128_ps(_mm_set1_epi32(0x7FFFFFFF)); |
||||
//static const __m128 GLM_VAR_USED _epi32_mant_mask = _mm_castsi128_ps(_mm_set1_epi32(0x7F800000)); |
||||
//static const __m128 GLM_VAR_USED _epi32_inv_mant_mask = _mm_castsi128_ps(_mm_set1_epi32(0x807FFFFF)); |
||||
//static const __m128 GLM_VAR_USED _epi32_min_norm_pos = _mm_castsi128_ps(_mm_set1_epi32(0x00800000)); |
||||
static const __m128 GLM_VAR_USED _epi32_0 = _mm_set_ps1(0); |
||||
static const __m128 GLM_VAR_USED _epi32_1 = _mm_set_ps1(1); |
||||
static const __m128 GLM_VAR_USED _epi32_2 = _mm_set_ps1(2); |
||||
static const __m128 GLM_VAR_USED _epi32_3 = _mm_set_ps1(3); |
||||
static const __m128 GLM_VAR_USED _epi32_4 = _mm_set_ps1(4); |
||||
static const __m128 GLM_VAR_USED _epi32_5 = _mm_set_ps1(5); |
||||
static const __m128 GLM_VAR_USED _epi32_6 = _mm_set_ps1(6); |
||||
static const __m128 GLM_VAR_USED _epi32_7 = _mm_set_ps1(7); |
||||
static const __m128 GLM_VAR_USED _epi32_8 = _mm_set_ps1(8); |
||||
static const __m128 GLM_VAR_USED _epi32_9 = _mm_set_ps1(9); |
||||
static const __m128 GLM_VAR_USED _epi32_127 = _mm_set_ps1(127); |
||||
//static const __m128 GLM_VAR_USED _epi32_ninf = _mm_castsi128_ps(_mm_set1_epi32(0xFF800000)); |
||||
//static const __m128 GLM_VAR_USED _epi32_pinf = _mm_castsi128_ps(_mm_set1_epi32(0x7F800000)); |
||||
|
||||
static const __m128 GLM_VAR_USED _ps_1_3 = _mm_set_ps1(0.33333333333333333333333333333333f); |
||||
static const __m128 GLM_VAR_USED _ps_0p5 = _mm_set_ps1(0.5f); |
||||
static const __m128 GLM_VAR_USED _ps_1 = _mm_set_ps1(1.0f); |
||||
static const __m128 GLM_VAR_USED _ps_m1 = _mm_set_ps1(-1.0f); |
||||
static const __m128 GLM_VAR_USED _ps_2 = _mm_set_ps1(2.0f); |
||||
static const __m128 GLM_VAR_USED _ps_3 = _mm_set_ps1(3.0f); |
||||
static const __m128 GLM_VAR_USED _ps_127 = _mm_set_ps1(127.0f); |
||||
static const __m128 GLM_VAR_USED _ps_255 = _mm_set_ps1(255.0f); |
||||
static const __m128 GLM_VAR_USED _ps_2pow23 = _mm_set_ps1(8388608.0f); |
||||
|
||||
static const __m128 GLM_VAR_USED _ps_1_0_0_0 = _mm_set_ps(1.0f, 0.0f, 0.0f, 0.0f); |
||||
static const __m128 GLM_VAR_USED _ps_0_1_0_0 = _mm_set_ps(0.0f, 1.0f, 0.0f, 0.0f); |
||||
static const __m128 GLM_VAR_USED _ps_0_0_1_0 = _mm_set_ps(0.0f, 0.0f, 1.0f, 0.0f); |
||||
static const __m128 GLM_VAR_USED _ps_0_0_0_1 = _mm_set_ps(0.0f, 0.0f, 0.0f, 1.0f); |
||||
|
||||
static const __m128 GLM_VAR_USED _ps_pi = _mm_set_ps1(3.1415926535897932384626433832795f); |
||||
static const __m128 GLM_VAR_USED _ps_pi2 = _mm_set_ps1(6.283185307179586476925286766560f); |
||||
static const __m128 GLM_VAR_USED _ps_2_pi = _mm_set_ps1(0.63661977236758134307553505349006f); |
||||
static const __m128 GLM_VAR_USED _ps_pi_2 = _mm_set_ps1(1.5707963267948966192313216916398f); |
||||
static const __m128 GLM_VAR_USED _ps_4_pi = _mm_set_ps1(1.2732395447351626861510701069801f); |
||||
static const __m128 GLM_VAR_USED _ps_pi_4 = _mm_set_ps1(0.78539816339744830961566084581988f); |
||||
|
||||
static const __m128 GLM_VAR_USED _ps_sincos_p0 = _mm_set_ps1(0.15707963267948963959e1f); |
||||
static const __m128 GLM_VAR_USED _ps_sincos_p1 = _mm_set_ps1(-0.64596409750621907082e0f); |
||||
static const __m128 GLM_VAR_USED _ps_sincos_p2 = _mm_set_ps1(0.7969262624561800806e-1f); |
||||
static const __m128 GLM_VAR_USED _ps_sincos_p3 = _mm_set_ps1(-0.468175413106023168e-2f); |
||||
static const __m128 GLM_VAR_USED _ps_tan_p0 = _mm_set_ps1(-1.79565251976484877988e7f); |
||||
static const __m128 GLM_VAR_USED _ps_tan_p1 = _mm_set_ps1(1.15351664838587416140e6f); |
||||
static const __m128 GLM_VAR_USED _ps_tan_p2 = _mm_set_ps1(-1.30936939181383777646e4f); |
||||
static const __m128 GLM_VAR_USED _ps_tan_q0 = _mm_set_ps1(-5.38695755929454629881e7f); |
||||
static const __m128 GLM_VAR_USED _ps_tan_q1 = _mm_set_ps1(2.50083801823357915839e7f); |
||||
static const __m128 GLM_VAR_USED _ps_tan_q2 = _mm_set_ps1(-1.32089234440210967447e6f); |
||||
static const __m128 GLM_VAR_USED _ps_tan_q3 = _mm_set_ps1(1.36812963470692954678e4f); |
||||
static const __m128 GLM_VAR_USED _ps_tan_poleval = _mm_set_ps1(3.68935e19f); |
||||
static const __m128 GLM_VAR_USED _ps_atan_t0 = _mm_set_ps1(-0.91646118527267623468e-1f); |
||||
static const __m128 GLM_VAR_USED _ps_atan_t1 = _mm_set_ps1(-0.13956945682312098640e1f); |
||||
static const __m128 GLM_VAR_USED _ps_atan_t2 = _mm_set_ps1(-0.94393926122725531747e2f); |
||||
static const __m128 GLM_VAR_USED _ps_atan_t3 = _mm_set_ps1(0.12888383034157279340e2f); |
||||
static const __m128 GLM_VAR_USED _ps_atan_s0 = _mm_set_ps1(0.12797564625607904396e1f); |
||||
static const __m128 GLM_VAR_USED _ps_atan_s1 = _mm_set_ps1(0.21972168858277355914e1f); |
||||
static const __m128 GLM_VAR_USED _ps_atan_s2 = _mm_set_ps1(0.68193064729268275701e1f); |
||||
static const __m128 GLM_VAR_USED _ps_atan_s3 = _mm_set_ps1(0.28205206687035841409e2f); |
||||
|
||||
static const __m128 GLM_VAR_USED _ps_exp_hi = _mm_set_ps1(88.3762626647949f); |
||||
static const __m128 GLM_VAR_USED _ps_exp_lo = _mm_set_ps1(-88.3762626647949f); |
||||
static const __m128 GLM_VAR_USED _ps_exp_rln2 = _mm_set_ps1(1.4426950408889634073599f); |
||||
static const __m128 GLM_VAR_USED _ps_exp_p0 = _mm_set_ps1(1.26177193074810590878e-4f); |
||||
static const __m128 GLM_VAR_USED _ps_exp_p1 = _mm_set_ps1(3.02994407707441961300e-2f); |
||||
static const __m128 GLM_VAR_USED _ps_exp_q0 = _mm_set_ps1(3.00198505138664455042e-6f); |
||||
static const __m128 GLM_VAR_USED _ps_exp_q1 = _mm_set_ps1(2.52448340349684104192e-3f); |
||||
static const __m128 GLM_VAR_USED _ps_exp_q2 = _mm_set_ps1(2.27265548208155028766e-1f); |
||||
static const __m128 GLM_VAR_USED _ps_exp_q3 = _mm_set_ps1(2.00000000000000000009e0f); |
||||
static const __m128 GLM_VAR_USED _ps_exp_c1 = _mm_set_ps1(6.93145751953125e-1f); |
||||
static const __m128 GLM_VAR_USED _ps_exp_c2 = _mm_set_ps1(1.42860682030941723212e-6f); |
||||
static const __m128 GLM_VAR_USED _ps_exp2_hi = _mm_set_ps1(127.4999961853f); |
||||
static const __m128 GLM_VAR_USED _ps_exp2_lo = _mm_set_ps1(-127.4999961853f); |
||||
static const __m128 GLM_VAR_USED _ps_exp2_p0 = _mm_set_ps1(2.30933477057345225087e-2f); |
||||
static const __m128 GLM_VAR_USED _ps_exp2_p1 = _mm_set_ps1(2.02020656693165307700e1f); |
||||
static const __m128 GLM_VAR_USED _ps_exp2_p2 = _mm_set_ps1(1.51390680115615096133e3f); |
||||
static const __m128 GLM_VAR_USED _ps_exp2_q0 = _mm_set_ps1(2.33184211722314911771e2f); |
||||
static const __m128 GLM_VAR_USED _ps_exp2_q1 = _mm_set_ps1(4.36821166879210612817e3f); |
||||
static const __m128 GLM_VAR_USED _ps_log_p0 = _mm_set_ps1(-7.89580278884799154124e-1f); |
||||
static const __m128 GLM_VAR_USED _ps_log_p1 = _mm_set_ps1(1.63866645699558079767e1f); |
||||
static const __m128 GLM_VAR_USED _ps_log_p2 = _mm_set_ps1(-6.41409952958715622951e1f); |
||||
static const __m128 GLM_VAR_USED _ps_log_q0 = _mm_set_ps1(-3.56722798256324312549e1f); |
||||
static const __m128 GLM_VAR_USED _ps_log_q1 = _mm_set_ps1(3.12093766372244180303e2f); |
||||
static const __m128 GLM_VAR_USED _ps_log_q2 = _mm_set_ps1(-7.69691943550460008604e2f); |
||||
static const __m128 GLM_VAR_USED _ps_log_c0 = _mm_set_ps1(0.693147180559945f); |
||||
static const __m128 GLM_VAR_USED _ps_log2_c0 = _mm_set_ps1(1.44269504088896340735992f); |
||||
*/ |
||||
}//namespace detail |
||||
}//namespace glms |
||||
|
@ -1,77 +0,0 @@ |
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
/// OpenGL Mathematics (glm.g-truc.net)
|
||||
///
|
||||
/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
|
||||
/// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
/// of this software and associated documentation files (the "Software"), to deal
|
||||
/// in the Software without restriction, including without limitation the rights
|
||||
/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
/// copies of the Software, and to permit persons to whom the Software is
|
||||
/// furnished to do so, subject to the following conditions:
|
||||
///
|
||||
/// The above copyright notice and this permission notice shall be included in
|
||||
/// all copies or substantial portions of the Software.
|
||||
///
|
||||
/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
/// THE SOFTWARE.
|
||||
///
|
||||
/// @ref core
|
||||
/// @file glm/detail/intrinsic_exponential.hpp
|
||||
/// @date 2009-05-11 / 2011-06-15
|
||||
/// @author Christophe Riccio
|
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#pragma once |
||||
|
||||
#include "setup.hpp" |
||||
|
||||
#if(!(GLM_ARCH & GLM_ARCH_SSE2)) |
||||
# error "SSE2 instructions not supported or enabled" |
||||
#else |
||||
|
||||
namespace glm{ |
||||
namespace detail |
||||
{ |
||||
/*
|
||||
GLM_FUNC_QUALIFIER __m128 sse_rsqrt_nr_ss(__m128 const x) |
||||
{ |
||||
__m128 recip = _mm_rsqrt_ss( x ); // "estimate" opcode
|
||||
const static __m128 three = { 3, 3, 3, 3 }; // aligned consts for fast load
|
||||
const static __m128 half = { 0.5,0.5,0.5,0.5 }; |
||||
__m128 halfrecip = _mm_mul_ss( half, recip ); |
||||
__m128 threeminus_xrr = _mm_sub_ss( three, _mm_mul_ss( x, _mm_mul_ss ( recip, recip ) ) ); |
||||
return _mm_mul_ss( halfrecip, threeminus_xrr ); |
||||
} |
||||
|
||||
GLM_FUNC_QUALIFIER __m128 sse_normalize_fast_ps( float * RESTRICT vOut, float * RESTRICT vIn ) |
||||
{ |
||||
__m128 x = _mm_load_ss(&vIn[0]); |
||||
__m128 y = _mm_load_ss(&vIn[1]); |
||||
__m128 z = _mm_load_ss(&vIn[2]); |
||||
|
||||
const __m128 l = // compute x*x + y*y + z*z
|
||||
_mm_add_ss( |
||||
_mm_add_ss( _mm_mul_ss(x,x), |
||||
_mm_mul_ss(y,y) |
||||
), |
||||
_mm_mul_ss( z, z ) |
||||
); |
||||
|
||||
|
||||
const __m128 rsqt = _mm_rsqrt_nr_ss( l ); |
||||
_mm_store_ss( &vOut[0] , _mm_mul_ss( rsqt, x ) ); |
||||
_mm_store_ss( &vOut[1] , _mm_mul_ss( rsqt, y ) ); |
||||
_mm_store_ss( &vOut[2] , _mm_mul_ss( rsqt, z ) ); |
||||
|
||||
return _mm_mul_ss( l , rsqt ); |
||||
} |
||||
*/ |
||||
}//namespace detail
|
||||
}//namespace glm
|
||||
|
||||
#endif//GLM_ARCH
|
@ -1,27 +0,0 @@ |
||||
/////////////////////////////////////////////////////////////////////////////////// |
||||
/// OpenGL Mathematics (glm.g-truc.net) |
||||
/// |
||||
/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) |
||||
/// Permission is hereby granted, free of charge, to any person obtaining a copy |
||||
/// of this software and associated documentation files (the "Software"), to deal |
||||
/// in the Software without restriction, including without limitation the rights |
||||
/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
||||
/// copies of the Software, and to permit persons to whom the Software is |
||||
/// furnished to do so, subject to the following conditions: |
||||
/// |
||||
/// The above copyright notice and this permission notice shall be included in |
||||
/// all copies or substantial portions of the Software. |
||||
/// |
||||
/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
||||
/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
||||
/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
||||
/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
||||
/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
||||
/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
||||
/// THE SOFTWARE. |
||||
/// |
||||
/// @ref core |
||||
/// @file glm/detail/intrinsic_exponential.inl |
||||
/// @date 2011-06-15 / 2011-06-15 |
||||
/// @author Christophe Riccio |
||||
/////////////////////////////////////////////////////////////////////////////////// |
@ -1,74 +0,0 @@ |
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
/// OpenGL Mathematics (glm.g-truc.net)
|
||||
///
|
||||
/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
|
||||
/// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
/// of this software and associated documentation files (the "Software"), to deal
|
||||
/// in the Software without restriction, including without limitation the rights
|
||||
/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
/// copies of the Software, and to permit persons to whom the Software is
|
||||
/// furnished to do so, subject to the following conditions:
|
||||
///
|
||||
/// The above copyright notice and this permission notice shall be included in
|
||||
/// all copies or substantial portions of the Software.
|
||||
///
|
||||
/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
/// THE SOFTWARE.
|
||||
///
|
||||
/// @ref core
|
||||
/// @file glm/detail/intrinsic_geometric.hpp
|
||||
/// @date 2009-05-08 / 2011-06-15
|
||||
/// @author Christophe Riccio
|
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#pragma once |
||||
|
||||
#include "setup.hpp" |
||||
|
||||
#if(!(GLM_ARCH & GLM_ARCH_SSE2)) |
||||
# error "SSE2 instructions not supported or enabled" |
||||
#else |
||||
|
||||
#include "intrinsic_common.hpp" |
||||
|
||||
namespace glm{ |
||||
namespace detail |
||||
{ |
||||
//length
|
||||
__m128 sse_len_ps(__m128 x); |
||||
|
||||
//distance
|
||||
__m128 sse_dst_ps(__m128 p0, __m128 p1); |
||||
|
||||
//dot
|
||||
__m128 sse_dot_ps(__m128 v1, __m128 v2); |
||||
|
||||
// SSE1
|
||||
__m128 sse_dot_ss(__m128 v1, __m128 v2); |
||||
|
||||
//cross
|
||||
__m128 sse_xpd_ps(__m128 v1, __m128 v2); |
||||
|
||||
//normalize
|
||||
__m128 sse_nrm_ps(__m128 v); |
||||
|
||||
//faceforward
|
||||
__m128 sse_ffd_ps(__m128 N, __m128 I, __m128 Nref); |
||||
|
||||
//reflect
|
||||
__m128 sse_rfe_ps(__m128 I, __m128 N); |
||||
|
||||
//refract
|
||||
__m128 sse_rfa_ps(__m128 I, __m128 N, __m128 eta); |
||||
|
||||
}//namespace detail
|
||||
}//namespace glm
|
||||
|
||||
#include "intrinsic_geometric.inl" |
||||
|
||||
#endif//GLM_ARCH
|
@ -1,149 +0,0 @@ |
||||
/////////////////////////////////////////////////////////////////////////////////// |
||||
/// OpenGL Mathematics (glm.g-truc.net) |
||||
/// |
||||
/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) |
||||
/// Permission is hereby granted, free of charge, to any person obtaining a copy |
||||
/// of this software and associated documentation files (the "Software"), to deal |
||||
/// in the Software without restriction, including without limitation the rights |
||||
/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
||||
/// copies of the Software, and to permit persons to whom the Software is |
||||
/// furnished to do so, subject to the following conditions: |
||||
/// |
||||
/// The above copyright notice and this permission notice shall be included in |
||||
/// all copies or substantial portions of the Software. |
||||
/// |
||||
/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
||||
/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
||||
/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
||||
/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
||||
/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
||||
/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
||||
/// THE SOFTWARE. |
||||
/// |
||||
/// @ref core |
||||
/// @file glm/detail/intrinsic_geometric.inl |
||||
/// @date 2009-05-08 / 2011-06-15 |
||||
/// @author Christophe Riccio |
||||
/////////////////////////////////////////////////////////////////////////////////// |
||||
|
||||
/* |
||||
namespace glm{ |
||||
namespace detail{ |
||||
|
||||
//length |
||||
GLM_FUNC_QUALIFIER __m128 sse_len_ps(__m128 x) |
||||
{ |
||||
__m128 dot0 = sse_dot_ps(x, x); |
||||
__m128 sqt0 = _mm_sqrt_ps(dot0); |
||||
return sqt0; |
||||
} |
||||
|
||||
//distance |
||||
GLM_FUNC_QUALIFIER __m128 sse_dst_ps(__m128 p0, __m128 p1) |
||||
{ |
||||
__m128 sub0 = _mm_sub_ps(p0, p1); |
||||
__m128 len0 = sse_len_ps(sub0); |
||||
return len0; |
||||
} |
||||
|
||||
//dot |
||||
GLM_FUNC_QUALIFIER __m128 sse_dot_ps(__m128 v1, __m128 v2) |
||||
{ |
||||
# if(GLM_ARCH & GLM_ARCH_AVX) |
||||
return _mm_dp_ps(v1, v2, 0xff); |
||||
# else |
||||
__m128 mul0 = _mm_mul_ps(v1, v2); |
||||
__m128 swp0 = _mm_shuffle_ps(mul0, mul0, _MM_SHUFFLE(2, 3, 0, 1)); |
||||
__m128 add0 = _mm_add_ps(mul0, swp0); |
||||
__m128 swp1 = _mm_shuffle_ps(add0, add0, _MM_SHUFFLE(0, 1, 2, 3)); |
||||
__m128 add1 = _mm_add_ps(add0, swp1); |
||||
return add1; |
||||
# endif |
||||
} |
||||
|
||||
// SSE1 |
||||
GLM_FUNC_QUALIFIER __m128 sse_dot_ss(__m128 v1, __m128 v2) |
||||
{ |
||||
__m128 mul0 = _mm_mul_ps(v1, v2); |
||||
__m128 mov0 = _mm_movehl_ps(mul0, mul0); |
||||
__m128 add0 = _mm_add_ps(mov0, mul0); |
||||
__m128 swp1 = _mm_shuffle_ps(add0, add0, 1); |
||||
__m128 add1 = _mm_add_ss(add0, swp1); |
||||
return add1; |
||||
} |
||||
|
||||
//cross |
||||
GLM_FUNC_QUALIFIER __m128 sse_xpd_ps(__m128 v1, __m128 v2) |
||||
{ |
||||
__m128 swp0 = _mm_shuffle_ps(v1, v1, _MM_SHUFFLE(3, 0, 2, 1)); |
||||
__m128 swp1 = _mm_shuffle_ps(v1, v1, _MM_SHUFFLE(3, 1, 0, 2)); |
||||
__m128 swp2 = _mm_shuffle_ps(v2, v2, _MM_SHUFFLE(3, 0, 2, 1)); |
||||
__m128 swp3 = _mm_shuffle_ps(v2, v2, _MM_SHUFFLE(3, 1, 0, 2)); |
||||
__m128 mul0 = _mm_mul_ps(swp0, swp3); |
||||
__m128 mul1 = _mm_mul_ps(swp1, swp2); |
||||
__m128 sub0 = _mm_sub_ps(mul0, mul1); |
||||
return sub0; |
||||
} |
||||
|
||||
//normalize |
||||
GLM_FUNC_QUALIFIER __m128 sse_nrm_ps(__m128 v) |
||||
{ |
||||
__m128 dot0 = sse_dot_ps(v, v); |
||||
__m128 isr0 = _mm_rsqrt_ps(dot0); |
||||
__m128 mul0 = _mm_mul_ps(v, isr0); |
||||
return mul0; |
||||
} |
||||
|
||||
//faceforward |
||||
GLM_FUNC_QUALIFIER __m128 sse_ffd_ps(__m128 N, __m128 I, __m128 Nref) |
||||
{ |
||||
//__m128 dot0 = _mm_dot_ps(v, v); |
||||
//__m128 neg0 = _mm_neg_ps(N); |
||||
//__m128 sgn0 = _mm_sgn_ps(dot0); |
||||
//__m128 mix0 = _mm_mix_ps(N, neg0, sgn0); |
||||
//return mix0; |
||||
|
||||
__m128 dot0 = sse_dot_ps(Nref, I); |
||||
__m128 sgn0 = sse_sgn_ps(dot0); |
||||
__m128 mul0 = _mm_mul_ps(sgn0, glm::detail::minus_one); |
||||
__m128 mul1 = _mm_mul_ps(N, mul0); |
||||
return mul1; |
||||
} |
||||
|
||||
//reflect |
||||
GLM_FUNC_QUALIFIER __m128 sse_rfe_ps(__m128 I, __m128 N) |
||||
{ |
||||
__m128 dot0 = sse_dot_ps(N, I); |
||||
__m128 mul0 = _mm_mul_ps(N, dot0); |
||||
__m128 mul1 = _mm_mul_ps(mul0, glm::detail::two); |
||||
__m128 sub0 = _mm_sub_ps(I, mul1); |
||||
return sub0; |
||||
} |
||||
|
||||
//refract |
||||
GLM_FUNC_QUALIFIER __m128 sse_rfa_ps(__m128 I, __m128 N, __m128 eta) |
||||
{ |
||||
__m128 dot0 = sse_dot_ps(N, I); |
||||
__m128 mul0 = _mm_mul_ps(eta, eta); |
||||
__m128 mul1 = _mm_mul_ps(dot0, dot0); |
||||
__m128 sub0 = _mm_sub_ps(glm::detail::one, mul0); |
||||
__m128 sub1 = _mm_sub_ps(glm::detail::one, mul1); |
||||
__m128 mul2 = _mm_mul_ps(sub0, sub1); |
||||
|
||||
if(_mm_movemask_ps(_mm_cmplt_ss(mul2, glm::detail::zero)) == 0) |
||||
return glm::detail::zero; |
||||
|
||||
__m128 sqt0 = _mm_sqrt_ps(mul2); |
||||
__m128 mul3 = _mm_mul_ps(eta, dot0); |
||||
__m128 add0 = _mm_add_ps(mul3, sqt0); |
||||
__m128 mul4 = _mm_mul_ps(add0, N); |
||||
__m128 mul5 = _mm_mul_ps(eta, I); |
||||
__m128 sub2 = _mm_sub_ps(mul5, mul4); |
||||
|
||||
return sub2; |
||||
} |
||||
|
||||
}//namespace detail |
||||
}//namespace glm |
||||
*/ |
||||
|
@ -1,48 +0,0 @@ |
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
/// OpenGL Mathematics (glm.g-truc.net)
|
||||
///
|
||||
/// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net)
|
||||
/// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
/// of this software and associated documentation files (the "Software"), to deal
|
||||
/// in the Software without restriction, including without limitation the rights
|
||||
/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
/// copies of the Software, and to permit persons to whom the Software is
|
||||
/// furnished to do so, subject to the following conditions:
|
||||
///
|
||||
/// The above copyright notice and this permission notice shall be included in
|
||||
/// all copies or substantial portions of the Software.
|
||||
///
|
||||
/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
/// THE SOFTWARE.
|
||||
///
|
||||
/// @ref core
|
||||
/// @file glm/detail/intrinsic_integer.hpp
|
||||
/// @date 2009-05-11 / 2011-06-15
|
||||
/// @author Christophe Riccio
|
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#pragma once |
||||
|
||||
#include "glm/glm.hpp" |
||||
|
||||
#if(!(GLM_ARCH & GLM_ARCH_SSE2)) |
||||
# error "SSE2 instructions not supported or enabled" |
||||
#else |
||||
|
||||
namespace glm{ |
||||
namespace detail |
||||
{ |
||||
__m128i _mm_bit_interleave_si128(__m128i x); |
||||
__m128i _mm_bit_interleave_si128(__m128i x, __m128i y); |
||||
|
||||
}//namespace detail
|
||||
}//namespace glm
|
||||
|
||||
#include "intrinsic_integer.inl" |
||||
|
||||
#endif//GLM_ARCH
|
@ -1,67 +0,0 @@ |
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
/// OpenGL Mathematics (glm.g-truc.net)
|
||||
///
|
||||
/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
|
||||
/// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
/// of this software and associated documentation files (the "Software"), to deal
|
||||
/// in the Software without restriction, including without limitation the rights
|
||||
/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
/// copies of the Software, and to permit persons to whom the Software is
|
||||
/// furnished to do so, subject to the following conditions:
|
||||
///
|
||||
/// The above copyright notice and this permission notice shall be included in
|
||||
/// all copies or substantial portions of the Software.
|
||||
///
|
||||
/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
/// THE SOFTWARE.
|
||||
///
|
||||
/// @ref core
|
||||
/// @file glm/detail/intrinsic_common.hpp
|
||||
/// @date 2009-06-05 / 2011-06-15
|
||||
/// @author Christophe Riccio
|
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#pragma once |
||||
|
||||
#include "setup.hpp" |
||||
|
||||
#if(!(GLM_ARCH & GLM_ARCH_SSE2)) |
||||
# error "SSE2 instructions not supported or enabled" |
||||
#else |
||||
|
||||
#include "intrinsic_geometric.hpp" |
||||
|
||||
namespace glm{ |
||||
namespace detail |
||||
{ |
||||
void sse_add_ps(__m128 in1[4], __m128 in2[4], __m128 out[4]); |
||||
|
||||
void sse_sub_ps(__m128 in1[4], __m128 in2[4], __m128 out[4]); |
||||
|
||||
__m128 sse_mul_ps(__m128 m[4], __m128 v); |
||||
|
||||
__m128 sse_mul_ps(__m128 v, __m128 m[4]); |
||||
|
||||
void sse_mul_ps(__m128 const in1[4], __m128 const in2[4], __m128 out[4]); |
||||
|
||||
void sse_transpose_ps(__m128 const in[4], __m128 out[4]); |
||||
|
||||
void sse_inverse_ps(__m128 const in[4], __m128 out[4]); |
||||
|
||||
void sse_rotate_ps(__m128 const in[4], float Angle, float const v[3], __m128 out[4]); |
||||
|
||||
__m128 sse_det_ps(__m128 const m[4]); |
||||
|
||||
__m128 sse_slow_det_ps(__m128 const m[4]); |
||||
|
||||
}//namespace detail
|
||||
}//namespace glm
|
||||
|
||||
#include "intrinsic_matrix.inl" |
||||
|
||||
#endif//GLM_ARCH
|
File diff suppressed because it is too large
Load Diff
@ -1,46 +0,0 @@ |
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
/// OpenGL Mathematics (glm.g-truc.net)
|
||||
///
|
||||
/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
|
||||
/// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
/// of this software and associated documentation files (the "Software"), to deal
|
||||
/// in the Software without restriction, including without limitation the rights
|
||||
/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
/// copies of the Software, and to permit persons to whom the Software is
|
||||
/// furnished to do so, subject to the following conditions:
|
||||
///
|
||||
/// The above copyright notice and this permission notice shall be included in
|
||||
/// all copies or substantial portions of the Software.
|
||||
///
|
||||
/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
/// THE SOFTWARE.
|
||||
///
|
||||
/// @ref core
|
||||
/// @file glm/detail/intrinsic_trigonometric.hpp
|
||||
/// @date 2009-06-09 / 2011-06-15
|
||||
/// @author Christophe Riccio
|
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#pragma once |
||||
|
||||
#include "setup.hpp" |
||||
|
||||
#if(!(GLM_ARCH & GLM_ARCH_SSE2)) |
||||
# error "SSE2 instructions not supported or enabled" |
||||
#else |
||||
|
||||
namespace glm{ |
||||
namespace detail |
||||
{ |
||||
|
||||
}//namespace detail
|
||||
}//namespace glm
|
||||
|
||||
#include "intrinsic_trigonometric.inl" |
||||
|
||||
#endif//GLM_ARCH
|
@ -1,27 +0,0 @@ |
||||
/////////////////////////////////////////////////////////////////////////////////// |
||||
/// OpenGL Mathematics (glm.g-truc.net) |
||||
/// |
||||
/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) |
||||
/// Permission is hereby granted, free of charge, to any person obtaining a copy |
||||
/// of this software and associated documentation files (the "Software"), to deal |
||||
/// in the Software without restriction, including without limitation the rights |
||||
/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
||||
/// copies of the Software, and to permit persons to whom the Software is |
||||
/// furnished to do so, subject to the following conditions: |
||||
/// |
||||
/// The above copyright notice and this permission notice shall be included in |
||||
/// all copies or substantial portions of the Software. |
||||
/// |
||||
/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
||||
/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
||||
/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
||||
/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
||||
/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
||||
/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
||||
/// THE SOFTWARE. |
||||
/// |
||||
/// @ref core |
||||
/// @file glm/detail/intrinsic_trigonometric.inl |
||||
/// @date 2011-06-15 / 2011-06-15 |
||||
/// @author Christophe Riccio |
||||
/////////////////////////////////////////////////////////////////////////////////// |
@ -1,46 +0,0 @@ |
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
/// OpenGL Mathematics (glm.g-truc.net)
|
||||
///
|
||||
/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
|
||||
/// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
/// of this software and associated documentation files (the "Software"), to deal
|
||||
/// in the Software without restriction, including without limitation the rights
|
||||
/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
/// copies of the Software, and to permit persons to whom the Software is
|
||||
/// furnished to do so, subject to the following conditions:
|
||||
///
|
||||
/// The above copyright notice and this permission notice shall be included in
|
||||
/// all copies or substantial portions of the Software.
|
||||
///
|
||||
/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
/// THE SOFTWARE.
|
||||
///
|
||||
/// @ref core
|
||||
/// @file glm/detail/intrinsic_vector_relational.hpp
|
||||
/// @date 2009-06-09 / 2011-06-15
|
||||
/// @author Christophe Riccio
|
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#pragma once |
||||
|
||||
#include "setup.hpp" |
||||
|
||||
#if(!(GLM_ARCH & GLM_ARCH_SSE2)) |
||||
# error "SSE2 instructions not supported or enabled" |
||||
#else |
||||
|
||||
namespace glm{ |
||||
namespace detail |
||||
{ |
||||
|
||||
}//namespace detail
|
||||
}//namespace glm
|
||||
|
||||
#include "intrinsic_vector_relational.inl" |
||||
|
||||
#endif//GLM_ARCH
|
@ -1,366 +0,0 @@ |
||||
/////////////////////////////////////////////////////////////////////////////////// |
||||
/// OpenGL Mathematics (glm.g-truc.net) |
||||
/// |
||||
/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) |
||||
/// Permission is hereby granted, free of charge, to any person obtaining a copy |
||||
/// of this software and associated documentation files (the "Software"), to deal |
||||
/// in the Software without restriction, including without limitation the rights |
||||
/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
||||
/// copies of the Software, and to permit persons to whom the Software is |
||||
/// furnished to do so, subject to the following conditions: |
||||
/// |
||||
/// The above copyright notice and this permission notice shall be included in |
||||
/// all copies or substantial portions of the Software. |
||||
/// |
||||
/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
||||
/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
||||
/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
||||
/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
||||
/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
||||
/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
||||
/// THE SOFTWARE. |
||||
/// |
||||
/// @ref core |
||||
/// @file glm/detail/intrinsic_vector_relational.inl |
||||
/// @date 2009-06-09 / 2011-06-15 |
||||
/// @author Christophe Riccio |
||||
/////////////////////////////////////////////////////////////////////////////////// |
||||
// |
||||
//// lessThan |
||||
//template <typename valType> |
||||
//GLM_FUNC_QUALIFIER typename tvec2<T, P>::bool_type lessThan |
||||
//( |
||||
// tvec2<T, P> const & x, |
||||
// tvec2<T, P> const & y |
||||
//) |
||||
//{ |
||||
// GLM_STATIC_ASSERT( |
||||
// detail::type<valType>::is_float || |
||||
// detail::type<valType>::is_int || |
||||
// detail::type<valType>::is_uint); |
||||
// |
||||
// return typename tvec2<bool>::bool_type(x.x < y.x, x.y < y.y); |
||||
//} |
||||
// |
||||
//template <typename valType> |
||||
//GLM_FUNC_QUALIFIER typename tvec3<T, P>::bool_type lessThan |
||||
//( |
||||
// tvec3<T, P> const & x, |
||||
// tvec3<T, P> const & y |
||||
//) |
||||
//{ |
||||
// GLM_STATIC_ASSERT( |
||||
// detail::type<valType>::is_float || |
||||
// detail::type<valType>::is_int || |
||||
// detail::type<valType>::is_uint); |
||||
// |
||||
// return typename tvec3<bool>::bool_type(x.x < y.x, x.y < y.y, x.z < y.z); |
||||
//} |
||||
// |
||||
//template <typename valType> |
||||
//GLM_FUNC_QUALIFIER typename tvec4<T, P>::bool_type lessThan |
||||
//( |
||||
// tvec4<T, P> const & x, |
||||
// tvec4<T, P> const & y |
||||
//) |
||||
//{ |
||||
// GLM_STATIC_ASSERT( |
||||
// detail::type<valType>::is_float || |
||||
// detail::type<valType>::is_int || |
||||
// detail::type<valType>::is_uint); |
||||
// |
||||
// return typename tvec4<bool>::bool_type(x.x < y.x, x.y < y.y, x.z < y.z, x.w < y.w); |
||||
//} |
||||
// |
||||
//// lessThanEqual |
||||
//template <typename valType> |
||||
//GLM_FUNC_QUALIFIER typename tvec2<T, P>::bool_type lessThanEqual |
||||
//( |
||||
// tvec2<T, P> const & x, |
||||
// tvec2<T, P> const & y |
||||
//) |
||||
//{ |
||||
// GLM_STATIC_ASSERT( |
||||
// detail::type<valType>::is_float || |
||||
// detail::type<valType>::is_int || |
||||
// detail::type<valType>::is_uint); |
||||
// |
||||
// return typename tvec2<bool>::bool_type(x.x <= y.x, x.y <= y.y); |
||||
//} |
||||
// |
||||
//template <typename valType> |
||||
//GLM_FUNC_QUALIFIER typename tvec3<T, P>::bool_type lessThanEqual |
||||
//( |
||||
// tvec3<T, P> const & x, |
||||
// tvec3<T, P> const & y |
||||
//) |
||||
//{ |
||||
// GLM_STATIC_ASSERT( |
||||
// detail::type<valType>::is_float || |
||||
// detail::type<valType>::is_int || |
||||
// detail::type<valType>::is_uint); |
||||
// |
||||
// return typename tvec3<bool>::bool_type(x.x <= y.x, x.y <= y.y, x.z <= y.z); |
||||
//} |
||||
// |
||||
//template <typename valType> |
||||
//GLM_FUNC_QUALIFIER typename tvec4<T, P>::bool_type lessThanEqual |
||||
//( |
||||
// tvec4<T, P> const & x, |
||||
// tvec4<T, P> const & y |
||||
//) |
||||
//{ |
||||
// GLM_STATIC_ASSERT( |
||||
// detail::type<valType>::is_float || |
||||
// detail::type<valType>::is_int || |
||||
// detail::type<valType>::is_uint); |
||||
// |
||||
// return typename tvec4<bool>::bool_type(x.x <= y.x, x.y <= y.y, x.z <= y.z, x.w <= y.w); |
||||
//} |
||||
// |
||||
//// greaterThan |
||||
//template <typename valType> |
||||
//GLM_FUNC_QUALIFIER typename tvec2<T, P>::bool_type greaterThan |
||||
//( |
||||
// tvec2<T, P> const & x, |
||||
// tvec2<T, P> const & y |
||||
//) |
||||
//{ |
||||
// GLM_STATIC_ASSERT( |
||||
// detail::type<valType>::is_float || |
||||
// detail::type<valType>::is_int || |
||||
// detail::type<valType>::is_uint); |
||||
// |
||||
// return typename tvec2<bool>::bool_type(x.x > y.x, x.y > y.y); |
||||
//} |
||||
// |
||||
//template <typename valType> |
||||
//GLM_FUNC_QUALIFIER typename tvec3<T, P>::bool_type greaterThan |
||||
//( |
||||
// tvec3<T, P> const & x, |
||||
// tvec3<T, P> const & y |
||||
//) |
||||
//{ |
||||
// GLM_STATIC_ASSERT( |
||||
// detail::type<valType>::is_float || |
||||
// detail::type<valType>::is_int || |
||||
// detail::type<valType>::is_uint); |
||||
// |
||||
// return typename tvec3<bool>::bool_type(x.x > y.x, x.y > y.y, x.z > y.z); |
||||
//} |
||||
// |
||||
//template <typename valType> |
||||
//GLM_FUNC_QUALIFIER typename tvec4<T, P>::bool_type greaterThan |
||||
//( |
||||
// tvec4<T, P> const & x, |
||||
// tvec4<T, P> const & y |
||||
//) |
||||
//{ |
||||
// GLM_STATIC_ASSERT( |
||||
// detail::type<valType>::is_float || |
||||
// detail::type<valType>::is_int || |
||||
// detail::type<valType>::is_uint); |
||||
// |
||||
// return typename tvec4<bool>::bool_type(x.x > y.x, x.y > y.y, x.z > y.z, x.w > y.w); |
||||
//} |
||||
// |
||||
//// greaterThanEqual |
||||
//template <typename valType> |
||||
//GLM_FUNC_QUALIFIER typename tvec2<T, P>::bool_type greaterThanEqual |
||||
//( |
||||
// tvec2<T, P> const & x, |
||||
// tvec2<T, P> const & y |
||||
//) |
||||
//{ |
||||
// GLM_STATIC_ASSERT( |
||||
// detail::type<valType>::is_float || |
||||
// detail::type<valType>::is_int || |
||||
// detail::type<valType>::is_uint); |
||||
// |
||||
// return typename tvec2<bool>::bool_type(x.x >= y.x, x.y >= y.y); |
||||
//} |
||||
// |
||||
//template <typename valType> |
||||
//GLM_FUNC_QUALIFIER typename tvec3<T, P>::bool_type greaterThanEqual |
||||
//( |
||||
// tvec3<T, P> const & x, |
||||
// tvec3<T, P> const & y |
||||
//) |
||||
//{ |
||||
// GLM_STATIC_ASSERT( |
||||
// detail::type<valType>::is_float || |
||||
// detail::type<valType>::is_int || |
||||
// detail::type<valType>::is_uint); |
||||
// |
||||
// return typename tvec3<bool>::bool_type(x.x >= y.x, x.y >= y.y, x.z >= y.z); |
||||
//} |
||||
// |
||||
//template <typename valType> |
||||
//GLM_FUNC_QUALIFIER typename tvec4<T, P>::bool_type greaterThanEqual |
||||
//( |
||||
// tvec4<T, P> const & x, |
||||
// tvec4<T, P> const & y |
||||
//) |
||||
//{ |
||||
// GLM_STATIC_ASSERT( |
||||
// detail::type<valType>::is_float || |
||||
// detail::type<valType>::is_int || |
||||
// detail::type<valType>::is_uint); |
||||
// |
||||
// return typename tvec4<bool>::bool_type(x.x >= y.x, x.y >= y.y, x.z >= y.z, x.w >= y.w); |
||||
//} |
||||
// |
||||
//// equal |
||||
//template <typename valType> |
||||
//GLM_FUNC_QUALIFIER typename tvec2<T, P>::bool_type equal |
||||
//( |
||||
// tvec2<T, P> const & x, |
||||
// tvec2<T, P> const & y |
||||
//) |
||||
//{ |
||||
// GLM_STATIC_ASSERT( |
||||
// detail::type<valType>::is_float || |
||||
// detail::type<valType>::is_int || |
||||
// detail::type<valType>::is_uint || |
||||
// detail::type<valType>::is_bool); |
||||
// |
||||
// return typename tvec2<T, P>::bool_type(x.x == y.x, x.y == y.y); |
||||
//} |
||||
// |
||||
//template <typename valType> |
||||
//GLM_FUNC_QUALIFIER typename tvec3<T, P>::bool_type equal |
||||
//( |
||||
// tvec3<T, P> const & x, |
||||
// tvec3<T, P> const & y |
||||
//) |
||||
//{ |
||||
// GLM_STATIC_ASSERT( |
||||
// detail::type<valType>::is_float || |
||||
// detail::type<valType>::is_int || |
||||
// detail::type<valType>::is_uint || |
||||
// detail::type<valType>::is_bool); |
||||
// |
||||
// return typename tvec3<T, P>::bool_type(x.x == y.x, x.y == y.y, x.z == y.z); |
||||
//} |
||||
// |
||||
//template <typename valType> |
||||
//GLM_FUNC_QUALIFIER typename tvec4<T, P>::bool_type equal |
||||
//( |
||||
// tvec4<T, P> const & x, |
||||
// tvec4<T, P> const & y |
||||
//) |
||||
//{ |
||||
// GLM_STATIC_ASSERT( |
||||
// detail::type<valType>::is_float || |
||||
// detail::type<valType>::is_int || |
||||
// detail::type<valType>::is_uint || |
||||
// detail::type<valType>::is_bool); |
||||
// |
||||
// return typename tvec4<T, P>::bool_type(x.x == y.x, x.y == y.y, x.z == y.z, x.w == y.w); |
||||
//} |
||||
// |
||||
//// notEqual |
||||
//template <typename valType> |
||||
//GLM_FUNC_QUALIFIER typename tvec2<T, P>::bool_type notEqual |
||||
//( |
||||
// tvec2<T, P> const & x, |
||||
// tvec2<T, P> const & y |
||||
//) |
||||
//{ |
||||
// GLM_STATIC_ASSERT( |
||||
// detail::type<valType>::is_float || |
||||
// detail::type<valType>::is_int || |
||||
// detail::type<valType>::is_uint || |
||||
// detail::type<valType>::is_bool); |
||||
// |
||||
// return typename tvec2<T, P>::bool_type(x.x != y.x, x.y != y.y); |
||||
//} |
||||
// |
||||
//template <typename valType> |
||||
//GLM_FUNC_QUALIFIER typename tvec3<T, P>::bool_type notEqual |
||||
//( |
||||
// tvec3<T, P> const & x, |
||||
// tvec3<T, P> const & y |
||||
//) |
||||
//{ |
||||
// GLM_STATIC_ASSERT( |
||||
// detail::type<valType>::is_float || |
||||
// detail::type<valType>::is_int || |
||||
// detail::type<valType>::is_uint || |
||||
// detail::type<valType>::is_bool); |
||||
// |
||||
// return typename tvec3<T, P>::bool_type(x.x != y.x, x.y != y.y, x.z != y.z); |
||||
//} |
||||
// |
||||
//template <typename valType> |
||||
//GLM_FUNC_QUALIFIER typename tvec4<T, P>::bool_type notEqual |
||||
//( |
||||
// tvec4<T, P> const & x, |
||||
// tvec4<T, P> const & y |
||||
//) |
||||
//{ |
||||
// GLM_STATIC_ASSERT( |
||||
// detail::type<valType>::is_float || |
||||
// detail::type<valType>::is_int || |
||||
// detail::type<valType>::is_uint || |
||||
// detail::type<valType>::is_bool); |
||||
// |
||||
// return typename tvec4<T, P>::bool_type(x.x != y.x, x.y != y.y, x.z != y.z, x.w != y.w); |
||||
//} |
||||
// |
||||
//// any |
||||
//GLM_FUNC_QUALIFIER bool any(tvec2<bool> const & x) |
||||
//{ |
||||
// return x.x || x.y; |
||||
//} |
||||
// |
||||
//GLM_FUNC_QUALIFIER bool any(tvec3<bool> const & x) |
||||
//{ |
||||
// return x.x || x.y || x.z; |
||||
//} |
||||
// |
||||
//GLM_FUNC_QUALIFIER bool any(tvec4<bool> const & x) |
||||
//{ |
||||
// return x.x || x.y || x.z || x.w; |
||||
//} |
||||
// |
||||
//// all |
||||
//GLM_FUNC_QUALIFIER bool all(const tvec2<bool>& x) |
||||
//{ |
||||
// return x.x && x.y; |
||||
//} |
||||
// |
||||
//GLM_FUNC_QUALIFIER bool all(const tvec3<bool>& x) |
||||
//{ |
||||
// return x.x && x.y && x.z; |
||||
//} |
||||
// |
||||
//GLM_FUNC_QUALIFIER bool all(const tvec4<bool>& x) |
||||
//{ |
||||
// return x.x && x.y && x.z && x.w; |
||||
//} |
||||
// |
||||
//// not |
||||
//GLM_FUNC_QUALIFIER tvec2<bool>::bool_type not_ |
||||
//( |
||||
// tvec2<bool> const & v |
||||
//) |
||||
//{ |
||||
// return tvec2<bool>::bool_type(!v.x, !v.y); |
||||
//} |
||||
// |
||||
//GLM_FUNC_QUALIFIER tvec3<bool>::bool_type not_ |
||||
//( |
||||
// tvec3<bool> const & v |
||||
//) |
||||
//{ |
||||
// return tvec3<bool>::bool_type(!v.x, !v.y, !v.z); |
||||
//} |
||||
// |
||||
//GLM_FUNC_QUALIFIER tvec4<bool>::bool_type not_ |
||||
//( |
||||
// tvec4<bool> const & v |
||||
//) |
||||
//{ |
||||
// return tvec4<bool>::bool_type(!v.x, !v.y, !v.z, !v.w); |
||||
//} |
@ -1,41 +0,0 @@ |
||||
/////////////////////////////////////////////////////////////////////////////////// |
||||
/// OpenGL Mathematics (glm.g-truc.net) |
||||
/// |
||||
/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) |
||||
/// Permission is hereby granted, free of charge, to any person obtaining a copy |
||||
/// of this software and associated documentation files (the "Software"), to deal |
||||
/// in the Software without restriction, including without limitation the rights |
||||
/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
||||
/// copies of the Software, and to permit persons to whom the Software is |
||||
/// furnished to do so, subject to the following conditions: |
||||
/// |
||||
/// The above copyright notice and this permission notice shall be included in |
||||
/// all copies or substantial portions of the Software. |
||||
/// |
||||
/// Restrictions: |
||||
/// By making use of the Software for military purposes, you choose to make |
||||
/// a Bunny unhappy. |
||||
/// |
||||
/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
||||
/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
||||
/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
||||
/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
||||
/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
||||
/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
||||
/// THE SOFTWARE. |
||||
/// |
||||
/// @ref core |
||||
/// @file glm/detail/type_tvec4_avx.inl |
||||
/// @date 2014-12-01 / 2014-12-01 |
||||
/// @author Christophe Riccio |
||||
/////////////////////////////////////////////////////////////////////////////////// |
||||
|
||||
namespace glm{ |
||||
namespace detail |
||||
{ |
||||
|
||||
}//namespace detail |
||||
|
||||
|
||||
|
||||
}//namespace glm |
@ -1,41 +0,0 @@ |
||||
/////////////////////////////////////////////////////////////////////////////////// |
||||
/// OpenGL Mathematics (glm.g-truc.net) |
||||
/// |
||||
/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) |
||||
/// Permission is hereby granted, free of charge, to any person obtaining a copy |
||||
/// of this software and associated documentation files (the "Software"), to deal |
||||
/// in the Software without restriction, including without limitation the rights |
||||
/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
||||
/// copies of the Software, and to permit persons to whom the Software is |
||||
/// furnished to do so, subject to the following conditions: |
||||
/// |
||||
/// The above copyright notice and this permission notice shall be included in |
||||
/// all copies or substantial portions of the Software. |
||||
/// |
||||
/// Restrictions: |
||||
/// By making use of the Software for military purposes, you choose to make |
||||
/// a Bunny unhappy. |
||||
/// |
||||
/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
||||
/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
||||
/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
||||
/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
||||
/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
||||
/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
||||
/// THE SOFTWARE. |
||||
/// |
||||
/// @ref core |
||||
/// @file glm/detail/type_tvec4_avx2.inl |
||||
/// @date 2014-12-01 / 2014-12-01 |
||||
/// @author Christophe Riccio |
||||
/////////////////////////////////////////////////////////////////////////////////// |
||||
|
||||
namespace glm{ |
||||
namespace detail |
||||
{ |
||||
|
||||
}//namespace detail |
||||
|
||||
|
||||
|
||||
}//namespace glm |
Loading…
Reference in New Issue