00001 
00002 
00004 
00005 
00006 
00007 
00009 
00010 #ifndef glm_core_intrinsic_geometric
00011 #define glm_core_intrinsic_geometric
00012 
00013 #include "setup.hpp"
00014 
00015 #if((GLM_ARCH & GLM_ARCH_SSE2) != GLM_ARCH_SSE2)
00016 #       error "SSE2 instructions not supported or enabled"
00017 #else
00018 
00019 #include "intrinsic_common.hpp"
00020 
00021 namespace glm{
00022 namespace detail
00023 {
00024         
00025         __m128 sse_len_ps(__m128 x);
00026 
00027         
00028         __m128 sse_dst_ps(__m128 p0, __m128 p1);
00029 
00030         
00031         __m128 sse_dot_ps(__m128 v1, __m128 v2);
00032 
00033         
00034         __m128 sse_dot_ss(__m128 v1, __m128 v2);
00035 
00036         
00037         __m128 sse_xpd_ps(__m128 v1, __m128 v2);
00038 
00039         
00040         __m128 sse_nrm_ps(__m128 v);
00041 
00042         
00043         __m128 sse_ffd_ps(__m128 N, __m128 I, __m128 Nref);
00044 
00045         
00046         __m128 sse_rfe_ps(__m128 I, __m128 N);
00047 
00048         
00049         __m128 sse_rfa_ps(__m128 I, __m128 N, __m128 eta);
00050 
00051 }
00052 }
00053 
00054 #include "intrinsic_geometric.inl"
00055 
00056 #endif//GLM_ARCH
00057 #endif//glm_core_intrinsic_geometric