Bullet Collision Detection & Physics Library
Namespaces | Macros | Functions
sse/vec_aos.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 Vectormath
 
 Vectormath::Aos
 

Macros

#define _VECTORMATH_PERM_X   0x00010203
 
#define _VECTORMATH_PERM_Y   0x04050607
 
#define _VECTORMATH_PERM_Z   0x08090a0b
 
#define _VECTORMATH_PERM_W   0x0c0d0e0f
 
#define _VECTORMATH_PERM_A   0x10111213
 
#define _VECTORMATH_PERM_B   0x14151617
 
#define _VECTORMATH_PERM_C   0x18191a1b
 
#define _VECTORMATH_PERM_D   0x1c1d1e1f
 
#define _VECTORMATH_PERM_XYZA   (vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_X, _VECTORMATH_PERM_Y, _VECTORMATH_PERM_Z, _VECTORMATH_PERM_A }
 
#define _VECTORMATH_PERM_ZXYW   (vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_Z, _VECTORMATH_PERM_X, _VECTORMATH_PERM_Y, _VECTORMATH_PERM_W }
 
#define _VECTORMATH_PERM_YZXW   (vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_Y, _VECTORMATH_PERM_Z, _VECTORMATH_PERM_X, _VECTORMATH_PERM_W }
 
#define _VECTORMATH_PERM_YZAB   (vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_Y, _VECTORMATH_PERM_Z, _VECTORMATH_PERM_A, _VECTORMATH_PERM_B }
 
#define _VECTORMATH_PERM_ZABC   (vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_Z, _VECTORMATH_PERM_A, _VECTORMATH_PERM_B, _VECTORMATH_PERM_C }
 
#define _VECTORMATH_PERM_XYAW   (vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_X, _VECTORMATH_PERM_Y, _VECTORMATH_PERM_A, _VECTORMATH_PERM_W }
 
#define _VECTORMATH_PERM_XAZW   (vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_X, _VECTORMATH_PERM_A, _VECTORMATH_PERM_Z, _VECTORMATH_PERM_W }
 
#define _VECTORMATH_MASK_0xF000   (vec_uint4){ 0xffffffff, 0, 0, 0 }
 
#define _VECTORMATH_MASK_0x0F00   (vec_uint4){ 0, 0xffffffff, 0, 0 }
 
#define _VECTORMATH_MASK_0x00F0   (vec_uint4){ 0, 0, 0xffffffff, 0 }
 
#define _VECTORMATH_MASK_0x000F   (vec_uint4){ 0, 0, 0, 0xffffffff }
 
#define _VECTORMATH_UNIT_1000   _mm_setr_ps(1.0f,0.0f,0.0f,0.0f)
 
#define _VECTORMATH_UNIT_0100   _mm_setr_ps(0.0f,1.0f,0.0f,0.0f)
 
#define _VECTORMATH_UNIT_0010   _mm_setr_ps(0.0f,0.0f,1.0f,0.0f)
 
#define _VECTORMATH_UNIT_0001   _mm_setr_ps(0.0f,0.0f,0.0f,1.0f)
 
#define _VECTORMATH_SLERP_TOL   0.999f
 
#define _VECTORMATH_INTERNAL_FUNCTIONS
 
#define _vmath_shufps(a, b, immx, immy, immz, immw)   _mm_shuffle_ps(a, b, _MM_SHUFFLE(immw, immz, immy, immx))
 
#define _vmathVfSetElement(vec, scalar, slot)   ((float *)&(vec))[slot] = scalar
 

Functions

static __m128 _vmathVfDot3 (__m128 vec0, __m128 vec1)
 
static __m128 _vmathVfDot4 (__m128 vec0, __m128 vec1)
 
static __m128 _vmathVfCross (__m128 vec0, __m128 vec1)
 
static __m128 _vmathVfInsert (__m128 dst, __m128 src, int slot)
 
static __m128 _vmathVfSplatScalar (float scalar)
 
const Vector3 Vectormath::Aos::lerp (float t, const Vector3 &vec0, const Vector3 &vec1)
 
const Vector3 Vectormath::Aos::lerp (const floatInVec &t, const Vector3 &vec0, const Vector3 &vec1)
 
