![]() |
XII Release 0.1.0
|
A 4-component SIMD vector class. More...
#include <SimdVec4f.h>
Public Member Functions | |
| XII_DECLARE_POD_TYPE () | |
| xiiSimdVec4f (float fXyzw) | |
| xiiSimdVec4f (const xiiSimdFloat &fXyzw) | |
| xiiSimdVec4f (float x, float y, float z, float w=1.0f) | |
| xiiSimdVec4f (xiiInternal::QuadFloat v) | |
| void | Set (float fXyzw) |
| void | Set (float x, float y, float z, float w) |
| void | SetX (const xiiSimdFloat &f) |
| void | SetY (const xiiSimdFloat &f) |
| void | SetZ (const xiiSimdFloat &f) |
| void | SetW (const xiiSimdFloat &f) |
| void | SetZero () |
| template<xiiInt32 N> | |
| void | Load (const float *pFloats) |
| template<xiiInt32 N> | |
| void | Store (float *pFloats) const |
| template<xiiMathFloatBits::Enum acc = xiiMathFloatBits::FULL> | |
| xiiSimdVec4f | GetReciprocal () const |
| template<xiiMathFloatBits::Enum acc = xiiMathFloatBits::FULL> | |
| xiiSimdVec4f | GetSqrt () const |
| template<xiiMathFloatBits::Enum acc = xiiMathFloatBits::FULL> | |
| xiiSimdVec4f | GetInvSqrt () const |
| template<xiiInt32 N, xiiMathFloatBits::Enum acc = xiiMathFloatBits::FULL> | |
| xiiSimdFloat | GetLength () const |
| template<xiiInt32 N, xiiMathFloatBits::Enum acc = xiiMathFloatBits::FULL> | |
| xiiSimdFloat | GetInvLength () const |
| template<xiiInt32 N> | |
| xiiSimdFloat | GetLengthSquared () const |
| template<xiiInt32 N, xiiMathFloatBits::Enum acc = xiiMathFloatBits::FULL> | |
| xiiSimdFloat | GetLengthAndNormalize () |
| template<xiiInt32 N, xiiMathFloatBits::Enum acc = xiiMathFloatBits::FULL> | |
| xiiSimdVec4f | GetNormalized () const |
| template<xiiInt32 N, xiiMathFloatBits::Enum acc = xiiMathFloatBits::FULL> | |
| void | Normalize () |
| template<xiiInt32 N, xiiMathFloatBits::Enum acc = xiiMathFloatBits::FULL> | |
| void | NormalizeIfNotZero (const xiiSimdFloat &fEpsilon=xiiMath::SmallEpsilon< float >()) |
| template<xiiInt32 N> | |
| bool | IsZero () const |
| template<xiiInt32 N> | |
| bool | IsZero (const xiiSimdFloat &fEpsilon) const |
| template<xiiInt32 N> | |
| bool | IsNormalized (const xiiSimdFloat &fEpsilon=xiiMath::HugeEpsilon< float >()) const |
| template<xiiInt32 N> | |
| bool | IsNaN () const |
| template<xiiInt32 N> | |
| bool | IsValid () const |
| template<xiiInt32 N> | |
| xiiSimdFloat | GetComponent () const |
| xiiSimdFloat | GetComponent (xiiInt32 i) const |
| xiiSimdFloat | x () const |
| xiiSimdFloat | y () const |
| xiiSimdFloat | z () const |
| xiiSimdFloat | w () const |
| template<xiiSwizzle::Enum s> | |
| xiiSimdVec4f | Get () const |
| template<xiiSwizzle::Enum s> | |
| xiiSimdVec4f | GetCombined (const xiiSimdVec4f &other) const |
| x = this[s0], y = this[s1], z = other[s2], w = other[s3] | |
| xiiSimdVec4f | operator- () const |
| xiiSimdVec4f | operator+ (const xiiSimdVec4f &v) const |
| xiiSimdVec4f | operator- (const xiiSimdVec4f &v) const |
| xiiSimdVec4f | operator* (const xiiSimdFloat &f) const |
| xiiSimdVec4f | operator/ (const xiiSimdFloat &f) const |
| xiiSimdVec4f | CompMul (const xiiSimdVec4f &v) const |
| template<xiiMathFloatBits::Enum acc = xiiMathFloatBits::FULL> | |
| xiiSimdVec4f | CompDiv (const xiiSimdVec4f &v) const |
| xiiSimdVec4f | CompMin (const xiiSimdVec4f &rhs) const |
| xiiSimdVec4f | CompMax (const xiiSimdVec4f &rhs) const |
| xiiSimdVec4f | Abs () const |
| xiiSimdVec4f | Round () const |
| xiiSimdVec4f | Floor () const |
| xiiSimdVec4f | Ceil () const |
| xiiSimdVec4f | Trunc () const |
| xiiSimdVec4f | Fraction () const |
| xiiSimdVec4f | FlipSign (const xiiSimdVec4b &vCmp) const |
| xiiSimdVec4f & | operator+= (const xiiSimdVec4f &v) |
| xiiSimdVec4f & | operator-= (const xiiSimdVec4f &v) |
| xiiSimdVec4f & | operator*= (const xiiSimdFloat &f) |
| xiiSimdVec4f & | operator/= (const xiiSimdFloat &f) |
| xiiSimdVec4b | IsEqual (const xiiSimdVec4f &rhs, const xiiSimdFloat &fEpsilon) const |
| xiiSimdVec4b | operator== (const xiiSimdVec4f &v) const |
| xiiSimdVec4b | operator!= (const xiiSimdVec4f &v) const |
| xiiSimdVec4b | operator<= (const xiiSimdVec4f &v) const |
| xiiSimdVec4b | operator< (const xiiSimdVec4f &v) const |
| xiiSimdVec4b | operator>= (const xiiSimdVec4f &v) const |
| xiiSimdVec4b | operator> (const xiiSimdVec4f &v) const |
| template<xiiInt32 N> | |
| xiiSimdFloat | HorizontalSum () const |
| template<xiiInt32 N> | |
| xiiSimdFloat | HorizontalMin () const |
| template<xiiInt32 N> | |
| xiiSimdFloat | HorizontalMax () const |
| template<xiiInt32 N> | |
| xiiSimdFloat | Dot (const xiiSimdVec4f &v) const |
| xiiSimdVec4f | CrossRH (const xiiSimdVec4f &v) const |
| 3D cross product, w is ignored. | |
| xiiSimdVec4f | GetOrthogonalVector () const |
| Generates an arbitrary vector such that Dot<3>(GetOrthogonalVector()) == 0. | |
| template<xiiInt32 N> | |
| XII_ALWAYS_INLINE void | Load (const float *pFloats) |
| template<xiiInt32 N> | |
| XII_ALWAYS_INLINE void | Store (float *pFloats) const |
| template<xiiMathFloatBits::Enum acc> | |
| XII_ALWAYS_INLINE xiiSimdVec4f | GetReciprocal () const |
| template<xiiMathFloatBits::Enum acc> | |
| XII_ALWAYS_INLINE xiiSimdVec4f | GetSqrt () const |
| template<xiiInt32 N> | |
| XII_ALWAYS_INLINE bool | IsZero () const |
| template<xiiInt32 N> | |
| XII_ALWAYS_INLINE bool | IsZero (const xiiSimdFloat &fEpsilon) const |
| template<xiiInt32 N> | |
| XII_ALWAYS_INLINE bool | IsNaN () const |
| template<xiiInt32 N> | |
| XII_ALWAYS_INLINE bool | IsValid () const |
| template<xiiInt32 N> | |
| XII_ALWAYS_INLINE xiiSimdFloat | GetComponent () const |
| template<xiiSwizzle::Enum s> | |
| XII_ALWAYS_INLINE xiiSimdVec4f | Get () const |
| template<xiiSwizzle::Enum s> | |
| XII_ALWAYS_INLINE xiiSimdVec4f | GetCombined (const xiiSimdVec4f &other) const |
| template<xiiMathFloatBits::Enum acc> | |
| XII_ALWAYS_INLINE xiiSimdVec4f | CompDiv (const xiiSimdVec4f &v) const |
| template<> | |
| XII_ALWAYS_INLINE xiiSimdFloat | HorizontalSum () const |
| template<> | |
| XII_ALWAYS_INLINE xiiSimdFloat | HorizontalSum () const |
| template<> | |
| XII_ALWAYS_INLINE xiiSimdFloat | HorizontalSum () const |
| template<> | |
| XII_ALWAYS_INLINE xiiSimdFloat | HorizontalMin () const |
| template<> | |
| XII_ALWAYS_INLINE xiiSimdFloat | HorizontalMin () const |
| template<> | |
| XII_ALWAYS_INLINE xiiSimdFloat | HorizontalMin () const |
| template<> | |
| XII_ALWAYS_INLINE xiiSimdFloat | HorizontalMax () const |
| template<> | |
| XII_ALWAYS_INLINE xiiSimdFloat | HorizontalMax () const |
| template<> | |
| XII_ALWAYS_INLINE xiiSimdFloat | HorizontalMax () const |
| template<xiiInt32 N> | |
| XII_ALWAYS_INLINE xiiSimdFloat | Dot (const xiiSimdVec4f &v) const |
| template<> | |
| XII_ALWAYS_INLINE void | Load (const float *pFloat) |
| template<> | |
| XII_ALWAYS_INLINE void | Load (const float *pFloat) |
| template<> | |
| XII_ALWAYS_INLINE void | Load (const float *pFloat) |
| template<> | |
| XII_ALWAYS_INLINE void | Load (const float *pFloat) |
| template<> | |
| XII_ALWAYS_INLINE void | Store (float *pFloat) const |
| template<> | |
| XII_ALWAYS_INLINE void | Store (float *pFloat) const |
| template<> | |
| XII_ALWAYS_INLINE void | Store (float *pFloat) const |
| template<> | |
| XII_ALWAYS_INLINE void | Store (float *pFloat) const |
| template<> | |
| XII_ALWAYS_INLINE xiiSimdFloat | HorizontalSum () const |
| template<> | |
| XII_ALWAYS_INLINE xiiSimdFloat | HorizontalSum () const |
| template<> | |
| XII_ALWAYS_INLINE xiiSimdFloat | HorizontalSum () const |
| template<> | |
| XII_ALWAYS_INLINE xiiSimdFloat | HorizontalMin () const |
| template<> | |
| XII_ALWAYS_INLINE xiiSimdFloat | HorizontalMin () const |
| template<> | |
| XII_ALWAYS_INLINE xiiSimdFloat | HorizontalMin () const |
| template<> | |
| XII_ALWAYS_INLINE xiiSimdFloat | HorizontalMax () const |
| template<> | |
| XII_ALWAYS_INLINE xiiSimdFloat | HorizontalMax () const |
| template<> | |
| XII_ALWAYS_INLINE xiiSimdFloat | HorizontalMax () const |
| template<> | |
| XII_ALWAYS_INLINE xiiSimdFloat | Dot (const xiiSimdVec4f &v) const |
| template<> | |
| XII_ALWAYS_INLINE xiiSimdFloat | Dot (const xiiSimdVec4f &v) const |
| template<> | |
| XII_ALWAYS_INLINE xiiSimdFloat | Dot (const xiiSimdVec4f &v) const |
| template<> | |
| XII_ALWAYS_INLINE xiiSimdFloat | Dot (const xiiSimdVec4f &v) const |
| template<xiiInt32 N, xiiMathFloatBits::Enum acc> | |
| XII_ALWAYS_INLINE xiiSimdFloat | GetLength () const |
| template<xiiInt32 N, xiiMathFloatBits::Enum acc> | |
| XII_ALWAYS_INLINE xiiSimdFloat | GetInvLength () const |
| template<xiiInt32 N> | |
| XII_ALWAYS_INLINE xiiSimdFloat | GetLengthSquared () const |
| template<xiiInt32 N, xiiMathFloatBits::Enum acc> | |
| XII_ALWAYS_INLINE xiiSimdFloat | GetLengthAndNormalize () |
| template<xiiInt32 N, xiiMathFloatBits::Enum acc> | |
| XII_ALWAYS_INLINE xiiSimdVec4f | GetNormalized () const |
| template<xiiInt32 N, xiiMathFloatBits::Enum acc> | |
| XII_ALWAYS_INLINE void | Normalize () |
| template<xiiInt32 N> | |
| XII_ALWAYS_INLINE bool | IsNormalized (const xiiSimdFloat &fEpsilon) const |
| template<> | |
| XII_ALWAYS_INLINE xiiSimdFloat | HorizontalSum () const |
| template<> | |
| XII_ALWAYS_INLINE xiiSimdFloat | HorizontalMin () const |
| template<> | |
| XII_ALWAYS_INLINE xiiSimdFloat | HorizontalMax () const |
| template<> | |
| XII_ALWAYS_INLINE void | Load (const float *pFloat) |
| template<> | |
| XII_ALWAYS_INLINE void | Load (const float *pFloat) |
| template<> | |
| XII_ALWAYS_INLINE void | Load (const float *pFloat) |
| template<> | |
| XII_ALWAYS_INLINE void | Load (const float *pFloat) |
| template<> | |
| XII_ALWAYS_INLINE void | Store (float *pFloat) const |
| template<> | |
| XII_ALWAYS_INLINE void | Store (float *pFloat) const |
| template<> | |
| XII_ALWAYS_INLINE void | Store (float *pFloat) const |
| template<> | |
| XII_ALWAYS_INLINE void | Store (float *pFloat) const |
| template<> | |
| XII_ALWAYS_INLINE xiiSimdFloat | HorizontalSum () const |
| template<> | |
| XII_ALWAYS_INLINE xiiSimdFloat | HorizontalSum () const |
| template<> | |
| XII_ALWAYS_INLINE xiiSimdFloat | HorizontalSum () const |
| template<> | |
| XII_ALWAYS_INLINE xiiSimdFloat | HorizontalMin () const |
| template<> | |
| XII_ALWAYS_INLINE xiiSimdFloat | HorizontalMin () const |
| template<> | |
| XII_ALWAYS_INLINE xiiSimdFloat | HorizontalMin () const |
| template<> | |
| XII_ALWAYS_INLINE xiiSimdFloat | HorizontalMax () const |
| template<> | |
| XII_ALWAYS_INLINE xiiSimdFloat | HorizontalMax () const |
| template<> | |
| XII_ALWAYS_INLINE xiiSimdFloat | HorizontalMax () const |
| template<> | |
| XII_ALWAYS_INLINE xiiSimdFloat | Dot (const xiiSimdVec4f &v) const |
| template<> | |
| XII_ALWAYS_INLINE xiiSimdFloat | Dot (const xiiSimdVec4f &v) const |
| template<> | |
| XII_ALWAYS_INLINE xiiSimdFloat | Dot (const xiiSimdVec4f &v) const |
| template<> | |
| XII_ALWAYS_INLINE xiiSimdFloat | Dot (const xiiSimdVec4f &v) const |
Static Public Member Functions | |
| static xiiSimdVec4f | MakeZero () |
| Creates a xiiSimdVec4f that is initialized to zero. | |
| static xiiSimdVec4f | MakeNaN () |
| Creates a xiiSimdVec4f that is initialized to Not-A-Number (NaN). | |
| static xiiSimdVec4f | Select (const xiiSimdVec4b &vCmp, const xiiSimdVec4f &vTrue, const xiiSimdVec4f &vFalse) |
| static xiiSimdVec4f | Lerp (const xiiSimdVec4f &a, const xiiSimdVec4f &b, const xiiSimdVec4f &t) |
| static xiiSimdVec4f | MulAdd (const xiiSimdVec4f &a, const xiiSimdVec4f &b, const xiiSimdVec4f &c) |
| static xiiSimdVec4f | MulAdd (const xiiSimdVec4f &a, const xiiSimdFloat &b, const xiiSimdVec4f &c) |
| static xiiSimdVec4f | MulSub (const xiiSimdVec4f &a, const xiiSimdVec4f &b, const xiiSimdVec4f &c) |
| static xiiSimdVec4f | MulSub (const xiiSimdVec4f &a, const xiiSimdFloat &b, const xiiSimdVec4f &c) |
| static xiiSimdVec4f | CopySign (const xiiSimdVec4f &vMagnitude, const xiiSimdVec4f &vSign) |
Public Attributes | |
| xiiInternal::QuadFloat | m_v |
A 4-component SIMD vector class.