16 #ifndef BT_SIMD_QUADWORD_H 17 #define BT_SIMD_QUADWORD_H 26 #if defined (__CELLOS_LV2) && defined (__SPU__) 41 #if defined (__SPU__) && defined (__CELLOS_LV2__) 47 vec_float4 get128()
const 52 #else //__CELLOS_LV2__ __SPU__ 54 #if defined(BT_USE_SSE) || defined(BT_USE_NEON) 72 #endif //__CELLOS_LV2__ __SPU__ 76 #if (defined(BT_USE_SSE_IN_API) && defined(BT_USE_SSE)) || defined(BT_USE_NEON) 87 mVec128 = rhs.mVec128;
133 return (0xf == _mm_movemask_ps((__m128)_mm_cmpeq_ps(mVec128, other.mVec128)));
135 return ((m_floats[3]==other.
m_floats[3]) &&
144 return !(*
this == other);
193 m_floats[0] = _x, m_floats[1] = _y, m_floats[2] = _z, m_floats[3] = 0.0f;
204 m_floats[0] = _x, m_floats[1] = _y, m_floats[2] = _z, m_floats[3] = _w;
213 mVec128 = _mm_max_ps(mVec128, other.mVec128);
214 #elif defined(BT_USE_NEON) 215 mVec128 = vmaxq_f32(mVec128, other.mVec128);
229 mVec128 = _mm_min_ps(mVec128, other.mVec128);
230 #elif defined(BT_USE_NEON) 231 mVec128 = vminq_f32(mVec128, other.mVec128);
244 #endif //BT_SIMD_QUADWORD_H void setMin(const btQuadWord &other)
Set each element to the min of the current values and the values of another btQuadWord.
btQuadWord(const btScalar &_x, const btScalar &_y, const btScalar &_z, const btScalar &_w)
Initializing constructor.
const btScalar & z() const
Return the z value.
#define SIMD_FORCE_INLINE
const btScalar & y() const
Return the y value.
const btScalar & getY() const
Return the y value.
const btScalar & getX() const
Return the x value.
void setY(btScalar _y)
Set the y value.
btQuadWord()
No initialization constructor.
const btScalar & w() const
Return the w value.
void btSetMin(T &a, const T &b)
void setX(btScalar _x)
Set the x value.
void setValue(const btScalar &_x, const btScalar &_y, const btScalar &_z)
Set x,y,z and zero w.
The btQuadWord class is base class for btVector3 and btQuaternion.
void setValue(const btScalar &_x, const btScalar &_y, const btScalar &_z, const btScalar &_w)
Set the values.
void btSetMax(T &a, const T &b)
#define ATTRIBUTE_ALIGNED16(a)
void setMax(const btQuadWord &other)
Set each element to the max of the current values and the values of another btQuadWord.
btQuadWord(const btScalar &_x, const btScalar &_y, const btScalar &_z)
Three argument constructor (zeros w)
bool operator!=(const btQuadWord &other) const
const btScalar & x() const
Return the x value.
bool operator==(const btQuadWord &other) const
void setZ(btScalar _z)
Set the z value.
const btScalar & getZ() const
Return the z value.
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
void setW(btScalar _w)
Set the w value.