const Vector3 Vectormath::Aos::slerp (float t, const Vector3 &unitVec0, const Vector3 &unitVec1)
 
const Vector3 Vectormath::Aos::slerp (const floatInVec &t, const Vector3 &unitVec0, const Vector3 &unitVec1)
 
void Vectormath::Aos::loadXYZ (Point3 &pnt, const float *fptr)
 
void Vectormath::Aos::loadXYZ (Vector3 &vec, const float *fptr)
 
void Vectormath::Aos::storeXYZ (const Vector3 &vec, __m128 *quad)
 
void Vectormath::Aos::storeXYZ (const Point3 &pnt, float *fptr)
 
void Vectormath::Aos::storeXYZ (const Vector3 &vec, float *fptr)
 
void Vectormath::Aos::loadXYZArray (Vector3 &vec0, Vector3 &vec1, Vector3 &vec2, Vector3 &vec3, const __m128 *threeQuads)
 
void Vectormath::Aos::storeXYZArray (const Vector3 &vec0, const Vector3 &vec1, const Vector3 &vec2, const Vector3 &vec3, __m128 *threeQuads)
 
const Vector3 Vectormath::Aos::operator* (float scalar, const Vector3 &vec)
 
const Vector3 Vectormath::Aos::operator* (const floatInVec &scalar, const Vector3 &vec)
 
const Vector3 Vectormath::Aos::mulPerElem (const Vector3 &vec0, const Vector3 &vec1)
 
const Vector3 Vectormath::Aos::divPerElem (const Vector3 &vec0, const Vector3 &vec1)
 
const Vector3 Vectormath::Aos::recipPerElem (const Vector3 &vec)
 
const Vector3 Vectormath::Aos::absPerElem (const Vector3 &vec)
 
const Vector3 Vectormath::Aos::copySignPerElem (const Vector3 &vec0, const Vector3 &vec1)
 
const Vector3 Vectormath::Aos::maxPerElem (const Vector3 &vec0, const Vector3 &vec1)
 
float Vectormath::Aos::maxElem (const Vector3 &vec)
 
const Vector3 Vectormath::Aos::minPerElem (const Vector3 &vec0, const Vector3 &vec1)
 
float Vectormath::Aos::minElem (const Vector3 &vec)
 
float Vectormath::Aos::sum (const Vector3 &vec)
 
float Vectormath::Aos::dot (const Vector3 &vec0, const Vector3 &vec1)
 
float Vectormath::Aos::lengthSqr (const Vector3 &vec)
 
float Vectormath::Aos::length (const Vector3 &vec)
 
const Vector3 Vectormath::Aos::normalizeApprox (const Vector3 &vec)
 
const Vector3 Vectormath::Aos::normalize (const Vector3 &vec)
 
const Vector3 Vectormath::Aos::cross (const Vector3 &vec0, const Vector3 &vec1)
 
const Vector3 Vectormath::Aos::select (const Vector3 &vec0, const Vector3 &vec1, bool select1)
 
const Vector4 Vectormath::Aos::select (const Vector4 &vec0, const Vector4 &vec1, const boolInVec &select1)
 
const Vector4 Vectormath::Aos::lerp (float t, const Vector4 &vec0, const Vector4 &vec1)
 
const Vector4 Vectormath::Aos::lerp (const floatInVec &t, const Vector4 &vec0, const Vector4 &vec1)
 
const Vector4 Vectormath::Aos::slerp (float t, const Vector4 &unitVec0, const Vector4 &unitVec1)
 
const Vector4 Vectormath::Aos::slerp (const floatInVec &t, const Vector4 &unitVec0, const Vector4 &unitVec1)
 
const Vector4 Vectormath::Aos::operator* (float scalar, const Vector4 &vec)
 
const Vector4 Vectormath::Aos::operator* (const floatInVec &scalar, const Vector4 &vec)
 
const Vector4 Vectormath::Aos::mulPerElem (const Vector4 &vec0, const Vector4 &vec1)
 
const Vector4 Vectormath::Aos::divPerElem (const Vector4 &vec0, const Vector4 &vec1)
 
