|
#define | Vector3Ref Vector3& |
|
#define | QuatRef Quat& |
|
#define | Matrix3Ref Matrix3& |
|
#define | VM_ATTRIBUTE_ALIGNED_CLASS16(a) a __attribute__ ((aligned (16))) |
|
#define | VM_ATTRIBUTE_ALIGN16 __attribute__ ((aligned (16))) |
|
#define | VECTORMATH_FORCE_INLINE inline __attribute__ ((always_inline)) |
|
#define | vec_splat(x, e) _mm_shuffle_ps(x, x, _MM_SHUFFLE(e,e,e,e)) |
|
#define | _mm_ror_ps(vec, i) (((i)%4) ? (_mm_shuffle_ps(vec,vec, _MM_SHUFFLE((unsigned char)(i+3)%4,(unsigned char)(i+2)%4,(unsigned char)(i+1)%4,(unsigned char)(i+0)%4))) : (vec)) |
|
#define | _mm_rol_ps(vec, i) (((i)%4) ? (_mm_shuffle_ps(vec,vec, _MM_SHUFFLE((unsigned char)(7-i)%4,(unsigned char)(6-i)%4,(unsigned char)(5-i)%4,(unsigned char)(4-i)%4))) : (vec)) |
|
#define | vec_sld(vec, vec2, x) _mm_ror_ps(vec, ((x)/4)) |
|
#define | _mm_abs_ps(vec) _mm_andnot_ps(_MASKSIGN_,vec) |
|
#define | _mm_neg_ps(vec) _mm_xor_ps(_MASKSIGN_,vec) |
|
#define | vec_madd(a, b, c) _mm_add_ps(c, _mm_mul_ps(a, b) ) |
|
#define | vec_nmsub(a, b, c) _mm_sub_ps( c, _mm_mul_ps( a, b ) ) |
|
#define | vec_sub(a, b) _mm_sub_ps( a, b ) |
|
#define | vec_add(a, b) _mm_add_ps( a, b ) |
|
#define | vec_mul(a, b) _mm_mul_ps( a, b ) |
|
#define | vec_xor(a, b) _mm_xor_ps( a, b ) |
|
#define | vec_and(a, b) _mm_and_ps( a, b ) |
|
#define | vec_cmpeq(a, b) _mm_cmpeq_ps( a, b ) |
|
#define | vec_cmpgt(a, b) _mm_cmpgt_ps( a, b ) |
|
#define | vec_mergeh(a, b) _mm_unpacklo_ps( a, b ) |
|
#define | vec_mergel(a, b) _mm_unpackhi_ps( a, b ) |
|
#define | vec_andc(a, b) _mm_andnot_ps( b, a ) |
|
#define | sqrtf4(x) _mm_sqrt_ps( x ) |
|
#define | rsqrtf4(x) _mm_rsqrt_ps( x ) |
|
#define | recipf4(x) _mm_rcp_ps( x ) |
|
#define | negatef4(x) _mm_sub_ps( _mm_setzero_ps(), x ) |
|
#define | _half4 _mm_setr_ps(.5f,.5f,.5f,.5f) |
|
#define | _three _mm_setr_ps(3.f,3.f,3.f,3.f) |
|
#define | _SINCOS_CC0 -0.0013602249f |
|
#define | _SINCOS_CC1 0.0416566950f |
|
#define | _SINCOS_CC2 -0.4999990225f |
|
#define | _SINCOS_SC0 -0.0001950727f |
|
#define | _SINCOS_SC1 0.0083320758f |
|
#define | _SINCOS_SC2 -0.1666665247f |
|
#define | _SINCOS_KC1 1.57079625129f |
|
#define | _SINCOS_KC2 7.54978995489e-8f |
|
|
static __m128 | vec_sel (__m128 a, __m128 b, __m128 mask) |
|
static __m128 | vec_sel (__m128 a, __m128 b, const unsigned int *_mask) |
|
static __m128 | vec_sel (__m128 a, __m128 b, unsigned int _mask) |
|
static __m128 | toM128 (unsigned int x) |
|
static __m128 | fabsf4 (__m128 x) |
|
static __m128 | vec_cts (__m128 x, int a) |
|
static __m128 | vec_ctf (__m128 x, int a) |
|
static __m128 | newtonrapson_rsqrt4 (const __m128 v) |
|
static __m128 | acosf4 (__m128 x) |
|
static __m128 | sinf4 (vec_float4 x) |
|
static void | sincosf4 (vec_float4 x, vec_float4 *s, vec_float4 *c) |
|
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) |
|
const Vector3 | Vectormath::Aos::minPerElem (const Vector3 &vec0, const Vector3 &vec1) |
|
float | Vectormath::Aos::maxElem (const Vector3 &vec) |
|
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::normalize (const Vector3 &vec) |
|
const Vector3 | Vectormath::Aos::cross (const Vector3 &vec0, const Vector3 &vec1) |
|
const Matrix3 | Vectormath::Aos::outer (const Vector3 &tfrm0, const Vector3 &tfrm1) |
|
const Vector3 | Vectormath::Aos::rowMul (const Vector3 &vec, const Matrix3 &mat) |
|
const Matrix3 | Vectormath::Aos::crossMatrix (const Vector3 &vec) |
|
const Matrix3 | Vectormath::Aos::crossMatrixMul (const Vector3 &vec, const Matrix3 &mat) |
|
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) |
|
const Vector3 | Vectormath::Aos::select (const Vector3 &vec0, const Vector3 &vec1, bool select1) |
|
const Vector3 | Vectormath::Aos::select (const Vector3 &vec0, const Vector3 &vec1, const boolInVec &select1) |
|
void | Vectormath::Aos::storeXYZ (const Vector3 &vec, __m128 *quad) |
|
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) |
|
void | Vectormath::Aos::storeHalfFloats (const Vector3 &vec0, const Vector3 &vec1, const Vector3 &vec2, const Vector3 &vec3, const Vector3 &vec4, const Vector3 &vec5, const Vector3 &vec6, const Vector3 &vec7, vec_ushort8 *threeQuads) |
|
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) |
|
const Vector4 | Vectormath::Aos::minPerElem (const Vector4 &vec0, const Vector4 &vec1) |
|
float | Vectormath::Aos::maxElem (const Vector4 &vec) |
|
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::normalize (const Vector4 &vec) |
|
const Matrix4 | Vectormath::Aos::outer (const Vector4 &tfrm0, const Vector4 &tfrm1) |
|
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::select (const Vector4 &vec0, const Vector4 &vec1, bool select1) |
|
const Vector4 | Vectormath::Aos::select (const Vector4 &vec0, const Vector4 &vec1, const boolInVec &select1) |
|
void | Vectormath::Aos::storeHalfFloats (const Vector4 &vec0, const Vector4 &vec1, const Vector4 &vec2, const Vector4 &vec3, vec_ushort8 *twoQuads) |
|
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) |
|
const Point3 | Vectormath::Aos::minPerElem (const Point3 &pnt0, const Point3 &pnt1) |
|
float | Vectormath::Aos::maxElem (const Point3 &pnt) |
|
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::lerp (float t, const Point3 &pnt0, const Point3 &pnt1) |
|
const Point3 | Vectormath::Aos::lerp (const floatInVec &t, 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) |
|
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) |
|
void | Vectormath::Aos::storeHalfFloats (const Point3 &pnt0, const Point3 &pnt1, const Point3 &pnt2, const Point3 &pnt3, const Point3 &pnt4, const Point3 &pnt5, const Point3 &pnt6, const Point3 &pnt7, vec_ushort8 *threeQuads) |
|
const Quat | Vectormath::Aos::operator* (float scalar, const Quat &quat) |
|
const Quat | Vectormath::Aos::operator* (const floatInVec &scalar, const Quat &quat) |
|
const Quat | Vectormath::Aos::conj (const Quat &quat) |
|
const Vector3 | Vectormath::Aos::rotate (const Quat &quat, const Vector3 &vec) |
|
float | Vectormath::Aos::dot (const Quat &quat0, const Quat &quat1) |
|
float | Vectormath::Aos::norm (const Quat &quat) |
|
float | Vectormath::Aos::length (const Quat &quat) |
|
const Quat | Vectormath::Aos::normalize (const Quat &quat) |
|
const Quat | Vectormath::Aos::lerp (float t, const Quat &quat0, const Quat &quat1) |
|
const Quat | Vectormath::Aos::lerp (const floatInVec &t, const Quat &quat0, const Quat &quat1) |
|
const Quat | Vectormath::Aos::slerp (float t, const Quat &unitQuat0, const Quat &unitQuat1) |
|
const Quat | Vectormath::Aos::slerp (const floatInVec &t, const Quat &unitQuat0, const Quat &unitQuat1) |
|
const Quat | Vectormath::Aos::squad (float t, const Quat &unitQuat0, const Quat &unitQuat1, const Quat &unitQuat2, const Quat &unitQuat3) |
|
const Quat | Vectormath::Aos::squad (const floatInVec &t, const Quat &unitQuat0, const Quat &unitQuat1, const Quat &unitQuat2, const Quat &unitQuat3) |
|
const Quat | Vectormath::Aos::select (const Quat &quat0, const Quat &quat1, bool select1) |
|
const Quat | Vectormath::Aos::select (const Quat &quat0, const Quat &quat1, const boolInVec &select1) |
|
const Matrix3 | Vectormath::Aos::operator* (float scalar, const Matrix3 &mat) |
|
const Matrix3 | Vectormath::Aos::operator* (const floatInVec &scalar, const Matrix3 &mat) |
|
const Matrix3 | Vectormath::Aos::appendScale (const Matrix3 &mat, const Vector3 &scaleVec) |
|
const Matrix3 | Vectormath::Aos::prependScale (const Vector3 &scaleVec, const Matrix3 &mat) |
|
const Matrix3 | Vectormath::Aos::mulPerElem (const Matrix3 &mat0, const Matrix3 &mat1) |
|
const Matrix3 | Vectormath::Aos::absPerElem (const Matrix3 &mat) |
|
const Matrix3 | Vectormath::Aos::transpose (const Matrix3 &mat) |
|
const Matrix3 | Vectormath::Aos::inverse (const Matrix3 &mat) |
|
float | Vectormath::Aos::determinant (const Matrix3 &mat) |
|
const Matrix3 | Vectormath::Aos::select (const Matrix3 &mat0, const Matrix3 &mat1, bool select1) |
|
const Matrix3 | Vectormath::Aos::select (const Matrix3 &mat0, const Matrix3 &mat1, const boolInVec &select1) |
|
const Matrix4 | Vectormath::Aos::operator* (float scalar, const Matrix4 &mat) |
|
const Matrix4 | Vectormath::Aos::operator* (const floatInVec &scalar, const Matrix4 &mat) |
|
const Matrix4 | Vectormath::Aos::appendScale (const Matrix4 &mat, const Vector3 &scaleVec) |
|
const Matrix4 | Vectormath::Aos::prependScale (const Vector3 &scaleVec, const Matrix4 &mat) |
|
const Matrix4 | Vectormath::Aos::mulPerElem (const Matrix4 &mat0, const Matrix4 &mat1) |
|
const Matrix4 | Vectormath::Aos::absPerElem (const Matrix4 &mat) |
|
const Matrix4 | Vectormath::Aos::transpose (const Matrix4 &mat) |
|
const Matrix4 | Vectormath::Aos::inverse (const Matrix4 &mat) |
|
const Matrix4 | Vectormath::Aos::affineInverse (const Matrix4 &mat) |
|
const Matrix4 | Vectormath::Aos::orthoInverse (const Matrix4 &mat) |
|
float | Vectormath::Aos::determinant (const Matrix4 &mat) |
|
const Matrix4 | Vectormath::Aos::select (const Matrix4 &mat0, const Matrix4 &mat1, bool select1) |
|
const Matrix4 | Vectormath::Aos::select (const Matrix4 &mat0, const Matrix4 &mat1, const boolInVec &select1) |
|
const Transform3 | Vectormath::Aos::appendScale (const Transform3 &tfrm, const Vector3 &scaleVec) |
|
const Transform3 | Vectormath::Aos::prependScale (const Vector3 &scaleVec, const Transform3 &tfrm) |
|
const Transform3 | Vectormath::Aos::mulPerElem (const Transform3 &tfrm0, const Transform3 &tfrm1) |
|
const Transform3 | Vectormath::Aos::absPerElem (const Transform3 &tfrm) |
|
const Transform3 | Vectormath::Aos::inverse (const Transform3 &tfrm) |
|
const Transform3 | Vectormath::Aos::orthoInverse (const Transform3 &tfrm) |
|
const Transform3 | Vectormath::Aos::select (const Transform3 &tfrm0, const Transform3 &tfrm1, bool select1) |
|
const Transform3 | Vectormath::Aos::select (const Transform3 &tfrm0, const Transform3 &tfrm1, const boolInVec &select1) |
|