Classes |
struct | fcl::details::sse_meta_f4 |
struct | fcl::details::sse_meta_d4 |
struct | fcl::details::sse_meta_f12 |
struct | fcl::details::sse_meta_f16 |
Namespaces |
namespace | fcl |
| Main namespace.
|
namespace | fcl::details |
| FCL internals.
|
Defines |
#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))) |
#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 | _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)) |
Typedefs |
typedef float | meta_type |
Functions |
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) |
static __m128 | fcl::details::newtonraphson_rsqrt4 (const __m128 v) |
struct fcl::details::sse_meta_f4 | fcl::details::__attribute__ ((aligned(16))) |
| 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) |
void | setValue (float x, float y, float z, float w=1) |
void | setValue (float x) |
void | setValue (__m128 x) |
void | negate () |
sse_meta_f4 & | ubound (const sse_meta_f4 &u) |
sse_meta_f4 & | lbound (const sse_meta_f4 &l) |
void * | operator new[] (size_t n) |
void | operator delete[] (void *x) |
float | operator[] (size_t i) const |
sse_meta_f4 | operator+ (const sse_meta_f4 &other) const |
sse_meta_f4 | operator- (const sse_meta_f4 &other) const |
sse_meta_f4 | operator* (const sse_meta_f4 &other) const |
sse_meta_f4 | operator/ (const sse_meta_f4 &other) const |
sse_meta_f4 & | operator+= (const sse_meta_f4 &other) |
sse_meta_f4 & | operator-= (const sse_meta_f4 &other) |
sse_meta_f4 & | operator*= (const sse_meta_f4 &other) |
sse_meta_f4 & | operator/= (const sse_meta_f4 &other) |
sse_meta_f4 | operator+ (float t) const |
sse_meta_f4 | operator- (float t) const |
sse_meta_f4 | operator* (float t) const |
sse_meta_f4 | operator/ (float t) const |
sse_meta_f4 & | operator+= (float t) |
sse_meta_f4 & | operator-= (float t) |
sse_meta_f4 & | operator*= (float t) |
sse_meta_f4 & | operator/= (float t) |
sse_meta_f4 | operator- () const |
| 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) |
void | setValue (double x, double y, double z, double w=0) |
void | setValue (double x) |
void | setValue (__m128d x, __m128d y) |
sse_meta_d4 & | ubound (const sse_meta_d4 &u) |
sse_meta_d4 & | lbound (const sse_meta_d4 &l) |
sse_meta_d4 | operator+ (const sse_meta_d4 &other) const |
sse_meta_d4 | operator- (const sse_meta_d4 &other) const |
sse_meta_d4 | operator* (const sse_meta_d4 &other) const |
sse_meta_d4 | operator/ (const sse_meta_d4 &other) const |
sse_meta_d4 & | operator+= (const sse_meta_d4 &other) |
sse_meta_d4 & | operator-= (const sse_meta_d4 &other) |
sse_meta_d4 & | operator*= (const sse_meta_d4 &other) |
sse_meta_d4 & | operator/= (const sse_meta_d4 &other) |
sse_meta_d4 | operator+ (double t) const |
sse_meta_d4 | operator- (double t) const |
sse_meta_d4 | operator* (double t) const |
sse_meta_d4 | operator/ (double t) const |
sse_meta_d4 & | operator+= (double t) |
sse_meta_d4 & | operator-= (double t) |
sse_meta_d4 & | operator*= (double t) |
sse_meta_d4 & | operator/= (double t) |
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 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) |
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::abs (const sse_meta_f4 &x) |
static sse_meta_d4 | fcl::details::abs (const sse_meta_d4 &x) |
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 sse_meta_f4 | fcl::details::normalize3 (const sse_meta_f4 &x) |
static sse_meta_f4 | fcl::details::normalize3_approx (const sse_meta_f4 &x) |
static void | fcl::details::transpose (__m128 c0, __m128 c1, __m128 c2, __m128 *r0, __m128 *r1, __m128 *r2) |
static void | fcl::details::inverse (__m128 c0, __m128 c1, __m128 c2, __m128 *i0, __m128 *i1, __m128 *i2) |
static sse_meta_f12 | fcl::details::abs (const sse_meta_f12 &mat) |
static sse_meta_f12 | fcl::details::transpose (const sse_meta_f12 &mat) |
static sse_meta_f12 | fcl::details::inverse (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 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::abs (const sse_meta_f16 &mat) |
static sse_meta_f16 | fcl::details::transpose (const sse_meta_f16 &mat) |
static sse_meta_f16 | fcl::details::inverse (const sse_meta_f16 &mat) |
Variables |
const __m128 | fcl::details::xmms_0 = {0.f, 0.f, 0.f, 0.f} |
const __m128d | fcl::details::xmmd_0 = {0, 0} |
union { |
float vs [4] |
__m128 v |
}; | |
union { |
double vs [4] |
__m128d v [2] |
}; | |