Go to the source code of this file.
Classes | |
struct | fcl::details::sse_meta_d4 |
struct | fcl::details::sse_meta_f12 |
struct | fcl::details::sse_meta_f16 |
struct | fcl::details::sse_meta_f4 |
Namespaces | |
namespace | fcl |
Main namespace. | |
namespace | fcl::details |
FCL internals. Ignore this :) unless you are God. | |
Defines | |
#define | _mm_rol_ps(x, e) (((e) % 4) ? _mm_shuffle_ps((x), (x), _MM_SHUFFLE((7-(e))%4, (6-(e))%4, (5-(e))%4, (4-(e))%4)) : (x)) |
#define | _mm_ror_ps(x, e) (((e) % 4) ? _mm_shuffle_ps((x), (x), _MM_SHUFFLE(((e)+3)%4, ((e)+2)%4, ((e)+1)%4, (e)%4)) : (x)) |
#define | vec_splat(a, e) _mm_shuffle_ps((a), (a), _MM_SHUFFLE((e), (e), (e), (e))) |
#define | vec_splatd(a, e) _mm_shuffle_pd((a), (a), _MM_SHUFFLE2((e), (e))) |
Typedefs | |
typedef float | meta_type |
Functions | |
struct fcl::details::sse_meta_f4 | fcl::details::__attribute__ ((aligned(16))) |
static sse_meta_f4 | fcl::details::abs (const sse_meta_f4 &x) |
static sse_meta_d4 | fcl::details::abs (const sse_meta_d4 &x) |
static sse_meta_f12 | fcl::details::abs (const sse_meta_f12 &mat) |
static sse_meta_f16 | fcl::details::abs (const sse_meta_f16 &mat) |
static __m128 | fcl::details::cross_prod (__m128 x, __m128 y) |
static sse_meta_f4 | fcl::details::cross_prod (const sse_meta_f4 &x, const sse_meta_f4 &y) |
static void | fcl::details::cross_prod (__m128d x0, __m128d x1, __m128d y0, __m128d y1, __m128d *z0, __m128d *z1) |
static sse_meta_d4 | fcl::details::cross_prod (const sse_meta_d4 &x, const sse_meta_d4 &y) |
static __m128 | fcl::details::dot_prod3 (__m128 x, __m128 y) |
static float | fcl::details::dot_prod3 (const sse_meta_f4 &x, const sse_meta_f4 &y) |
static __m128d | fcl::details::dot_prod3 (__m128d x0, __m128d x1, __m128d y0, __m128d y1) |
static double | fcl::details::dot_prod3 (const sse_meta_d4 &x, const sse_meta_d4 &y) |
static __m128 | fcl::details::dot_prod4 (__m128 x, __m128 y) |
static float | fcl::details::dot_prod4 (const sse_meta_f4 &x, const sse_meta_f4 &y) |
static __m128d | fcl::details::dot_prod4 (__m128d x0, __m128d x1, __m128d y0, __m128d y1) |
static double | fcl::details::dot_prod4 (const sse_meta_d4 &x, const sse_meta_d4 &y) |
static bool | fcl::details::equal (const sse_meta_f4 &x, const sse_meta_f4 &y, float epsilon) |
static bool | fcl::details::equal (const sse_meta_d4 &x, const sse_meta_d4 &y, double epsilon) |
static void | fcl::details::inverse (__m128 c0, __m128 c1, __m128 c2, __m128 *i0, __m128 *i1, __m128 *i2) |
static sse_meta_f12 | fcl::details::inverse (const sse_meta_f12 &mat) |
static void | fcl::details::inverse (__m128 c0, __m128 c1, __m128 c2, __m128 c3, __m128 *res0, __m128 *res1, __m128 *res2, __m128 *res3) |
static sse_meta_f16 | fcl::details::inverse (const sse_meta_f16 &mat) |
sse_meta_f4 & | lbound (const sse_meta_f4 &l) |
sse_meta_d4 & | lbound (const sse_meta_d4 &l) |
static sse_meta_f4 | fcl::details::max (const sse_meta_f4 &x, const sse_meta_f4 &y) |
static sse_meta_d4 | fcl::details::max (const sse_meta_d4 &x, const sse_meta_d4 &y) |
static sse_meta_f4 | fcl::details::min (const sse_meta_f4 &x, const sse_meta_f4 &y) |
static sse_meta_d4 | fcl::details::min (const sse_meta_d4 &x, const sse_meta_d4 &y) |
void | negate () |
static __m128 | fcl::details::newtonraphson_rsqrt4 (const __m128 v) |
static sse_meta_f4 | fcl::details::normalize3 (const sse_meta_f4 &x) |
static sse_meta_f4 | fcl::details::normalize3_approx (const sse_meta_f4 &x) |
void | operator delete[] (void *x) |
void * | operator new[] (size_t n) |
sse_meta_f4 | operator* (const sse_meta_f4 &other) const |
sse_meta_f4 | operator* (float t) const |
sse_meta_d4 | operator* (const sse_meta_d4 &other) const |
sse_meta_d4 | operator* (double t) const |
sse_meta_f4 & | operator*= (const sse_meta_f4 &other) |
sse_meta_f4 & | operator*= (float t) |
sse_meta_d4 & | operator*= (const sse_meta_d4 &other) |
sse_meta_d4 & | operator*= (double t) |
sse_meta_f4 | operator+ (const sse_meta_f4 &other) const |
sse_meta_f4 | operator+ (float t) const |
sse_meta_d4 | operator+ (const sse_meta_d4 &other) const |
sse_meta_d4 | operator+ (double t) const |
sse_meta_f4 & | operator+= (const sse_meta_f4 &other) |
sse_meta_f4 & | operator+= (float t) |
sse_meta_d4 & | operator+= (const sse_meta_d4 &other) |
sse_meta_d4 & | operator+= (double t) |
sse_meta_f4 | operator- (const sse_meta_f4 &other) const |
sse_meta_f4 | operator- (float t) const |
sse_meta_f4 | operator- () const |
sse_meta_d4 | operator- (const sse_meta_d4 &other) const |
sse_meta_d4 | operator- (double t) const |
sse_meta_f4 & | operator-= (const sse_meta_f4 &other) |
sse_meta_f4 & | operator-= (float t) |
sse_meta_d4 & | operator-= (const sse_meta_d4 &other) |
sse_meta_d4 & | operator-= (double t) |
sse_meta_f4 | operator/ (const sse_meta_f4 &other) const |
sse_meta_f4 | operator/ (float t) const |
sse_meta_d4 | operator/ (const sse_meta_d4 &other) const |
sse_meta_d4 | operator/ (double t) const |
sse_meta_f4 & | operator/= (const sse_meta_f4 &other) |
sse_meta_f4 & | operator/= (float t) |
sse_meta_d4 & | operator/= (const sse_meta_d4 &other) |
sse_meta_d4 & | operator/= (double t) |
float | operator[] (size_t i) const |
void | setValue (float x, float y, float z, float w=1) |
void | setValue (float x) |
void | setValue (__m128 x) |
void | setValue (double x, double y, double z, double w=0) |
void | setValue (double x) |
void | setValue (__m128d x, __m128d y) |
sse_meta_d4 () | |
sse_meta_d4 (double x) | |
sse_meta_d4 (double *px) | |
sse_meta_d4 (__m128d x, __m128d y) | |
sse_meta_d4 (double x, double y, double z, double w=0) | |
sse_meta_f4 () | |
sse_meta_f4 (float x) | |
sse_meta_f4 (float *px) | |
sse_meta_f4 (__m128 x) | |
sse_meta_f4 (float x, float y, float z, float w=1) | |
static void | fcl::details::transpose (__m128 c0, __m128 c1, __m128 c2, __m128 *r0, __m128 *r1, __m128 *r2) |
static sse_meta_f12 | fcl::details::transpose (const sse_meta_f12 &mat) |
static void | fcl::details::transpose (__m128 c0, __m128 c1, __m128 c2, __m128 c3, __m128 *r0, __m128 *r1, __m128 *r2, __m128 *r3) |
static sse_meta_f16 | fcl::details::transpose (const sse_meta_f16 &mat) |
sse_meta_f4 & | ubound (const sse_meta_f4 &u) |
sse_meta_d4 & | ubound (const sse_meta_d4 &u) |
static __m128 | fcl::details::vec_sel (__m128 a, __m128 b, __m128 mask) |
static __m128 | fcl::details::vec_sel (__m128 a, __m128 b, const unsigned int *mask) |
static __m128 | fcl::details::vec_sel (__m128 a, __m128 b, unsigned int mask) |
Variables | |
union { | |
__m128d v [2] | |
double vs [4] | |
}; | |
union { | |
__m128 v | |
float vs [4] | |
}; | |
struct fcl::details::sse_meta_f12 | fcl::details::__attribute__ |
const __m128d | fcl::details::xmmd_0 = {0, 0} |
const __m128 | fcl::details::xmms_0 = {0.f, 0.f, 0.f, 0.f} |
#define _mm_rol_ps | ( | x, | |
e | |||
) | (((e) % 4) ? _mm_shuffle_ps((x), (x), _MM_SHUFFLE((7-(e))%4, (6-(e))%4, (5-(e))%4, (4-(e))%4)) : (x)) |
Definition at line 81 of file math_simd_details.h.
#define _mm_ror_ps | ( | x, | |
e | |||
) | (((e) % 4) ? _mm_shuffle_ps((x), (x), _MM_SHUFFLE(((e)+3)%4, ((e)+2)%4, ((e)+1)%4, (e)%4)) : (x)) |
Definition at line 79 of file math_simd_details.h.
#define vec_splat | ( | a, | |
e | |||
) | _mm_shuffle_ps((a), (a), _MM_SHUFFLE((e), (e), (e), (e))) |
Definition at line 76 of file math_simd_details.h.
#define vec_splatd | ( | a, | |
e | |||
) | _mm_shuffle_pd((a), (a), _MM_SHUFFLE2((e), (e))) |
Definition at line 77 of file math_simd_details.h.
typedef double meta_type |
Definition at line 146 of file math_simd_details.h.
sse_meta_f4& __attribute__::lbound | ( | const sse_meta_f4 & | l | ) | [inline] |
Definition at line 165 of file math_simd_details.h.
sse_meta_d4& __attribute__::lbound | ( | const sse_meta_d4 & | l | ) | [inline] |
Definition at line 313 of file math_simd_details.h.
void negate | ( | ) | [inline] |
Definition at line 157 of file math_simd_details.h.
void operator delete[] | ( | void * | x | ) | [inline] |
Definition at line 172 of file math_simd_details.h.
void * operator new[] | ( | size_t | n | ) | [inline] |
Definition at line 171 of file math_simd_details.h.
sse_meta_f4 __attribute__::operator* | ( | const sse_meta_f4 & | other | ) | const [inline] |
Definition at line 178 of file math_simd_details.h.
sse_meta_f4 __attribute__::operator* | ( | float | t | ) | const [inline] |
Definition at line 186 of file math_simd_details.h.
sse_meta_d4 __attribute__::operator* | ( | const sse_meta_d4 & | other | ) | const [inline] |
Definition at line 335 of file math_simd_details.h.
sse_meta_d4 __attribute__::operator* | ( | double | t | ) | const [inline] |
Definition at line 343 of file math_simd_details.h.
sse_meta_f4& __attribute__::operator*= | ( | const sse_meta_f4 & | other | ) | [inline] |
Definition at line 182 of file math_simd_details.h.
sse_meta_f4& __attribute__::operator*= | ( | float | t | ) | [inline] |
Definition at line 190 of file math_simd_details.h.
sse_meta_d4& __attribute__::operator*= | ( | const sse_meta_d4 & | other | ) | [inline] |
Definition at line 339 of file math_simd_details.h.
sse_meta_d4& __attribute__::operator*= | ( | double | t | ) | [inline] |
Definition at line 347 of file math_simd_details.h.
sse_meta_f4 __attribute__::operator+ | ( | const sse_meta_f4 & | other | ) | const [inline] |
Definition at line 176 of file math_simd_details.h.
sse_meta_f4 __attribute__::operator+ | ( | float | t | ) | const [inline] |
Definition at line 184 of file math_simd_details.h.
sse_meta_d4 __attribute__::operator+ | ( | const sse_meta_d4 & | other | ) | const [inline] |
Definition at line 333 of file math_simd_details.h.
sse_meta_d4 __attribute__::operator+ | ( | double | t | ) | const [inline] |
Definition at line 341 of file math_simd_details.h.
sse_meta_f4& __attribute__::operator+= | ( | const sse_meta_f4 & | other | ) | [inline] |
Definition at line 180 of file math_simd_details.h.
sse_meta_f4& __attribute__::operator+= | ( | float | t | ) | [inline] |
Definition at line 188 of file math_simd_details.h.
sse_meta_d4& __attribute__::operator+= | ( | const sse_meta_d4 & | other | ) | [inline] |
Definition at line 337 of file math_simd_details.h.
sse_meta_d4& __attribute__::operator+= | ( | double | t | ) | [inline] |
Definition at line 345 of file math_simd_details.h.
sse_meta_f4 __attribute__::operator- | ( | const sse_meta_f4 & | other | ) | const [inline] |
Definition at line 177 of file math_simd_details.h.
sse_meta_f4 __attribute__::operator- | ( | float | t | ) | const [inline] |
Definition at line 185 of file math_simd_details.h.
sse_meta_d4 operator- | ( | ) | const [inline] |
Definition at line 192 of file math_simd_details.h.
sse_meta_d4 __attribute__::operator- | ( | const sse_meta_d4 & | other | ) | const [inline] |
Definition at line 334 of file math_simd_details.h.
sse_meta_d4 __attribute__::operator- | ( | double | t | ) | const [inline] |
Definition at line 342 of file math_simd_details.h.
sse_meta_f4& __attribute__::operator-= | ( | const sse_meta_f4 & | other | ) | [inline] |
Definition at line 181 of file math_simd_details.h.
sse_meta_f4& __attribute__::operator-= | ( | float | t | ) | [inline] |
Definition at line 189 of file math_simd_details.h.
sse_meta_d4& __attribute__::operator-= | ( | const sse_meta_d4 & | other | ) | [inline] |
Definition at line 338 of file math_simd_details.h.
sse_meta_d4& __attribute__::operator-= | ( | double | t | ) | [inline] |
Definition at line 346 of file math_simd_details.h.
sse_meta_f4 __attribute__::operator/ | ( | const sse_meta_f4 & | other | ) | const [inline] |
Definition at line 179 of file math_simd_details.h.
sse_meta_f4 __attribute__::operator/ | ( | float | t | ) | const [inline] |
Definition at line 187 of file math_simd_details.h.
sse_meta_d4 __attribute__::operator/ | ( | const sse_meta_d4 & | other | ) | const [inline] |
Definition at line 336 of file math_simd_details.h.
sse_meta_d4 __attribute__::operator/ | ( | double | t | ) | const [inline] |
Definition at line 344 of file math_simd_details.h.
sse_meta_f4& __attribute__::operator/= | ( | const sse_meta_f4 & | other | ) | [inline] |
Definition at line 183 of file math_simd_details.h.
sse_meta_f4& __attribute__::operator/= | ( | float | t | ) | [inline] |
Definition at line 191 of file math_simd_details.h.
sse_meta_d4& __attribute__::operator/= | ( | const sse_meta_d4 & | other | ) | [inline] |
Definition at line 340 of file math_simd_details.h.
sse_meta_d4& __attribute__::operator/= | ( | double | t | ) | [inline] |
Definition at line 348 of file math_simd_details.h.
double & operator[] | ( | size_t | i | ) | const [inline] |
Definition at line 173 of file math_simd_details.h.
void __attribute__::setValue | ( | float | x, |
float | y, | ||
float | z, | ||
float | w = 1 |
||
) | [inline] |
Definition at line 154 of file math_simd_details.h.
void __attribute__::setValue | ( | float | x | ) | [inline] |
Definition at line 155 of file math_simd_details.h.
void __attribute__::setValue | ( | __m128 | x | ) | [inline] |
Definition at line 156 of file math_simd_details.h.
void __attribute__::setValue | ( | double | x, |
double | y, | ||
double | z, | ||
double | w = 0 |
||
) | [inline] |
Definition at line 282 of file math_simd_details.h.
void __attribute__::setValue | ( | double | x | ) | [inline] |
Definition at line 288 of file math_simd_details.h.
void __attribute__::setValue | ( | __m128d | x, |
__m128d | y | ||
) | [inline] |
Definition at line 294 of file math_simd_details.h.
Definition at line 255 of file math_simd_details.h.
__attribute__::sse_meta_d4 | ( | double | x | ) |
Definition at line 260 of file math_simd_details.h.
__attribute__::sse_meta_d4 | ( | double * | px | ) |
Definition at line 265 of file math_simd_details.h.
__attribute__::sse_meta_d4 | ( | __m128d | x, |
__m128d | y | ||
) |
Definition at line 271 of file math_simd_details.h.
__attribute__::sse_meta_d4 | ( | double | x, |
double | y, | ||
double | z, | ||
double | w = 0 |
||
) |
Definition at line 277 of file math_simd_details.h.
Definition at line 149 of file math_simd_details.h.
__attribute__::sse_meta_f4 | ( | float | x | ) |
Definition at line 150 of file math_simd_details.h.
__attribute__::sse_meta_f4 | ( | float * | px | ) |
Definition at line 151 of file math_simd_details.h.
__attribute__::sse_meta_f4 | ( | __m128 | x | ) |
Definition at line 152 of file math_simd_details.h.
__attribute__::sse_meta_f4 | ( | float | x, |
float | y, | ||
float | z, | ||
float | w = 1 |
||
) |
Definition at line 153 of file math_simd_details.h.
sse_meta_f4& __attribute__::ubound | ( | const sse_meta_f4 & | u | ) | [inline] |
Definition at line 159 of file math_simd_details.h.
sse_meta_d4& __attribute__::ubound | ( | const sse_meta_d4 & | u | ) | [inline] |
Definition at line 306 of file math_simd_details.h.
union { ... } |
union { ... } |
__m128d v[2] |
Definition at line 148 of file math_simd_details.h.
double vs[4] |
Definition at line 148 of file math_simd_details.h.