const Vector4 Vectormath::Aos::recipPerElem (const Vector4 &vec)
 
const Vector4 Vectormath::Aos::absPerElem (const Vector4 &vec)
 
const Vector4 Vectormath::Aos::copySignPerElem (const Vector4 &vec0, const Vector4 &vec1)
 
const Vector4 Vectormath::Aos::maxPerElem (const Vector4 &vec0, const Vector4 &vec1)
 
float Vectormath::Aos::maxElem (const Vector4 &vec)
 
const Vector4 Vectormath::Aos::minPerElem (const Vector4 &vec0, const Vector4 &vec1)
 
float Vectormath::Aos::minElem (const Vector4 &vec)
 
float Vectormath::Aos::sum (const Vector4 &vec)
 
float Vectormath::Aos::dot (const Vector4 &vec0, const Vector4 &vec1)
 
float Vectormath::Aos::lengthSqr (const Vector4 &vec)
 
float Vectormath::Aos::length (const Vector4 &vec)
 
const Vector4 Vectormath::Aos::normalizeApprox (const Vector4 &vec)
 
const Vector4 Vectormath::Aos::normalize (const Vector4 &vec)
 
const Vector4 Vectormath::Aos::select (const Vector4 &vec0, const Vector4 &vec1, bool select1)
 
const Point3 Vectormath::Aos::lerp (float t, const Point3 &pnt0, const Point3 &pnt1)
 
const Point3 Vectormath::Aos::lerp (const floatInVec &t, const Point3 &pnt0, const Point3 &pnt1)
 
void Vectormath::Aos::storeXYZ (const Point3 &pnt, __m128 *quad)
 
void Vectormath::Aos::loadXYZArray (Point3 &pnt0, Point3 &pnt1, Point3 &pnt2, Point3 &pnt3, const __m128 *threeQuads)
 
void Vectormath::Aos::storeXYZArray (const Point3 &pnt0, const Point3 &pnt1, const Point3 &pnt2, const Point3 &pnt3, __m128 *threeQuads)
 
const Point3 Vectormath::Aos::mulPerElem (const Point3 &pnt0, const Point3 &pnt1)
 
const Point3 Vectormath::Aos::divPerElem (const Point3 &pnt0, const Point3 &pnt1)
 
const Point3 Vectormath::Aos::recipPerElem (const Point3 &pnt)
 
const Point3 Vectormath::Aos::absPerElem (const Point3 &pnt)
 
const Point3 Vectormath::Aos::copySignPerElem (const Point3 &pnt0, const Point3 &pnt1)
 
const Point3 Vectormath::Aos::maxPerElem (const Point3 &pnt0, const Point3 &pnt1)
 
float Vectormath::Aos::maxElem (const Point3 &pnt)
 
const Point3 Vectormath::Aos::minPerElem (const Point3 &pnt0, const Point3 &pnt1)
 
float Vectormath::Aos::minElem (const Point3 &pnt)
 
float Vectormath::Aos::sum (const Point3 &pnt)
 
const Point3 Vectormath::Aos::scale (const Point3 &pnt, float scaleVal)
 
const Point3 Vectormath::Aos::scale (const Point3 &pnt, const floatInVec &scaleVal)
 
const Point3 Vectormath::Aos::scale (const Point3 &pnt, const Vector3 &scaleVec)
 
float Vectormath::Aos::projection (const Point3 &pnt, const Vector3 &unitVec)
 
float Vectormath::Aos::distSqrFromOrigin (const Point3 &pnt)
 
float Vectormath::Aos::distFromOrigin (const Point3 &pnt)
 
float Vectormath::Aos::distSqr (const Point3 &pnt0, const Point3 &pnt1)
 
float Vectormath::Aos::dist (const Point3 &pnt0, const Point3 &pnt1)
 
const Point3 Vectormath::Aos::select (const Point3 &pnt0, const Point3 &pnt1, bool select1)
 
const Point3 Vectormath::Aos::select (const Point3 &pnt0, const Point3 &pnt1, const boolInVec &select1)
 

Macro Definition Documentation

#define _VECTORMATH_INTERNAL_FUNCTIONS

Definition at line 67 of file sse/vec_aos.h.

#define _VECTORMATH_MASK_0x000F   (vec_uint4){ 0, 0, 0, 0xffffffff }

Definition at line 55 of file sse/vec_aos.h.

#define _VECTORMATH_MASK_0x00F0   (vec_uint4){ 0, 0, 0xffffffff, 0 }

Definition at line 54 of file sse/vec_aos.h.

#define _VECTORMATH_MASK_0x0F00   (vec_uint4){ 0, 0xffffffff, 0, 0 }

Definition at line 53 of file sse/vec_aos.h.

#define _VECTORMATH_MASK_0xF000   (vec_uint4){ 0xffffffff, 0, 0, 0 }

Definition at line 52 of file sse/vec_aos.h.

#define _VECTORMATH_PERM_A   0x10111213

Definition at line 41 of file sse/vec_aos.h.

#define _VECTORMATH_PERM_B   0x14151617

Definition at line 42 of file sse/vec_aos.h.

#define _VECTORMATH_PERM_C   0x18191a1b

Definition at line 43 of file sse/vec_aos.h.

#define _VECTORMATH_PERM_D   0x1c1d1e1f

Definition at line 44 of file sse/vec_aos.h.

#define _VECTORMATH_PERM_W   0x0c0d0e0f

Definition at line 40 of file sse/vec_aos.h.

#define _VECTORMATH_PERM_X   0x00010203

Definition at line 37 of file sse/vec_aos.h.

Definition at line 51 of file sse/vec_aos.h.

Definition at line 50 of file sse/vec_aos.h.

Definition at line 45 of file sse/vec_aos.h.

#define _VECTORMATH_PERM_Y   0x04050607

Definition at line 38 of file sse/vec_aos.h.

Definition at line 48 of file sse/vec_aos.h.

Definition at line 47 of file sse/vec_aos.h.

#define _VECTORMATH_PERM_Z   0x08090a0b

Definition at line 39 of file sse/vec_aos.h.

Definition at line 49 of file sse/vec_aos.h.

Definition at line 46 of file sse/vec_aos.h.

#define _VECTORMATH_SLERP_TOL   0.999f

Definition at line 60 of file sse/vec_aos.h.

#define _VECTORMATH_UNIT_0001   _mm_setr_ps(0.0f,0.0f,0.0f,1.0f)

Definition at line 59 of file sse/vec_aos.h.

#define _VECTORMATH_UNIT_0010   _mm_setr_ps(0.0f,0.0f,1.0f,0.0f)

Definition at line 58 of file sse/vec_aos.h.

#define _VECTORMATH_UNIT_0100   _mm_setr_ps(0.0f,1.0f,0.0f,0.0f)

Definition at line 57 of file sse/vec_aos.h.

#define _VECTORMATH_UNIT_1000   _mm_setr_ps(1.0f,0.0f,0.0f,0.0f)

Definition at line 56 of file sse/vec_aos.h.

#define _vmath_shufps (   a,
  b,
  immx,
  immy,
  immz,
  immw 
)    _mm_shuffle_ps(a, b, _MM_SHUFFLE(immw, immz, immy, immx))

Definition at line 69 of file sse/vec_aos.h.

#define _vmathVfSetElement (   vec,
  scalar,
  slot 
)    ((float *)&(vec))[slot] = scalar

Definition at line 153 of file sse/vec_aos.h.

Function Documentation

static __m128 _vmathVfCross ( __m128  vec0,
__m128  vec1 
)
inlinestatic

Definition at line 84 of file sse/vec_aos.h.

static __m128 _vmathVfDot3 ( __m128  vec0,
__m128  vec1 
)
inlinestatic

Definition at line 70 of file sse/vec_aos.h.

static __m128 _vmathVfDot4 ( __m128  vec0,
__m128  vec1 
)
inlinestatic

Definition at line 76 of file sse/vec_aos.h.

static __m128 _vmathVfInsert ( __m128  dst,
__m128  src,
int  slot 
)
inlinestatic

Definition at line 143 of file sse/vec_aos.h.

static __m128 _vmathVfSplatScalar ( float  scalar)
inlinestatic

Definition at line 155 of file sse/vec_aos.h.