Ark Server API (ASA) - Wiki
Loading...
Searching...
No Matches
UnrealMathFPU.h File Reference
+ Include dependency graph for UnrealMathFPU.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  VectorRegister4Float
 
struct  VectorRegister4Int
 
struct  VectorRegister2Double
 
struct  VectorRegister4Double
 
struct  AlignedFloat4
 
struct  AlignedDouble4
 

Macros

#define VectorZeroVectorRegister()   VectorZeroDouble()
 
#define VectorOneVectorRegister()   VectorOneDouble()
 
#define DECLARE_VECTOR_REGISTER(X, Y, Z, W)   MakeVectorRegister(X, Y, Z, W)
 
#define VectorGetComponent(Vec, ComponentIndex)   VectorGetComponentImpl<ComponentIndex>(Vec)
 
#define VectorReplicate(Vec, ElementIndex)   MakeVectorRegister( (Vec).V[ElementIndex], (Vec).V[ElementIndex], (Vec).V[ElementIndex], (Vec).V[ElementIndex] )
 
#define VectorSwizzle(Vec, X, Y, Z, W)   MakeVectorRegister( (Vec).V[X], (Vec).V[Y], (Vec).V[Z], (Vec).V[W] )
 
#define VectorShuffle(Vec1, Vec2, X, Y, Z, W)   MakeVectorRegister( (Vec1).V[X], (Vec1).V[Y], (Vec2).V[Z], (Vec2).V[W] )
 
#define USE_FAST_QUAT_MUL   1
 
#define VectorLoadByte4(Ptr)   MakeVectorRegisterFloat( float(((const uint8*)(Ptr))[0]), float(((const uint8*)(Ptr))[1]), float(((const uint8*)(Ptr))[2]), float(((const uint8*)(Ptr))[3]) )
 
#define VectorLoadSignedByte4(Ptr)   MakeVectorRegisterFloat( float(((const int8*)(Ptr))[0]), float(((const int8*)(Ptr))[1]), float(((const int8*)(Ptr))[2]), float(((const int8*)(Ptr))[3]) )
 
#define VectorLoadByte4Reverse(Ptr)   MakeVectorRegisterFloat( float(((const uint8*)(Ptr))[3]), float(((const uint8*)(Ptr))[2]), float(((const uint8*)(Ptr))[1]), float(((const uint8*)(Ptr))[0]) )
 
#define VectorResetFloatRegisters()
 
#define VectorGetControlRegister()   0
 
#define VectorSetControlRegister(ControlStatus)
 
#define VECTOR_ROUND_TOWARD_ZERO   0
 
#define VectorIntSign(A)   VectorIntSelect( VectorIntCompareGE(A, GlobalVectorConstants::IntZero), GlobalVectorConstants::IntOne, GlobalVectorConstants::IntMinusOne )
 
#define VectorSetZero()   MakeVectorRegisterFloat(0.f, 0.f, 0.f, 0.f)
 
#define VectorSet1(F)   VectorSetFloat1(F)
 
#define VectorIntSet1(F)   MakeVectorRegisterInt(F, F, F, F)
 
#define VectorCastIntToFloat(Vec)   VectorLoad((float*)(Vec.V))
 
#define VectorCastFloatToInt(Vec)   VectorIntLoad(Vec.V)
 
#define VectorShuffleImmediate(Vec, I0, I1, I2, I3)   VectorShuffle(Vec, Vec, I3, I2, I1, I0)
 
#define VectorShiftLeftImm(Vec, ImmAmt)   static_assert(false, "Unimplemented")
 
#define VectorShiftRightImmArithmetic(Vec, ImmAmt)   static_assert(false, "Unimplemented")
 
#define VectorShiftRightImmLogical(Vec, ImmAmt)   static_assert(false, "Unimplemented")
 
#define VectorIntExpandLow16To32(V0)   static_assert(false, "Unimplemented")
 

Typedefs

typedef VectorRegister4Int VectorRegister4i
 
typedef VectorRegister4Float VectorRegister4f
 
typedef VectorRegister4Double VectorRegister4d
 
typedef VectorRegister2Double VectorRegister2d
 
typedef VectorRegister4Double VectorRegister4
 
typedef VectorRegister4 VectorRegister
 
typedef VectorRegister4Int VectorRegisterInt
 
typedef AlignedDouble4 AlignedRegister4
 

Functions

VectorRegister4Float VectorLoadAligned (const float *Ptr)
 
VectorRegister4Double VectorLoadAligned (const double *Ptr)
 
void VectorStoreAligned (const VectorRegister4Float &Vec, float *Ptr)
 
void VectorStoreAligned (const VectorRegister4Double &Vec, double *Dst)
 
FORCEINLINE VectorRegister2Double MakeVectorRegister2Double (double X, double Y)
 
FORCEINLINE VectorRegister4Float MakeVectorRegisterFloat (uint32 X, uint32 Y, uint32 Z, uint32 W)
 
FORCEINLINE VectorRegister4Double MakeVectorRegisterDouble (uint64 X, uint64 Y, uint64 Z, uint64 W)
 
FORCEINLINE VectorRegister4Float MakeVectorRegister (uint32 X, uint32 Y, uint32 Z, uint32 W)
 
FORCEINLINE VectorRegister4Float MakeVectorRegisterFloatMask (uint32 X, uint32 Y, uint32 Z, uint32 W)
 
FORCEINLINE VectorRegister4Double MakeVectorRegisterDoubleMask (uint64 X, uint64 Y, uint64 Z, uint64 W)
 
FORCEINLINE VectorRegister4Float MakeVectorRegisterFloat (float X, float Y, float Z, float W)
 
FORCEINLINE VectorRegister4Double MakeVectorRegisterDouble (double X, double Y, double Z, double W)
 
FORCEINLINE VectorRegister4Double MakeVectorRegisterDouble (const VectorRegister2Double &XY, const VectorRegister2Double &ZW)
 
FORCEINLINE VectorRegister4Float MakeVectorRegister (float X, float Y, float Z, float W)
 
FORCEINLINE VectorRegister4Double MakeVectorRegister (double X, double Y, double Z, double W)
 
FORCEINLINE VectorRegister4Double MakeVectorRegisterDouble (const VectorRegister4Float &From)
 
FORCEINLINE VectorRegister4Float MakeVectorRegisterFloatFromDouble (const VectorRegister4Double &Vec4d)
 
FORCEINLINE VectorRegister4Int MakeVectorRegisterInt (int32 X, int32 Y, int32 Z, int32 W)
 
FORCEINLINE constexpr VectorRegister4Int MakeVectorRegisterIntConstant (int32 X, int32 Y, int32 Z, int32 W)
 
FORCEINLINE constexpr VectorRegister4Float MakeVectorRegisterFloatConstant (float X, float Y, float Z, float W)
 
FORCEINLINE constexpr VectorRegister2Double MakeVectorRegister2DoubleConstant (double X, double Y)
 
FORCEINLINE VectorRegister4Float VectorZeroFloat (void)
 
FORCEINLINE VectorRegister4Double VectorZeroDouble (void)
 
FORCEINLINE VectorRegister4Float VectorOneFloat (void)
 
FORCEINLINE VectorRegister4Double VectorOneDouble (void)
 
template<uint32 ComponentIndex>
FORCEINLINE float VectorGetComponentImpl (const VectorRegister4Float &Vec)
 
FORCEINLINE float VectorGetComponentDynamic (const VectorRegister4Float &Vec, uint32 ComponentIndex)
 
template<uint32 ComponentIndex>
FORCEINLINE double VectorGetComponentImpl (const VectorRegister4Double &Vec)
 
FORCEINLINE double VectorGetComponentDynamic (const VectorRegister4Double &Vec, uint32 ComponentIndex)
 
FORCEINLINE VectorRegister4Float VectorLoad (const float *Ptr)
 
FORCEINLINE VectorRegister4Double VectorLoad (const double *Ptr)
 
FORCEINLINE VectorRegister4Double VectorLoadFloat3 (const double *Ptr)
 
FORCEINLINE VectorRegister4Double VectorLoadFloat3_W1 (const double *Ptr)
 
FORCEINLINE VectorRegister4Float VectorLoadFloat1 (const float *Ptr)
 
FORCEINLINE VectorRegister4Double VectorLoadDouble1 (const double *Ptr)
 
FORCEINLINE VectorRegister4Float VectorLoadFloat2 (const float *Ptr)
 
FORCEINLINE VectorRegister4Double VectorLoadFloat2 (const double *Ptr)
 
FORCEINLINE VectorRegister4Float VectorLoadTwoPairsFloat (const float *Ptr1, const float *Ptr2)
 
FORCEINLINE VectorRegister4Double VectorLoadTwoPairsFloat (const double *Ptr1, const double *Ptr2)
 
FORCEINLINE VectorRegister4Float VectorSetFloat1 (float F)
 
FORCEINLINE VectorRegister4Double VectorSetFloat1 (double D)
 
FORCEINLINE void VectorStoreAlignedStreamed (const VectorRegister4Float &Vec, float *Dst)
 
FORCEINLINE void VectorStoreAlignedStreamed (const VectorRegister4Double &Vec, double *Dst)
 
FORCEINLINE void VectorStore (const VectorRegister4Float &Vec, float *Dst)
 
FORCEINLINE void VectorStore (const VectorRegister4Double &Vec, double *Dst)
 
FORCEINLINE void VectorStoreFloat3 (const VectorRegister4Float &Vec, float *Dst)
 
FORCEINLINE void VectorStoreFloat3 (const VectorRegister4Double &Vec, double *Dst)
 
FORCEINLINE void VectorStoreFloat1 (const VectorRegister4Float &Vec, float *Dst)
 
FORCEINLINE void VectorStoreFloat1 (const VectorRegister4Double &Vec, double *Dst)
 
FORCEINLINE VectorRegister4Float VectorAbs (const VectorRegister4Float &Vec)
 
FORCEINLINE VectorRegister4Double VectorAbs (const VectorRegister4Double &Vec)
 
FORCEINLINE VectorRegister4Float VectorNegate (const VectorRegister4Float &Vec)
 
FORCEINLINE VectorRegister4Double VectorNegate (const VectorRegister4Double &Vec)
 
FORCEINLINE VectorRegister4Float VectorAdd (const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
 
FORCEINLINE VectorRegister4Double VectorAdd (const VectorRegister4Double &Vec1, const VectorRegister4Double &Vec2)
 
FORCEINLINE VectorRegister4Float VectorSubtract (const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
 
FORCEINLINE VectorRegister4Double VectorSubtract (const VectorRegister4Double &Vec1, const VectorRegister4Double &Vec2)
 
FORCEINLINE VectorRegister4Float VectorMultiply (const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
 
FORCEINLINE VectorRegister4Double VectorMultiply (const VectorRegister4Double &Vec1, const VectorRegister4Double &Vec2)
 
FORCEINLINE VectorRegister4Float VectorMultiplyAdd (const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2, const VectorRegister4Float &Vec3)
 
FORCEINLINE VectorRegister4Double VectorMultiplyAdd (const VectorRegister4Double &Vec1, const VectorRegister4Double &Vec2, const VectorRegister4Double &Vec3)
 
FORCEINLINE VectorRegister4Float VectorNegateMultiplyAdd (const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2, const VectorRegister4Float &Vec3)
 
FORCEINLINE VectorRegister4Double VectorNegateMultiplyAdd (const VectorRegister4Double &Vec1, const VectorRegister4Double &Vec2, const VectorRegister4Double &Vec3)
 
FORCEINLINE VectorRegister4Float VectorDivide (const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
 
FORCEINLINE VectorRegister4Double VectorDivide (const VectorRegister4Double &Vec1, const VectorRegister4Double &Vec2)
 
FORCEINLINE float VectorDot3Scalar (const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
 
FORCEINLINE double VectorDot3Scalar (const VectorRegister4Double &Vec1, const VectorRegister4Double &Vec2)
 
FORCEINLINE VectorRegister4Float VectorDot3 (const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
 
FORCEINLINE VectorRegister4Double VectorDot3 (const VectorRegister4Double &Vec1, const VectorRegister4Double &Vec2)
 
FORCEINLINE VectorRegister4Float VectorDot4 (const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
 
FORCEINLINE VectorRegister4Double VectorDot4 (const VectorRegister4Double &Vec1, const VectorRegister4Double &Vec2)
 
FORCEINLINE VectorRegister4Float VectorCompareEQ (const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
 
FORCEINLINE VectorRegister4Double VectorCompareEQ (const VectorRegister4Double &Vec1, const VectorRegister4Double &Vec2)
 
FORCEINLINE VectorRegister4Float VectorCompareNE (const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
 
FORCEINLINE VectorRegister4Double VectorCompareNE (const VectorRegister4Double &Vec1, const VectorRegister4Double &Vec2)
 
FORCEINLINE VectorRegister4Float VectorCompareGT (const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
 
FORCEINLINE VectorRegister4Double VectorCompareGT (const VectorRegister4Double &Vec1, const VectorRegister4Double &Vec2)
 
FORCEINLINE VectorRegister4Float VectorCompareGE (const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
 
FORCEINLINE VectorRegister4Double VectorCompareGE (const VectorRegister4Double &Vec1, const VectorRegister4Double &Vec2)
 
FORCEINLINE VectorRegister4Float VectorCompareLT (const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
 
FORCEINLINE VectorRegister4Double VectorCompareLT (const VectorRegister4Double &Vec1, const VectorRegister4Double &Vec2)
 
FORCEINLINE VectorRegister4Float VectorCompareLE (const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
 
FORCEINLINE VectorRegister4Double VectorCompareLE (const VectorRegister4Double &Vec1, const VectorRegister4Double &Vec2)
 
FORCEINLINE int32 VectorMaskBits (const VectorRegister4Float &Vec1)
 
FORCEINLINE int32 VectorMaskBits (const VectorRegister4Double &Vec1)
 
FORCEINLINE VectorRegister4Float VectorSelect (const VectorRegister4Float &Mask, const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
 
FORCEINLINE VectorRegister4Double VectorSelect (const VectorRegister4Double &Mask, const VectorRegister4Double &Vec1, const VectorRegister4Double &Vec2)
 
FORCEINLINE VectorRegister4Float VectorBitwiseOr (const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
 
FORCEINLINE VectorRegister4Double VectorBitwiseOr (const VectorRegister4Double &Vec1, const VectorRegister4Double &Vec2)
 
FORCEINLINE VectorRegister4Float VectorBitwiseAnd (const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
 
FORCEINLINE VectorRegister4Double VectorBitwiseAnd (const VectorRegister4Double &Vec1, const VectorRegister4Double &Vec2)
 
FORCEINLINE VectorRegister4Float VectorBitwiseXor (const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
 
FORCEINLINE VectorRegister4Double VectorBitwiseXor (const VectorRegister4Double &Vec1, const VectorRegister4Double &Vec2)
 
FORCEINLINE VectorRegister4Float VectorCross (const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
 
FORCEINLINE VectorRegister4Double VectorCross (const VectorRegister4Double &Vec1, const VectorRegister4Double &Vec2)
 
FORCEINLINE VectorRegister4Float VectorPow (const VectorRegister4Float &Base, const VectorRegister4Float &Exponent)
 
FORCEINLINE VectorRegister4Double VectorPow (const VectorRegister4Double &Base, const VectorRegister4Double &Exponent)
 
FORCEINLINE VectorRegister4Float VectorSqrt (const VectorRegister4Float &Vec)
 
FORCEINLINE VectorRegister4Double VectorSqrt (const VectorRegister4Double &Vec)
 
FORCEINLINE VectorRegister4Float VectorReciprocalSqrt (const VectorRegister4Float &Vec)
 
FORCEINLINE VectorRegister4Double VectorReciprocalSqrt (const VectorRegister4Double &Vec)
 
FORCEINLINE VectorRegister4Float VectorReciprocalSqrtEstimate (const VectorRegister4Float &Vec)
 
FORCEINLINE VectorRegister4Double VectorReciprocalSqrtEstimate (const VectorRegister4Double &Vec)
 
FORCEINLINE VectorRegister4Float VectorReciprocal (const VectorRegister4Float &Vec)
 
FORCEINLINE VectorRegister4Double VectorReciprocal (const VectorRegister4Double &Vec)
 
FORCEINLINE VectorRegister4Float VectorReciprocalEstimate (const VectorRegister4Float &Vec)
 
FORCEINLINE VectorRegister4Double VectorReciprocalEstimate (const VectorRegister4Double &Vec)
 
FORCEINLINE VectorRegister4Float VectorReciprocalLen (const VectorRegister4Float &Vec)
 
FORCEINLINE VectorRegister4Double VectorReciprocalLen (const VectorRegister4Double &Vec)
 
FORCEINLINE VectorRegister4Float VectorReciprocalLenEstimate (const VectorRegister4Float &Vector)
 
FORCEINLINE VectorRegister4Double VectorReciprocalLenEstimate (const VectorRegister4Double &Vector)
 
FORCEINLINE VectorRegister4Float VectorSet_W0 (const VectorRegister4Float &Vec)
 
FORCEINLINE VectorRegister4Double VectorSet_W0 (const VectorRegister4Double &Vec)
 
FORCEINLINE VectorRegister4Float VectorSet_W1 (const VectorRegister4Float &Vec)
 
FORCEINLINE VectorRegister4Double VectorSet_W1 (const VectorRegister4Double &Vec)
 
FORCEINLINE void VectorQuaternionMultiply (VectorRegister4Float *RESTRICT Result, const VectorRegister4Float *RESTRICT Quat1, const VectorRegister4Float *RESTRICT Quat2)
 
FORCEINLINE void VectorQuaternionMultiply (VectorRegister4Double *RESTRICT Result, const VectorRegister4Double *RESTRICT Quat1, const VectorRegister4Double *RESTRICT Quat2)
 
FORCEINLINE VectorRegister4Float VectorQuaternionMultiply2 (const VectorRegister4Float &Quat1, const VectorRegister4Float &Quat2)
 
FORCEINLINE VectorRegister4Double VectorQuaternionMultiply2 (const VectorRegister4Double &Quat1, const VectorRegister4Double &Quat2)
 
FORCEINLINE void VectorMatrixMultiply (FMatrix44d *Result, const FMatrix44d *Matrix1, const FMatrix44d *Matrix2)
 
FORCEINLINE void VectorMatrixMultiply (FMatrix44f *Result, const FMatrix44f *Matrix1, const FMatrix44f *Matrix2)
 
FORCEINLINE void VectorMatrixInverse (FMatrix44d *DstMatrix, const FMatrix44d *SrcMatrix)
 
FORCEINLINE void VectorMatrixInverse (FMatrix44f *DstMatrix, const FMatrix44f *SrcMatrix)
 
FORCEINLINE VectorRegister4Float VectorTransformVector (const VectorRegister4Float &VecP, const FMatrix44f *MatrixM)
 
FORCEINLINE VectorRegister4Float VectorTransformVector (const VectorRegister4Float &VecP, const FMatrix44d *MatrixM)
 
FORCEINLINE VectorRegister4Double VectorTransformVector (const VectorRegister4Double &VecP, const FMatrix44d *MatrixM)
 
FORCEINLINE VectorRegister4Double VectorTransformVector (const VectorRegister4Double &VecP, const FMatrix44f *MatrixM)
 
FORCEINLINE VectorRegister4Float VectorMin (const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
 
FORCEINLINE VectorRegister4Double VectorMin (const VectorRegister4Double &Vec1, const VectorRegister4Double &Vec2)
 
FORCEINLINE VectorRegister4Float VectorMax (const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
 
FORCEINLINE VectorRegister4Double VectorMax (const VectorRegister4Double &Vec1, const VectorRegister4Double &Vec2)
 
FORCEINLINE VectorRegister4Float VectorCombineHigh (const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
 
FORCEINLINE VectorRegister4Double VectorCombineHigh (const VectorRegister4Double &Vec1, const VectorRegister4Double &Vec2)
 
FORCEINLINE VectorRegister4Float VectorCombineLow (const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
 
FORCEINLINE VectorRegister4Double VectorCombineLow (const VectorRegister4Double &Vec1, const VectorRegister4Double &Vec2)
 
FORCEINLINE void VectorDeinterleave (VectorRegister4Float &RESTRICT OutEvens, VectorRegister4Float &RESTRICT OutOdds, const VectorRegister4Float &RESTRICT Lo, const VectorRegister4Float &RESTRICT Hi)
 
FORCEINLINE void VectorDeinterleave (VectorRegister4Double &RESTRICT OutEvens, VectorRegister4Double &RESTRICT OutOdds, const VectorRegister4Double &RESTRICT Lo, const VectorRegister4Double &RESTRICT Hi)
 
FORCEINLINE VectorRegister4Float VectorMergeVecXYZ_VecW (const VectorRegister4Float &VecXYZ, const VectorRegister4Float &VecW)
 
FORCEINLINE VectorRegister4Double VectorMergeVecXYZ_VecW (const VectorRegister4Double &VecXYZ, const VectorRegister4Double &VecW)
 
FORCEINLINE void VectorStoreByte4 (const VectorRegister4Float &Vec, void *Ptr)
 
FORCEINLINE void VectorStoreSignedByte4 (const VectorRegister4Float &Vec, void *Ptr)
 
FORCEINLINE VectorRegister4Float VectorLoadURGB10A2N (void *Ptr)
 
FORCEINLINE void VectorStoreURGB10A2N (const VectorRegister4Float &Vec, void *Ptr)
 
FORCEINLINE uint32 VectorAnyGreaterThan (const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
 
FORCEINLINE uint32 VectorAnyGreaterThan (const VectorRegister4Double &Vec1, const VectorRegister4Double &Vec2)
 
bool VectorContainsNaNOrInfinite (const VectorRegister4Float &Vec)
 
bool VectorContainsNaNOrInfinite (const VectorRegister4Double &Vec)
 
FORCEINLINE VectorRegister4Float VectorExp (const VectorRegister4Float &Vec)
 
FORCEINLINE VectorRegister4Double VectorExp (const VectorRegister4Double &Vec)
 
FORCEINLINE VectorRegister4Float VectorExp2 (const VectorRegister4Float &Vec)
 
FORCEINLINE VectorRegister4Double VectorExp2 (const VectorRegister4Double &Vec)
 
FORCEINLINE VectorRegister4Float VectorLog (const VectorRegister4Float &Vec)
 
FORCEINLINE VectorRegister4Double VectorLog (const VectorRegister4Double &Vec)
 
FORCEINLINE VectorRegister4Float VectorLog2 (const VectorRegister4Float &Vec)
 
FORCEINLINE VectorRegister4Double VectorLog2 (const VectorRegister4Double &Vec)
 
FORCEINLINE VectorRegister4Float VectorSin (const VectorRegister4Float &Vec)
 
FORCEINLINE VectorRegister4Double VectorSin (const VectorRegister4Double &Vec)
 
FORCEINLINE VectorRegister4Float VectorCos (const VectorRegister4Float &Vec)
 
FORCEINLINE VectorRegister4Double VectorCos (const VectorRegister4Double &Vec)
 
FORCEINLINE VectorRegister4Float VectorTan (const VectorRegister4Float &Vec)
 
FORCEINLINE VectorRegister4Double VectorTan (const VectorRegister4Double &Vec)
 
FORCEINLINE VectorRegister4Float VectorASin (const VectorRegister4Float &Vec)
 
FORCEINLINE VectorRegister4Double VectorASin (const VectorRegister4Double &Vec)
 
FORCEINLINE VectorRegister4Float VectorACos (const VectorRegister4Float &Vec)
 
FORCEINLINE VectorRegister4Double VectorACos (const VectorRegister4Double &Vec)
 
FORCEINLINE VectorRegister4Float VectorATan (const VectorRegister4Float &Vec)
 
FORCEINLINE VectorRegister4Double VectorATan (const VectorRegister4Double &Vec)
 
FORCEINLINE VectorRegister4Float VectorATan2 (const VectorRegister4Float &Y, const VectorRegister4Float &X)
 
FORCEINLINE VectorRegister4Double VectorATan2 (const VectorRegister4Double &Y, const VectorRegister4Double &X)
 
FORCEINLINE void VectorSinCos (VectorRegister4Float *RESTRICT VSinAngles, VectorRegister4Float *RESTRICT VCosAngles, const VectorRegister4Float *RESTRICT VAngles)
 
FORCEINLINE void VectorSinCos (VectorRegister4Double *RESTRICT VSinAngles, VectorRegister4Double *RESTRICT VCosAngles, const VectorRegister4Double *RESTRICT VAngles)
 
FORCEINLINE VectorRegister4Float VectorCeil (const VectorRegister4Float &Vec)
 
FORCEINLINE VectorRegister4Double VectorCeil (const VectorRegister4Double &Vec)
 
FORCEINLINE VectorRegister4Float VectorFloor (const VectorRegister4Float &Vec)
 
FORCEINLINE VectorRegister4Double VectorFloor (const VectorRegister4Double &Vec)
 
FORCEINLINE VectorRegister4Float VectorTruncate (const VectorRegister4Float &Vec)
 
FORCEINLINE VectorRegister4Double VectorTruncate (const VectorRegister4Double &Vec)
 
FORCEINLINE VectorRegister4Float VectorRound (const VectorRegister4Float &Vec)
 
FORCEINLINE VectorRegister4Double VectorRound (const VectorRegister4Double &Vec)
 
FORCEINLINE VectorRegister4Int VectorRoundToIntHalfToEven (const VectorRegister4Float &A)
 
FORCEINLINE VectorRegister4Float VectorMod (const VectorRegister4Float &X, const VectorRegister4Float &Y)
 
FORCEINLINE VectorRegister4Double VectorMod (const VectorRegister4Double &X, const VectorRegister4Double &Y)
 
FORCEINLINE VectorRegister4Float VectorSign (const VectorRegister4Float &Vec)
 
FORCEINLINE VectorRegister4Double VectorSign (const VectorRegister4Double &Vec)
 
FORCEINLINE VectorRegister4Float VectorStep (const VectorRegister4Float &Vec)
 
FORCEINLINE VectorRegister4Double VectorStep (const VectorRegister4Double &Vec)
 
FORCEINLINE VectorRegister4Float VectorLoadURGBA16N (void *Ptr)
 
FORCEINLINE VectorRegister4Float VectorLoadSRGBA16N (void *Ptr)
 
FORCEINLINE void VectorStoreURGBA16N (const VectorRegister4Float &Vec, void *Ptr)
 
FORCEINLINE VectorRegister4Int VectorIntAnd (const VectorRegister4Int &A, const VectorRegister4Int &B)
 
FORCEINLINE VectorRegister4Int VectorIntOr (const VectorRegister4Int &A, const VectorRegister4Int &B)
 
FORCEINLINE VectorRegister4Int VectorIntXor (const VectorRegister4Int &A, const VectorRegister4Int &B)
 
FORCEINLINE VectorRegister4Int VectorIntAndNot (const VectorRegister4Int &A, const VectorRegister4Int &B)
 
FORCEINLINE VectorRegister4Int VectorIntNot (const VectorRegister4Int &A)
 
FORCEINLINE VectorRegister4Int VectorIntCompareEQ (const VectorRegister4Int &A, const VectorRegister4Int &B)
 
FORCEINLINE VectorRegister4Int VectorIntCompareNEQ (const VectorRegister4Int &A, const VectorRegister4Int &B)
 
FORCEINLINE VectorRegister4Int VectorIntCompareGT (const VectorRegister4Int &A, const VectorRegister4Int &B)
 
FORCEINLINE VectorRegister4Int VectorIntCompareLT (const VectorRegister4Int &A, const VectorRegister4Int &B)
 
FORCEINLINE VectorRegister4Int VectorIntCompareGE (const VectorRegister4Int &A, const VectorRegister4Int &B)
 
FORCEINLINE VectorRegister4Int VectorIntCompareLE (const VectorRegister4Int &A, const VectorRegister4Int &B)
 
FORCEINLINE VectorRegister4Int VectorIntSelect (const VectorRegister4Int &Mask, const VectorRegister4Int &Vec1, const VectorRegister4Int &Vec2)
 
FORCEINLINE VectorRegister4Int VectorIntAdd (const VectorRegister4Int &A, const VectorRegister4Int &B)
 
FORCEINLINE VectorRegister4Int VectorIntSubtract (const VectorRegister4Int &A, const VectorRegister4Int &B)
 
FORCEINLINE VectorRegister4Int VectorIntMultiply (const VectorRegister4Int &A, const VectorRegister4Int &B)
 
FORCEINLINE VectorRegister4Int VectorIntNegate (const VectorRegister4Int &A)
 
FORCEINLINE VectorRegister4Int VectorIntMin (const VectorRegister4Int &A, const VectorRegister4Int &B)
 
FORCEINLINE VectorRegister4Int VectorIntMax (const VectorRegister4Int &A, const VectorRegister4Int &B)
 
FORCEINLINE VectorRegister4Int VectorIntAbs (const VectorRegister4Int &A)
 
FORCEINLINE VectorRegister4Float VectorIntToFloat (const VectorRegister4Int &A)
 
FORCEINLINE VectorRegister4Int VectorFloatToInt (const VectorRegister4Float &A)
 
FORCEINLINE VectorRegister4Int VectorFloatToInt (const VectorRegister4Double &A)
 
FORCEINLINE void VectorIntStore (const VectorRegister4Int &A, const void *Ptr)
 
FORCEINLINE VectorRegister4Int VectorIntLoad (const void *Ptr)
 
FORCEINLINE void VectorIntStoreAligned (const VectorRegister4Int &A, const void *Ptr)
 
FORCEINLINE VectorRegister4Int VectorIntLoadAligned (const void *Ptr)
 
FORCEINLINE VectorRegister4Int VectorIntLoad1 (const void *Ptr)
 

Macro Definition Documentation

◆ DECLARE_VECTOR_REGISTER

#define DECLARE_VECTOR_REGISTER ( X,
Y,
Z,
W )   MakeVectorRegister(X, Y, Z, W)

Definition at line 148 of file UnrealMathFPU.h.

◆ USE_FAST_QUAT_MUL

#define USE_FAST_QUAT_MUL   1

Definition at line 1377 of file UnrealMathFPU.h.

◆ VECTOR_ROUND_TOWARD_ZERO

#define VECTOR_ROUND_TOWARD_ZERO   0

Control status bit to round all floating point math results towards zero.

Definition at line 2067 of file UnrealMathFPU.h.

◆ VectorCastFloatToInt

#define VectorCastFloatToInt ( Vec)    VectorIntLoad(Vec.V)

Definition at line 2707 of file UnrealMathFPU.h.

◆ VectorCastIntToFloat

#define VectorCastIntToFloat ( Vec)    VectorLoad((float*)(Vec.V))

Definition at line 2706 of file UnrealMathFPU.h.

◆ VectorGetComponent

Definition at line 370 of file UnrealMathFPU.h.

◆ VectorGetControlRegister

#define VectorGetControlRegister ( )    0

Returns the control register.

Returns
The uint32 control register

Definition at line 2055 of file UnrealMathFPU.h.

◆ VectorIntExpandLow16To32

#define VectorIntExpandLow16To32 ( V0)    static_assert(false, "Unimplemented")

Definition at line 2712 of file UnrealMathFPU.h.

◆ VectorIntSet1

#define VectorIntSet1 ( F)    MakeVectorRegisterInt(F, F, F, F)

Definition at line 2705 of file UnrealMathFPU.h.

◆ VectorIntSign

◆ VectorLoadByte4

#define VectorLoadByte4 ( Ptr)    MakeVectorRegisterFloat( float(((const uint8*)(Ptr))[0]), float(((const uint8*)(Ptr))[1]), float(((const uint8*)(Ptr))[2]), float(((const uint8*)(Ptr))[3]) )

Loads 4 BYTEs from unaligned memory and converts them into 4 FLOATs. IMPORTANT: You need to call VectorResetFloatRegisters() before using scalar FLOATs after you've used this intrinsic!

Parameters
PtrUnaligned memory pointer to the 4 BYTEs.
Returns
VectorRegister( float(Ptr[0]), float(Ptr[1]), float(Ptr[2]), float(Ptr[3]) )

Definition at line 1929 of file UnrealMathFPU.h.

◆ VectorLoadByte4Reverse

#define VectorLoadByte4Reverse ( Ptr)    MakeVectorRegisterFloat( float(((const uint8*)(Ptr))[3]), float(((const uint8*)(Ptr))[2]), float(((const uint8*)(Ptr))[1]), float(((const uint8*)(Ptr))[0]) )

Loads 4 BYTEs from unaligned memory and converts them into 4 FLOATs in reversed order. IMPORTANT: You need to call VectorResetFloatRegisters() before using scalar FLOATs after you've used this intrinsic!

Parameters
PtrUnaligned memory pointer to the 4 BYTEs.
Returns
VectorRegister( float(Ptr[3]), float(Ptr[2]), float(Ptr[1]), float(Ptr[0]) )

Definition at line 1948 of file UnrealMathFPU.h.

◆ VectorLoadSignedByte4

#define VectorLoadSignedByte4 ( Ptr)    MakeVectorRegisterFloat( float(((const int8*)(Ptr))[0]), float(((const int8*)(Ptr))[1]), float(((const int8*)(Ptr))[2]), float(((const int8*)(Ptr))[3]) )

Loads 4 signed BYTEs from unaligned memory and converts them into 4 FLOATs. IMPORTANT: You need to call VectorResetFloatRegisters() before using scalar FLOATs after you've used this intrinsic!

Parameters
PtrUnaligned memory pointer to the 4 BYTEs.
Returns
VectorRegister( float(Ptr[0]), float(Ptr[1]), float(Ptr[2]), float(Ptr[3]) )

Definition at line 1938 of file UnrealMathFPU.h.

◆ VectorOneVectorRegister

#define VectorOneVectorRegister ( )    VectorOneDouble()

Definition at line 145 of file UnrealMathFPU.h.

◆ VectorReplicate

#define VectorReplicate ( Vec,
ElementIndex )   MakeVectorRegister( (Vec).V[ElementIndex], (Vec).V[ElementIndex], (Vec).V[ElementIndex], (Vec).V[ElementIndex] )

Replicates one element into all four elements and returns the new vector.

Parameters
VecSource vector
ElementIndexIndex (0-3) of the element to replicate
Returns
VectorRegister( Vec[ElementIndex], Vec[ElementIndex], Vec[ElementIndex], Vec[ElementIndex] )

Definition at line 585 of file UnrealMathFPU.h.

◆ VectorResetFloatRegisters

#define VectorResetFloatRegisters ( )

Resets the floating point registers so that they can be used again. Some intrinsics use these for MMX purposes (e.g. VectorLoadByte4 and VectorStoreByte4).

Definition at line 2048 of file UnrealMathFPU.h.

◆ VectorSet1

#define VectorSet1 ( F)    VectorSetFloat1(F)

Definition at line 2704 of file UnrealMathFPU.h.

◆ VectorSetControlRegister

#define VectorSetControlRegister ( ControlStatus)

Sets the control register.

Parameters
ControlStatusThe uint32 control status value to set

Definition at line 2062 of file UnrealMathFPU.h.

◆ VectorSetZero

#define VectorSetZero ( )    MakeVectorRegisterFloat(0.f, 0.f, 0.f, 0.f)

Definition at line 2703 of file UnrealMathFPU.h.

◆ VectorShiftLeftImm

#define VectorShiftLeftImm ( Vec,
ImmAmt )   static_assert(false, "Unimplemented")

Definition at line 2709 of file UnrealMathFPU.h.

◆ VectorShiftRightImmArithmetic

#define VectorShiftRightImmArithmetic ( Vec,
ImmAmt )   static_assert(false, "Unimplemented")

Definition at line 2710 of file UnrealMathFPU.h.

◆ VectorShiftRightImmLogical

#define VectorShiftRightImmLogical ( Vec,
ImmAmt )   static_assert(false, "Unimplemented")

Definition at line 2711 of file UnrealMathFPU.h.

◆ VectorShuffle

#define VectorShuffle ( Vec1,
Vec2,
X,
Y,
Z,
W )   MakeVectorRegister( (Vec1).V[X], (Vec1).V[Y], (Vec2).V[Z], (Vec2).V[W] )

Creates a vector through selecting two components from each vector via a shuffle mask.

Parameters
Vec1Source vector1
Vec2Source vector2
XIndex for which component of Vector1 to use for X (literal 0-3)
YIndex for which component to Vector1 to use for Y (literal 0-3)
ZIndex for which component to Vector2 to use for Z (literal 0-3)
WIndex for which component to Vector2 to use for W (literal 0-3)
Returns
The swizzled vector

Definition at line 610 of file UnrealMathFPU.h.

◆ VectorShuffleImmediate

#define VectorShuffleImmediate ( Vec,
I0,
I1,
I2,
I3 )   VectorShuffle(Vec, Vec, I3, I2, I1, I0)

Definition at line 2708 of file UnrealMathFPU.h.

◆ VectorSwizzle

#define VectorSwizzle ( Vec,
X,
Y,
Z,
W )   MakeVectorRegister( (Vec).V[X], (Vec).V[Y], (Vec).V[Z], (Vec).V[W] )

Swizzles the 4 components of a vector and returns the result.

Parameters
VecSource vector
XIndex for which component to use for X (literal 0-3)
YIndex for which component to use for Y (literal 0-3)
ZIndex for which component to use for Z (literal 0-3)
WIndex for which component to use for W (literal 0-3)
Returns
The swizzled vector

Definition at line 597 of file UnrealMathFPU.h.

◆ VectorZeroVectorRegister

#define VectorZeroVectorRegister ( )    VectorZeroDouble()

Definition at line 144 of file UnrealMathFPU.h.

Typedef Documentation

◆ AlignedRegister4

◆ VectorRegister

◆ VectorRegister2d

◆ VectorRegister4

◆ VectorRegister4d

◆ VectorRegister4f

◆ VectorRegister4i

◆ VectorRegisterInt

Function Documentation

◆ MakeVectorRegister() [1/3]

FORCEINLINE VectorRegister4Double MakeVectorRegister ( double X,
double Y,
double Z,
double W )

Definition at line 243 of file UnrealMathFPU.h.

◆ MakeVectorRegister() [2/3]

FORCEINLINE VectorRegister4Float MakeVectorRegister ( float X,
float Y,
float Z,
float W )

Definition at line 238 of file UnrealMathFPU.h.

◆ MakeVectorRegister() [3/3]

FORCEINLINE VectorRegister4Float MakeVectorRegister ( uint32 X,
uint32 Y,
uint32 Z,
uint32 W )

Definition at line 188 of file UnrealMathFPU.h.

◆ MakeVectorRegister2Double()

FORCEINLINE VectorRegister2Double MakeVectorRegister2Double ( double X,
double Y )

Definition at line 151 of file UnrealMathFPU.h.

◆ MakeVectorRegister2DoubleConstant()

FORCEINLINE constexpr VectorRegister2Double MakeVectorRegister2DoubleConstant ( double X,
double Y )
constexpr

Definition at line 295 of file UnrealMathFPU.h.

◆ MakeVectorRegisterDouble() [1/4]

Definition at line 233 of file UnrealMathFPU.h.

◆ MakeVectorRegisterDouble() [2/4]

FORCEINLINE VectorRegister4Double MakeVectorRegisterDouble ( const VectorRegister4Float & From)

Definition at line 249 of file UnrealMathFPU.h.

◆ MakeVectorRegisterDouble() [3/4]

FORCEINLINE VectorRegister4Double MakeVectorRegisterDouble ( double X,
double Y,
double Z,
double W )

Definition at line 223 of file UnrealMathFPU.h.

◆ MakeVectorRegisterDouble() [4/4]

FORCEINLINE VectorRegister4Double MakeVectorRegisterDouble ( uint64 X,
uint64 Y,
uint64 Z,
uint64 W )

Definition at line 178 of file UnrealMathFPU.h.

◆ MakeVectorRegisterDoubleMask()

FORCEINLINE VectorRegister4Double MakeVectorRegisterDoubleMask ( uint64 X,
uint64 Y,
uint64 Z,
uint64 W )

Definition at line 199 of file UnrealMathFPU.h.

◆ MakeVectorRegisterFloat() [1/2]

FORCEINLINE VectorRegister4Float MakeVectorRegisterFloat ( float X,
float Y,
float Z,
float W )

Returns a vector based on 4 FLOATs.

Parameters
X1st float component
Y2nd float component
Z3rd float component
W4th float component
Returns
Vector of the 4 FLOATs

Definition at line 213 of file UnrealMathFPU.h.

◆ MakeVectorRegisterFloat() [2/2]

FORCEINLINE VectorRegister4Float MakeVectorRegisterFloat ( uint32 X,
uint32 Y,
uint32 Z,
uint32 W )

Returns a bitwise equivalent vector based on 4 DWORDs.

Parameters
X1st uint32 component
Y2nd uint32 component
Z3rd uint32 component
W4th uint32 component
Returns
Bitwise equivalent vector with 4 floats

Definition at line 168 of file UnrealMathFPU.h.

◆ MakeVectorRegisterFloatConstant()

FORCEINLINE constexpr VectorRegister4Float MakeVectorRegisterFloatConstant ( float X,
float Y,
float Z,
float W )
constexpr

Definition at line 290 of file UnrealMathFPU.h.

◆ MakeVectorRegisterFloatFromDouble()

FORCEINLINE VectorRegister4Float MakeVectorRegisterFloatFromDouble ( const VectorRegister4Double & Vec4d)

Definition at line 255 of file UnrealMathFPU.h.

◆ MakeVectorRegisterFloatMask()

FORCEINLINE VectorRegister4Float MakeVectorRegisterFloatMask ( uint32 X,
uint32 Y,
uint32 Z,
uint32 W )

Definition at line 194 of file UnrealMathFPU.h.

◆ MakeVectorRegisterInt()

FORCEINLINE VectorRegister4Int MakeVectorRegisterInt ( int32 X,
int32 Y,
int32 Z,
int32 W )

Returns a vector based on 4 int32.

Parameters
X1st int32 component
Y2nd int32 component
Z3rd int32 component
W4th int32 component
Returns
Vector of the 4 int32

Definition at line 275 of file UnrealMathFPU.h.

◆ MakeVectorRegisterIntConstant()

FORCEINLINE constexpr VectorRegister4Int MakeVectorRegisterIntConstant ( int32 X,
int32 Y,
int32 Z,
int32 W )
constexpr

Definition at line 285 of file UnrealMathFPU.h.

◆ VectorAbs() [1/2]

Definition at line 629 of file UnrealMathFPU.h.

◆ VectorAbs() [2/2]

Returns the absolute value (component-wise).

Parameters
VecSource vector
Returns
VectorRegister( abs(Vec.x), abs(Vec.y), abs(Vec.z), abs(Vec.w) )

Definition at line 619 of file UnrealMathFPU.h.

◆ VectorACos() [1/2]

Definition at line 2176 of file UnrealMathFPU.h.

◆ VectorACos() [2/2]

Definition at line 2171 of file UnrealMathFPU.h.

◆ VectorAdd() [1/2]

◆ VectorAdd() [2/2]

Adds two vectors (component-wise) and returns the result.

Parameters
Vec11st vector
Vec22nd vector
Returns
VectorRegister( Vec1.x+Vec2.x, Vec1.y+Vec2.y, Vec1.z+Vec2.z, Vec1.w+Vec2.w )

Definition at line 662 of file UnrealMathFPU.h.

◆ VectorAnyGreaterThan() [1/2]

FORCEINLINE uint32 VectorAnyGreaterThan ( const VectorRegister4Double & Vec1,
const VectorRegister4Double & Vec2 )

Definition at line 2038 of file UnrealMathFPU.h.

◆ VectorAnyGreaterThan() [2/2]

FORCEINLINE uint32 VectorAnyGreaterThan ( const VectorRegister4Float & Vec1,
const VectorRegister4Float & Vec2 )

Returns non-zero if any element in Vec1 is greater than the corresponding element in Vec2, otherwise 0.

Parameters
Vec11st source vector
Vec22nd source vector
Returns
Non-zero integer if (Vec1.x > Vec2.x) || (Vec1.y > Vec2.y) || (Vec1.z > Vec2.z) || (Vec1.w > Vec2.w)

Definition at line 2032 of file UnrealMathFPU.h.

◆ VectorASin() [1/2]

Definition at line 2165 of file UnrealMathFPU.h.

◆ VectorASin() [2/2]

Definition at line 2160 of file UnrealMathFPU.h.

◆ VectorATan() [1/2]

Definition at line 2187 of file UnrealMathFPU.h.

◆ VectorATan() [2/2]

Definition at line 2182 of file UnrealMathFPU.h.

◆ VectorATan2() [1/2]

◆ VectorATan2() [2/2]

◆ VectorBitwiseAnd() [1/2]

Definition at line 1132 of file UnrealMathFPU.h.

◆ VectorBitwiseAnd() [2/2]

Combines two vectors using bitwise AND (treating each vector as a 128 bit field)

Parameters
Vec11st vector
Vec22nd vector
Returns
VectorRegister( for each bit i: Vec1[i] & Vec2[i] )

Definition at line 1123 of file UnrealMathFPU.h.

◆ VectorBitwiseOr() [1/2]

Definition at line 1107 of file UnrealMathFPU.h.

◆ VectorBitwiseOr() [2/2]

Combines two vectors using bitwise OR (treating each vector as a 128 bit field)

Parameters
Vec11st vector
Vec22nd vector
Returns
VectorRegister( for each bit i: Vec1[i] | Vec2[i] )

Definition at line 1098 of file UnrealMathFPU.h.

◆ VectorBitwiseXor() [1/2]

Definition at line 1157 of file UnrealMathFPU.h.

◆ VectorBitwiseXor() [2/2]

Combines two vectors using bitwise XOR (treating each vector as a 128 bit field)

Parameters
Vec11st vector
Vec22nd vector
Returns
VectorRegister( for each bit i: Vec1[i] ^ Vec2[i] )

Definition at line 1148 of file UnrealMathFPU.h.

◆ VectorCeil() [1/2]

Definition at line 2246 of file UnrealMathFPU.h.

◆ VectorCeil() [2/2]

Definition at line 2241 of file UnrealMathFPU.h.

◆ VectorCombineHigh() [1/2]

Definition at line 1860 of file UnrealMathFPU.h.

◆ VectorCombineHigh() [2/2]

Creates a vector by combining two high components from each vector

Parameters
Vec1Source vector1
Vec2Source vector2
Returns
The combined vector

Definition at line 1855 of file UnrealMathFPU.h.

◆ VectorCombineLow() [1/2]

Definition at line 1877 of file UnrealMathFPU.h.

◆ VectorCombineLow() [2/2]

Creates a vector by combining two low components from each vector

Parameters
Vec1Source vector1
Vec2Source vector2
Returns
The combined vector

Definition at line 1872 of file UnrealMathFPU.h.

◆ VectorCompareEQ() [1/2]

Definition at line 890 of file UnrealMathFPU.h.

◆ VectorCompareEQ() [2/2]

Creates a four-part mask based on component-wise == compares of the input vectors

Parameters
Vec11st vector
Vec22nd vector
Returns
VectorRegister( Vec1.x == Vec2.x ? 0xFFFFFFFF : 0, same for yzw )

Definition at line 881 of file UnrealMathFPU.h.

◆ VectorCompareGE() [1/2]

Definition at line 967 of file UnrealMathFPU.h.

◆ VectorCompareGE() [2/2]

Creates a four-part mask based on component-wise >= compares of the input vectors

Parameters
Vec11st vector
Vec22nd vector
Returns
VectorRegister( Vec1.x >= Vec2.x ? 0xFFFFFFFF : 0, same for yzw )

Definition at line 958 of file UnrealMathFPU.h.

◆ VectorCompareGT() [1/2]

Definition at line 941 of file UnrealMathFPU.h.

◆ VectorCompareGT() [2/2]

Creates a four-part mask based on component-wise > compares of the input vectors

Parameters
Vec11st vector
Vec22nd vector
Returns
VectorRegister( Vec1.x > Vec2.x ? 0xFFFFFFFF : 0, same for yzw )

Definition at line 932 of file UnrealMathFPU.h.

◆ VectorCompareLE() [1/2]

Definition at line 1017 of file UnrealMathFPU.h.

◆ VectorCompareLE() [2/2]

Creates a four-part mask based on component-wise <= compares of the input vectors

Parameters
Vec11st vector
Vec22nd vector
Returns
VectorRegister( Vec1.x <= Vec2.x ? 0xFFFFFFFF : 0, same for yzw )

Definition at line 1008 of file UnrealMathFPU.h.

◆ VectorCompareLT() [1/2]

Definition at line 992 of file UnrealMathFPU.h.

◆ VectorCompareLT() [2/2]

Creates a four-part mask based on component-wise < compares of the input vectors

Parameters
Vec11st vector
Vec22nd vector
Returns
VectorRegister( Vec1.x < Vec2.x ? 0xFFFFFFFF : 0, same for yzw )

Definition at line 983 of file UnrealMathFPU.h.

◆ VectorCompareNE() [1/2]

Definition at line 915 of file UnrealMathFPU.h.

◆ VectorCompareNE() [2/2]

Creates a four-part mask based on component-wise != compares of the input vectors

Parameters
Vec11st vector
Vec22nd vector
Returns
VectorRegister( Vec1.x != Vec2.x ? 0xFFFFFFFF : 0, same for yzw )

Definition at line 906 of file UnrealMathFPU.h.

◆ VectorContainsNaNOrInfinite() [1/2]

bool VectorContainsNaNOrInfinite ( const VectorRegister4Double & Vec)
inline

Definition at line 2075 of file UnrealMathFPU.h.

◆ VectorContainsNaNOrInfinite() [2/2]

bool VectorContainsNaNOrInfinite ( const VectorRegister4Float & Vec)
inline

Definition at line 2070 of file UnrealMathFPU.h.

◆ VectorCos() [1/2]

Definition at line 2142 of file UnrealMathFPU.h.

◆ VectorCos() [2/2]

Definition at line 2137 of file UnrealMathFPU.h.

◆ VectorCross() [1/2]

Definition at line 1184 of file UnrealMathFPU.h.

◆ VectorCross() [2/2]

Calculates the cross product of two vectors (XYZ components). W of the input should be 0, and will remain 0.

Parameters
Vec11st vector
Vec22nd vector
Returns
cross(Vec1.xyz, Vec2.xyz). W of the input should be 0, and will remain 0.

Definition at line 1174 of file UnrealMathFPU.h.

◆ VectorDeinterleave() [1/2]

◆ VectorDeinterleave() [2/2]

Deinterleaves the components of the two given vectors such that the even components are in one vector and the odds in another.

Parameters
Lo[Even0, Odd0, Even1, Odd1]
Hi[Even2, Odd2, Even3, Odd3]
OutEvens[Even0, Even1, Even2, Even3]
OutOdds[Odd0, Odd1, Odd2, Odd3]

Definition at line 1892 of file UnrealMathFPU.h.

◆ VectorDivide() [1/2]

Definition at line 802 of file UnrealMathFPU.h.

◆ VectorDivide() [2/2]

Divides two vectors (component-wise) and returns the result.

Parameters
Vec11st vector
Vec22nd vector
Returns
VectorRegister( Vec1.x/Vec2.x, Vec1.y/Vec2.y, Vec1.z/Vec2.z, Vec1.w/Vec2.w )

Definition at line 792 of file UnrealMathFPU.h.

◆ VectorDot3() [1/2]

Definition at line 845 of file UnrealMathFPU.h.

◆ VectorDot3() [2/2]

Calculates the dot3 product of two vectors and returns a vector with the result in all 4 components.

Parameters
Vec11st vector
Vec22nd vector
Returns
d = dot3(Vec1.xyz, Vec2.xyz), VectorRegister( d, d, d, d )

Definition at line 838 of file UnrealMathFPU.h.

◆ VectorDot3Scalar() [1/2]

Definition at line 825 of file UnrealMathFPU.h.

◆ VectorDot3Scalar() [2/2]

FORCEINLINE float VectorDot3Scalar ( const VectorRegister4Float & Vec1,
const VectorRegister4Float & Vec2 )

Calculates the dot3 product of two vectors and returns a scalar value.

Parameters
Vec11st vector
Vec22nd vector
Returns
d = dot3(Vec1.xyz, Vec2.xyz)

Definition at line 819 of file UnrealMathFPU.h.

◆ VectorDot4() [1/2]

Definition at line 866 of file UnrealMathFPU.h.

◆ VectorDot4() [2/2]

Calculates the dot4 product of two vectors and returns a vector with the result in all 4 components.

Parameters
Vec11st vector
Vec22nd vector
Returns
d = dot4(Vec1.xyzw, Vec2.xyzw), VectorRegister( d, d, d, d )

Definition at line 859 of file UnrealMathFPU.h.

◆ VectorExp() [1/2]

Definition at line 2086 of file UnrealMathFPU.h.

◆ VectorExp() [2/2]

Definition at line 2081 of file UnrealMathFPU.h.

◆ VectorExp2() [1/2]

Definition at line 2097 of file UnrealMathFPU.h.

◆ VectorExp2() [2/2]

Definition at line 2092 of file UnrealMathFPU.h.

◆ VectorFloatToInt() [1/2]

Definition at line 2611 of file UnrealMathFPU.h.

◆ VectorFloatToInt() [2/2]

Definition at line 2601 of file UnrealMathFPU.h.

◆ VectorFloor() [1/2]

Definition at line 2257 of file UnrealMathFPU.h.

◆ VectorFloor() [2/2]

Definition at line 2252 of file UnrealMathFPU.h.

◆ VectorGetComponentDynamic() [1/2]

FORCEINLINE double VectorGetComponentDynamic ( const VectorRegister4Double & Vec,
uint32 ComponentIndex )

Definition at line 365 of file UnrealMathFPU.h.

◆ VectorGetComponentDynamic() [2/2]

FORCEINLINE float VectorGetComponentDynamic ( const VectorRegister4Float & Vec,
uint32 ComponentIndex )

Definition at line 354 of file UnrealMathFPU.h.

◆ VectorGetComponentImpl() [1/2]

template<uint32 ComponentIndex>
FORCEINLINE double VectorGetComponentImpl ( const VectorRegister4Double & Vec)

Definition at line 360 of file UnrealMathFPU.h.

◆ VectorGetComponentImpl() [2/2]

template<uint32 ComponentIndex>
FORCEINLINE float VectorGetComponentImpl ( const VectorRegister4Float & Vec)

Returns an component from a vector.

Parameters
VecVector register
ComponentIndexWhich component to get, X=0, Y=1, Z=2, W=3
Returns
The component as a float

Definition at line 349 of file UnrealMathFPU.h.

◆ VectorIntAbs()

Definition at line 2581 of file UnrealMathFPU.h.

◆ VectorIntAdd()

Definition at line 2527 of file UnrealMathFPU.h.

◆ VectorIntAnd()

= a & b

Definition at line 2418 of file UnrealMathFPU.h.

◆ VectorIntAndNot()

= (~a) & b to match _mm_andnot_si128

Definition at line 2447 of file UnrealMathFPU.h.

◆ VectorIntCompareEQ()

Definition at line 2466 of file UnrealMathFPU.h.

◆ VectorIntCompareGE()

Definition at line 2502 of file UnrealMathFPU.h.

◆ VectorIntCompareGT()

Definition at line 2484 of file UnrealMathFPU.h.

◆ VectorIntCompareLE()

Definition at line 2511 of file UnrealMathFPU.h.

◆ VectorIntCompareLT()

Definition at line 2493 of file UnrealMathFPU.h.

◆ VectorIntCompareNEQ()

Definition at line 2475 of file UnrealMathFPU.h.

◆ VectorIntLoad()

FORCEINLINE VectorRegister4Int VectorIntLoad ( const void * Ptr)

Loads 4 int32s from unaligned memory.

Parameters
PtrUnaligned memory pointer to the 4 int32s
Returns
VectorRegister4Int(Ptr[0], Ptr[1], Ptr[2], Ptr[3])

Definition at line 2645 of file UnrealMathFPU.h.

◆ VectorIntLoad1()

FORCEINLINE VectorRegister4Int VectorIntLoad1 ( const void * Ptr)

Loads 1 int32 from unaligned memory into all components of a vector register.

Parameters
PtrUnaligned memory pointer to the 4 int32s
Returns
VectorRegister4Int(*Ptr, *Ptr, *Ptr, *Ptr)

Definition at line 2692 of file UnrealMathFPU.h.

◆ VectorIntLoadAligned()

FORCEINLINE VectorRegister4Int VectorIntLoadAligned ( const void * Ptr)

Loads 4 int32s from aligned memory.

Parameters
PtrAligned memory pointer to the 4 int32s
Returns
VectorRegister4Int(Ptr[0], Ptr[1], Ptr[2], Ptr[3])

Definition at line 2676 of file UnrealMathFPU.h.

◆ VectorIntMax()

Definition at line 2572 of file UnrealMathFPU.h.

◆ VectorIntMin()

Definition at line 2563 of file UnrealMathFPU.h.

◆ VectorIntMultiply()

Definition at line 2545 of file UnrealMathFPU.h.

◆ VectorIntNegate()

Definition at line 2554 of file UnrealMathFPU.h.

◆ VectorIntNot()

= ~a

Definition at line 2456 of file UnrealMathFPU.h.

◆ VectorIntOr()

= a | b

Definition at line 2428 of file UnrealMathFPU.h.

◆ VectorIntSelect()

Definition at line 2521 of file UnrealMathFPU.h.

◆ VectorIntStore()

FORCEINLINE void VectorIntStore ( const VectorRegister4Int & A,
const void * Ptr )

Stores a vector to memory (aligned or unaligned).

Parameters
VecVector to store
PtrMemory pointer

Definition at line 2629 of file UnrealMathFPU.h.

◆ VectorIntStoreAligned()

FORCEINLINE void VectorIntStoreAligned ( const VectorRegister4Int & A,
const void * Ptr )

Stores a vector to memory (aligned).

Parameters
VecVector to store
PtrAligned Memory pointer

Definition at line 2661 of file UnrealMathFPU.h.

◆ VectorIntSubtract()

Definition at line 2536 of file UnrealMathFPU.h.

◆ VectorIntToFloat()

Definition at line 2592 of file UnrealMathFPU.h.

◆ VectorIntXor()

= a ^ b

Definition at line 2437 of file UnrealMathFPU.h.

◆ VectorLoad() [1/2]

Definition at line 384 of file UnrealMathFPU.h.

◆ VectorLoad() [2/2]

Loads 4 FLOATs from unaligned memory.

Parameters
PtrUnaligned memory pointer to the 4 FLOATs
Returns
VectorRegister(Ptr[0], Ptr[1], Ptr[2], Ptr[3])

Definition at line 379 of file UnrealMathFPU.h.

◆ VectorLoadAligned() [1/2]

FORCEINLINE VectorRegister4Double VectorLoadAligned ( const double * Ptr)

Definition at line 425 of file UnrealMathFPU.h.

◆ VectorLoadAligned() [2/2]

FORCEINLINE VectorRegister4Float VectorLoadAligned ( const float * Ptr)

Loads 4 FLOATs from aligned memory.

Parameters
PtrAligned memory pointer to the 4 FLOATs
Returns
VectorRegister4Float(Ptr[0], Ptr[1], Ptr[2], Ptr[3])

Loads 4 floats from aligned memory.

Parameters
PtrAligned memory pointer to the 4 floats
Returns
VectorRegister4Float(Ptr[0], Ptr[1], Ptr[2], Ptr[3])

Definition at line 420 of file UnrealMathFPU.h.

◆ VectorLoadDouble1()

FORCEINLINE VectorRegister4Double VectorLoadDouble1 ( const double * Ptr)

Definition at line 442 of file UnrealMathFPU.h.

◆ VectorLoadFloat1()

FORCEINLINE VectorRegister4Float VectorLoadFloat1 ( const float * Ptr)

Loads 1 float from unaligned memory and replicates it to all 4 elements.

Parameters
PtrUnaligned memory pointer to the float
Returns
VectorRegister4Float(Ptr[0], Ptr[0], Ptr[0], Ptr[0])

Definition at line 437 of file UnrealMathFPU.h.

◆ VectorLoadFloat2() [1/2]

FORCEINLINE VectorRegister4Double VectorLoadFloat2 ( const double * Ptr)

Definition at line 459 of file UnrealMathFPU.h.

◆ VectorLoadFloat2() [2/2]

FORCEINLINE VectorRegister4Float VectorLoadFloat2 ( const float * Ptr)

Loads 2 floats from unaligned memory into X and Y and duplicates them in Z and W.

Parameters
PtrUnaligned memory pointer to the floats
Returns
VectorRegister4Float(Ptr[0], Ptr[1], Ptr[0], Ptr[1])

Definition at line 454 of file UnrealMathFPU.h.

◆ VectorLoadFloat3()

FORCEINLINE VectorRegister4Double VectorLoadFloat3 ( const double * Ptr)

Loads 3 FLOATs from unaligned memory and sets W=0.

Parameters
PtrUnaligned memory pointer to the 3 FLOATs
Returns
VectorRegister4Float(Ptr[0], Ptr[1], Ptr[2], 0)

Definition at line 396 of file UnrealMathFPU.h.

◆ VectorLoadFloat3_W1()

FORCEINLINE VectorRegister4Double VectorLoadFloat3_W1 ( const double * Ptr)

Loads 3 FLOATs from unaligned memory and sets W=1.

Parameters
PtrUnaligned memory pointer to the 3 FLOATs
Returns
VectorRegister4Float(Ptr[0], Ptr[1], Ptr[2], 1.0f)

Definition at line 408 of file UnrealMathFPU.h.

◆ VectorLoadSRGBA16N()

FORCEINLINE VectorRegister4Float VectorLoadSRGBA16N ( void * Ptr)

Loads packed signed RGBA16(4 bytes) from unaligned memory and converts them into 4 FLOATs. IMPORTANT: You need to call VectorResetFloatRegisters() before using scalar FLOATs after you've used this intrinsic!

Parameters
PtrUnaligned memory pointer to the RGBA16(8 bytes).
Returns
VectorRegister with 4 FLOATs loaded from Ptr.

Definition at line 2378 of file UnrealMathFPU.h.

◆ VectorLoadTwoPairsFloat() [1/2]

FORCEINLINE VectorRegister4Double VectorLoadTwoPairsFloat ( const double * Ptr1,
const double * Ptr2 )

Definition at line 476 of file UnrealMathFPU.h.

◆ VectorLoadTwoPairsFloat() [2/2]

FORCEINLINE VectorRegister4Float VectorLoadTwoPairsFloat ( const float * Ptr1,
const float * Ptr2 )

Loads 4 unaligned floats - 2 from the first pointer, 2 from the second, and packs them in to 1 vector.

Parameters
Ptr1Unaligned memory pointer to the first 2 floats
Ptr2Unaligned memory pointer to the second 2 floats
Returns
VectorRegister(Ptr1[0], Ptr1[1], Ptr2[0], Ptr2[1])

Definition at line 472 of file UnrealMathFPU.h.

◆ VectorLoadURGB10A2N()

FORCEINLINE VectorRegister4Float VectorLoadURGB10A2N ( void * Ptr)

Loads packed RGB10A2(4 bytes) from unaligned memory and converts them into 4 FLOATs. IMPORTANT: You need to call VectorResetFloatRegisters() before using scalar FLOATs after you've used this intrinsic!

Parameters
PtrUnaligned memory pointer to the RGB10A2(4 bytes).
Returns
VectorRegister with 4 FLOATs loaded from Ptr.

Definition at line 1990 of file UnrealMathFPU.h.

◆ VectorLoadURGBA16N()

FORCEINLINE VectorRegister4Float VectorLoadURGBA16N ( void * Ptr)

Loads packed RGBA16(4 bytes) from unaligned memory and converts them into 4 FLOATs. IMPORTANT: You need to call VectorResetFloatRegisters() before using scalar FLOATs after you've used this intrinsic!

Parameters
PtrUnaligned memory pointer to the RGBA16(8 bytes).
Returns
VectorRegister with 4 FLOATs loaded from Ptr.

Definition at line 2358 of file UnrealMathFPU.h.

◆ VectorLog() [1/2]

Definition at line 2108 of file UnrealMathFPU.h.

◆ VectorLog() [2/2]

Definition at line 2103 of file UnrealMathFPU.h.

◆ VectorLog2() [1/2]

Definition at line 2119 of file UnrealMathFPU.h.

◆ VectorLog2() [2/2]

Definition at line 2114 of file UnrealMathFPU.h.

◆ VectorMaskBits() [1/2]

FORCEINLINE int32 VectorMaskBits ( const VectorRegister4Double & Vec1)

Definition at line 1043 of file UnrealMathFPU.h.

◆ VectorMaskBits() [2/2]

FORCEINLINE int32 VectorMaskBits ( const VectorRegister4Float & Vec1)

Returns an integer bit-mask (0x00 - 0x0f) based on the sign-bit for each component in a vector.

Parameters
VecMaskVector
Returns
Bit 0 = sign(VecMask.x), Bit 1 = sign(VecMask.y), Bit 2 = sign(VecMask.z), Bit 3 = sign(VecMask.w)

Definition at line 1033 of file UnrealMathFPU.h.

◆ VectorMatrixInverse() [1/2]

FORCEINLINE void VectorMatrixInverse ( FMatrix44d * DstMatrix,
const FMatrix44d * SrcMatrix )

Calculate the inverse of an FMatrix44d.

Parameters
DstMatrixFMatrix44d pointer to where the result should be stored
SrcMatrixFMatrix44d pointer to the Matrix to be inversed

Definition at line 1559 of file UnrealMathFPU.h.

◆ VectorMatrixInverse() [2/2]

FORCEINLINE void VectorMatrixInverse ( FMatrix44f * DstMatrix,
const FMatrix44f * SrcMatrix )

Definition at line 1643 of file UnrealMathFPU.h.

◆ VectorMatrixMultiply() [1/2]

FORCEINLINE void VectorMatrixMultiply ( FMatrix44d * Result,
const FMatrix44d * Matrix1,
const FMatrix44d * Matrix2 )

Multiplies two 4x4 matrices.

Parameters
ResultPointer to where the result should be stored
Matrix1Pointer to the first matrix
Matrix2Pointer to the second matrix

Definition at line 1496 of file UnrealMathFPU.h.

◆ VectorMatrixMultiply() [2/2]

FORCEINLINE void VectorMatrixMultiply ( FMatrix44f * Result,
const FMatrix44f * Matrix1,
const FMatrix44f * Matrix2 )

Definition at line 1524 of file UnrealMathFPU.h.

◆ VectorMax() [1/2]

◆ VectorMax() [2/2]

Returns the maximum values of two vectors (component-wise).

Parameters
Vec11st vector
Vec22nd vector
Returns
VectorRegister( max(Vec1.x,Vec2.x), max(Vec1.y,Vec2.y), max(Vec1.z,Vec2.z), max(Vec1.w,Vec2.w) )

Definition at line 1828 of file UnrealMathFPU.h.

◆ VectorMergeVecXYZ_VecW() [1/2]

Definition at line 1917 of file UnrealMathFPU.h.

◆ VectorMergeVecXYZ_VecW() [2/2]

Merges the XYZ components of one vector with the W component of another vector and returns the result.

Parameters
VecXYZSource vector for XYZ_
VecWSource register for ___W (note: the fourth component is used, not the first)
Returns
VectorRegister(VecXYZ.x, VecXYZ.y, VecXYZ.z, VecW.w)

Definition at line 1912 of file UnrealMathFPU.h.

◆ VectorMin() [1/2]

◆ VectorMin() [2/2]

Returns the minimum values of two vectors (component-wise).

Parameters
Vec11st vector
Vec22nd vector
Returns
VectorRegister( min(Vec1.x,Vec2.x), min(Vec1.y,Vec2.y), min(Vec1.z,Vec2.z), min(Vec1.w,Vec2.w) )

Definition at line 1801 of file UnrealMathFPU.h.

◆ VectorMod() [1/2]

◆ VectorMod() [2/2]

◆ VectorMultiply() [1/2]

Definition at line 726 of file UnrealMathFPU.h.

◆ VectorMultiply() [2/2]

Multiplies two vectors (component-wise) and returns the result.

Parameters
Vec11st vector
Vec22nd vector
Returns
VectorRegister( Vec1.x*Vec2.x, Vec1.y*Vec2.y, Vec1.z*Vec2.z, Vec1.w*Vec2.w )

Definition at line 716 of file UnrealMathFPU.h.

◆ VectorMultiplyAdd() [1/2]

◆ VectorMultiplyAdd() [2/2]

Multiplies two vectors (component-wise), adds in the third vector and returns the result.

Parameters
Vec11st vector
Vec22nd vector
Vec33rd vector
Returns
VectorRegister( Vec1.x*Vec2.x + Vec3.x, Vec1.y*Vec2.y + Vec3.y, Vec1.z*Vec2.z + Vec3.z, Vec1.w*Vec2.w + Vec3.w )

Definition at line 744 of file UnrealMathFPU.h.

◆ VectorNegate() [1/2]

Definition at line 650 of file UnrealMathFPU.h.

◆ VectorNegate() [2/2]

Returns the negated value (component-wise).

Parameters
VecSource vector
Returns
VectorRegister( -Vec.x, -Vec.y, -Vec.z, -Vec.w )

Definition at line 645 of file UnrealMathFPU.h.

◆ VectorNegateMultiplyAdd() [1/2]

Definition at line 778 of file UnrealMathFPU.h.

◆ VectorNegateMultiplyAdd() [2/2]

Multiplies two vectors (component-wise), negates the results and adds it to the third vector i.e. -AB + C = C - AB

Parameters
Vec11st vector
Vec22nd vector
Vec33rd vector
Returns
VectorRegister( Vec3.x - Vec1.x*Vec2.x, Vec3.y - Vec1.y*Vec2.y, Vec3.z - Vec1.z*Vec2.z, Vec3.w - Vec1.w*Vec2.w )

Definition at line 773 of file UnrealMathFPU.h.

◆ VectorOneDouble()

FORCEINLINE VectorRegister4Double VectorOneDouble ( void )

Definition at line 336 of file UnrealMathFPU.h.

◆ VectorOneFloat()

Returns a vector with all ones.

Returns
VectorRegister4Float(1.0f, 1.0f, 1.0f, 1.0f)

Definition at line 331 of file UnrealMathFPU.h.

◆ VectorPow() [1/2]

Definition at line 1211 of file UnrealMathFPU.h.

◆ VectorPow() [2/2]

Calculates x raised to the power of y (component-wise).

Parameters
BaseBase vector
ExponentExponent vector
Returns
VectorRegister( Base.x^Exponent.x, Base.y^Exponent.y, Base.z^Exponent.z, Base.w^Exponent.w )

Definition at line 1201 of file UnrealMathFPU.h.

◆ VectorQuaternionMultiply() [1/2]

Definition at line 1427 of file UnrealMathFPU.h.

◆ VectorQuaternionMultiply() [2/2]

Multiplies two quaternions; the order matters.

When composing quaternions: VectorQuaternionMultiply(C, A, B) will yield a quaternion C = A * B that logically first applies B then A to any subsequent transformation (right first, then left).

Parameters
ResultPointer to where the result Quat1 * Quat2 should be stored
Quat1Pointer to the first quaternion (must not be the destination)
Quat2Pointer to the second quaternion (must not be the destination)

Definition at line 1389 of file UnrealMathFPU.h.

◆ VectorQuaternionMultiply2() [1/2]

Definition at line 1482 of file UnrealMathFPU.h.

◆ VectorQuaternionMultiply2() [2/2]

FORCEINLINE VectorRegister4Float VectorQuaternionMultiply2 ( const VectorRegister4Float & Quat1,
const VectorRegister4Float & Quat2 )

Multiplies two quaternions; the order matters.

Order matters when composing quaternions: C = VectorQuaternionMultiply2(A, B) will yield a quaternion C = A * B that logically first applies B then A to any subsequent transformation (right first, then left).

Parameters
Quat1Pointer to the first quaternion
Quat2Pointer to the second quaternion
Returns
Quat1 * Quat2

Definition at line 1475 of file UnrealMathFPU.h.

◆ VectorReciprocal() [1/2]

Definition at line 1274 of file UnrealMathFPU.h.

◆ VectorReciprocal() [2/2]

Computes the reciprocal of a vector (component-wise) and returns the result.

Parameters
Vec1st vector
Returns
VectorRegister4Float( 1.0f / Vec.x, 1.0f / Vec.y, 1.0f / Vec.z, 1.0f / Vec.w )

Definition at line 1269 of file UnrealMathFPU.h.

◆ VectorReciprocalEstimate() [1/2]

FORCEINLINE VectorRegister4Double VectorReciprocalEstimate ( const VectorRegister4Double & Vec)

Definition at line 1290 of file UnrealMathFPU.h.

◆ VectorReciprocalEstimate() [2/2]

FORCEINLINE VectorRegister4Float VectorReciprocalEstimate ( const VectorRegister4Float & Vec)

Computes an estimate of the reciprocal of a vector (component-wise) and returns the result.

Parameters
Vec1st vector
Returns
VectorRegister( (Estimate) 1.0f / Vec.x, (Estimate) 1.0f / Vec.y, (Estimate) 1.0f / Vec.z, (Estimate) 1.0f / Vec.w )

Definition at line 1285 of file UnrealMathFPU.h.

◆ VectorReciprocalLen() [1/2]

Definition at line 1314 of file UnrealMathFPU.h.

◆ VectorReciprocalLen() [2/2]

Return Reciprocal Length of the vector

Parameters
VecVector
Returns
VectorRegister(rlen, rlen, rlen, rlen) when rlen = 1/sqrt(dot4(V))

Definition at line 1301 of file UnrealMathFPU.h.

◆ VectorReciprocalLenEstimate() [1/2]

FORCEINLINE VectorRegister4Double VectorReciprocalLenEstimate ( const VectorRegister4Double & Vector)

Definition at line 1338 of file UnrealMathFPU.h.

◆ VectorReciprocalLenEstimate() [2/2]

FORCEINLINE VectorRegister4Float VectorReciprocalLenEstimate ( const VectorRegister4Float & Vector)

Return Reciprocal Length of the vector (estimate)

Parameters
VectorVector
Returns
VectorRegister4Float(rlen, rlen, rlen, rlen) when rlen = 1/sqrt(dot4(V))

Definition at line 1333 of file UnrealMathFPU.h.

◆ VectorReciprocalSqrt() [1/2]

Definition at line 1242 of file UnrealMathFPU.h.

◆ VectorReciprocalSqrt() [2/2]

Returns an estimate of 1/sqrt(c) for each component of the vector

Parameters
VectorVector
Returns
VectorRegister(1/sqrt(t), 1/sqrt(t), 1/sqrt(t), 1/sqrt(t))

Definition at line 1237 of file UnrealMathFPU.h.

◆ VectorReciprocalSqrtEstimate() [1/2]

FORCEINLINE VectorRegister4Double VectorReciprocalSqrtEstimate ( const VectorRegister4Double & Vec)

Definition at line 1258 of file UnrealMathFPU.h.

◆ VectorReciprocalSqrtEstimate() [2/2]

FORCEINLINE VectorRegister4Float VectorReciprocalSqrtEstimate ( const VectorRegister4Float & Vec)

Returns an estimate of 1/sqrt(c) for each component of the vector

Parameters
VectorVector
Returns
VectorRegister(1/sqrt(t), 1/sqrt(t), 1/sqrt(t), 1/sqrt(t))

Definition at line 1253 of file UnrealMathFPU.h.

◆ VectorRound() [1/2]

Definition at line 2279 of file UnrealMathFPU.h.

◆ VectorRound() [2/2]

Definition at line 2274 of file UnrealMathFPU.h.

◆ VectorRoundToIntHalfToEven()

FORCEINLINE VectorRegister4Int VectorRoundToIntHalfToEven ( const VectorRegister4Float & A)

Definition at line 2285 of file UnrealMathFPU.h.

◆ VectorSelect() [1/2]

◆ VectorSelect() [2/2]

Does a bitwise vector selection based on a mask (e.g., created from VectorCompareXX)

Parameters
MaskMask (when 1: use the corresponding bit from Vec1 otherwise from Vec2)
Vec11st vector
Vec22nd vector
Returns
VectorRegister( for each bit i: Mask[i] ? Vec1[i] : Vec2[i] )

Definition at line 1063 of file UnrealMathFPU.h.

◆ VectorSet_W0() [1/2]

Definition at line 1354 of file UnrealMathFPU.h.

◆ VectorSet_W0() [2/2]

Loads XYZ and sets W=0

Parameters
VecVectorRegister
Returns
VectorRegister(X, Y, Z, 0.0f)

Definition at line 1349 of file UnrealMathFPU.h.

◆ VectorSet_W1() [1/2]

Definition at line 1370 of file UnrealMathFPU.h.

◆ VectorSet_W1() [2/2]

Loads XYZ and sets W=1

Parameters
VecVectorRegister
Returns
VectorRegister(X, Y, Z, 1.0f)

Definition at line 1365 of file UnrealMathFPU.h.

◆ VectorSetFloat1() [1/2]

Definition at line 492 of file UnrealMathFPU.h.

◆ VectorSetFloat1() [2/2]

FORCEINLINE VectorRegister4Float VectorSetFloat1 ( float F)

Propagates passed in float to all registers

Parameters
FFloat to set
Returns
VectorRegister4Float(F,F,F,F)

Definition at line 487 of file UnrealMathFPU.h.

◆ VectorSign() [1/2]

Definition at line 2323 of file UnrealMathFPU.h.

◆ VectorSign() [2/2]

Definition at line 2314 of file UnrealMathFPU.h.

◆ VectorSin() [1/2]

Definition at line 2130 of file UnrealMathFPU.h.

◆ VectorSin() [2/2]

Definition at line 2125 of file UnrealMathFPU.h.

◆ VectorSinCos() [1/2]

Definition at line 2233 of file UnrealMathFPU.h.

◆ VectorSinCos() [2/2]

Computes the sine and cosine of each component of a Vector.

Parameters
VSinAnglesVectorRegister Pointer to where the Sin result should be stored
VCosAnglesVectorRegister Pointer to where the Cos result should be stored
VAnglesVectorRegister Pointer to the input angles

Definition at line 2219 of file UnrealMathFPU.h.

◆ VectorSqrt() [1/2]

Definition at line 1226 of file UnrealMathFPU.h.

◆ VectorSqrt() [2/2]

Definition at line 1221 of file UnrealMathFPU.h.

◆ VectorStep() [1/2]

Definition at line 2342 of file UnrealMathFPU.h.

◆ VectorStep() [2/2]

Definition at line 2333 of file UnrealMathFPU.h.

◆ VectorStore() [1/2]

FORCEINLINE void VectorStore ( const VectorRegister4Double & Vec,
double * Dst )

Definition at line 540 of file UnrealMathFPU.h.

◆ VectorStore() [2/2]

FORCEINLINE void VectorStore ( const VectorRegister4Float & Vec,
float * Dst )

Stores a vector to memory (aligned or unaligned).

Parameters
VecVector to store
PtrMemory pointer

Definition at line 535 of file UnrealMathFPU.h.

◆ VectorStoreAligned() [1/2]

FORCEINLINE void VectorStoreAligned ( const VectorRegister4Double & Vec,
double * Dst )

Definition at line 508 of file UnrealMathFPU.h.

◆ VectorStoreAligned() [2/2]

FORCEINLINE void VectorStoreAligned ( const VectorRegister4Float & Vec,
float * Ptr )

Stores a vector to aligned memory.

Parameters
VecVector to store
PtrAligned memory pointer

Definition at line 503 of file UnrealMathFPU.h.

◆ VectorStoreAlignedStreamed() [1/2]

FORCEINLINE void VectorStoreAlignedStreamed ( const VectorRegister4Double & Vec,
double * Dst )

Definition at line 524 of file UnrealMathFPU.h.

◆ VectorStoreAlignedStreamed() [2/2]

FORCEINLINE void VectorStoreAlignedStreamed ( const VectorRegister4Float & Vec,
float * Dst )

Performs non-temporal store of a vector to aligned memory without polluting the caches

Parameters
VecVector to store
PtrAligned memory pointer

Definition at line 519 of file UnrealMathFPU.h.

◆ VectorStoreByte4()

FORCEINLINE void VectorStoreByte4 ( const VectorRegister4Float & Vec,
void * Ptr )

Converts the 4 FLOATs in the vector to 4 BYTEs, clamped to [0,255], and stores to unaligned memory. IMPORTANT: You need to call VectorResetFloatRegisters() before using scalar FLOATs after you've used this intrinsic!

Parameters
VecVector containing 4 FLOATs
PtrUnaligned memory pointer to store the 4 BYTEs.

Definition at line 1957 of file UnrealMathFPU.h.

◆ VectorStoreFloat1() [1/2]

FORCEINLINE void VectorStoreFloat1 ( const VectorRegister4Double & Vec,
double * Dst )

Definition at line 573 of file UnrealMathFPU.h.

◆ VectorStoreFloat1() [2/2]

FORCEINLINE void VectorStoreFloat1 ( const VectorRegister4Float & Vec,
float * Dst )

Stores the X component of a vector to unaligned memory.

Parameters
VecVector to store X
PtrUnaligned memory pointer

Definition at line 568 of file UnrealMathFPU.h.

◆ VectorStoreFloat3() [1/2]

FORCEINLINE void VectorStoreFloat3 ( const VectorRegister4Double & Vec,
double * Dst )

Definition at line 557 of file UnrealMathFPU.h.

◆ VectorStoreFloat3() [2/2]

FORCEINLINE void VectorStoreFloat3 ( const VectorRegister4Float & Vec,
float * Dst )

Stores the XYZ components of a vector to unaligned memory.

Parameters
VecVector to store XYZ
PtrUnaligned memory pointer

Definition at line 552 of file UnrealMathFPU.h.

◆ VectorStoreSignedByte4()

FORCEINLINE void VectorStoreSignedByte4 ( const VectorRegister4Float & Vec,
void * Ptr )

Converts the 4 FLOATs in the vector to 4 BYTEs, clamped to [-127,127], and stores to unaligned memory. IMPORTANT: You need to call VectorResetFloatRegisters() before using scalar FLOATs after you've used this intrinsic!

Parameters
VecVector containing 4 FLOATs
PtrUnaligned memory pointer to store the 4 BYTEs.

Definition at line 1973 of file UnrealMathFPU.h.

◆ VectorStoreURGB10A2N()

FORCEINLINE void VectorStoreURGB10A2N ( const VectorRegister4Float & Vec,
void * Ptr )

Converts the 4 FLOATs in the vector RGB10A2, clamped to [0, 1023] and [0, 3], and stores to unaligned memory. IMPORTANT: You need to call VectorResetFloatRegisters() before using scalar FLOATs after you've used this intrinsic!

Parameters
VecVector containing 4 FLOATs
PtrUnaligned memory pointer to store the packed RGB10A2(4 bytes).

Definition at line 2010 of file UnrealMathFPU.h.

◆ VectorStoreURGBA16N()

FORCEINLINE void VectorStoreURGBA16N ( const VectorRegister4Float & Vec,
void * Ptr )

Converts the 4 FLOATs in the vector RGBA16, clamped to [0, 65535], and stores to unaligned memory. IMPORTANT: You need to call VectorResetFloatRegisters() before using scalar FLOATs after you've used this intrinsic!

Parameters
VecVector containing 4 FLOATs
PtrUnaligned memory pointer to store the packed RGBA16(8 bytes).

Definition at line 2398 of file UnrealMathFPU.h.

◆ VectorSubtract() [1/2]

Definition at line 699 of file UnrealMathFPU.h.

◆ VectorSubtract() [2/2]

Subtracts a vector from another (component-wise) and returns the result.

Parameters
Vec11st vector
Vec22nd vector
Returns
VectorRegister( Vec1.x-Vec2.x, Vec1.y-Vec2.y, Vec1.z-Vec2.z, Vec1.w-Vec2.w )

Definition at line 689 of file UnrealMathFPU.h.

◆ VectorTan() [1/2]

Definition at line 2154 of file UnrealMathFPU.h.

◆ VectorTan() [2/2]

Definition at line 2149 of file UnrealMathFPU.h.

◆ VectorTransformVector() [1/4]

FORCEINLINE VectorRegister4Double VectorTransformVector ( const VectorRegister4Double & VecP,
const FMatrix44d * MatrixM )

Definition at line 1764 of file UnrealMathFPU.h.

◆ VectorTransformVector() [2/4]

FORCEINLINE VectorRegister4Double VectorTransformVector ( const VectorRegister4Double & VecP,
const FMatrix44f * MatrixM )

Definition at line 1778 of file UnrealMathFPU.h.

◆ VectorTransformVector() [3/4]

FORCEINLINE VectorRegister4Float VectorTransformVector ( const VectorRegister4Float & VecP,
const FMatrix44d * MatrixM )

Definition at line 1748 of file UnrealMathFPU.h.

◆ VectorTransformVector() [4/4]

FORCEINLINE VectorRegister4Float VectorTransformVector ( const VectorRegister4Float & VecP,
const FMatrix44f * MatrixM )

Calculate Homogeneous transform.

Parameters
VecPVectorRegister
MatrixMFMatrix44d pointer to the Matrix to apply transform
Returns
VectorRegister = VecP*MatrixM

Definition at line 1734 of file UnrealMathFPU.h.

◆ VectorTruncate() [1/2]

Definition at line 2268 of file UnrealMathFPU.h.

◆ VectorTruncate() [2/2]

Definition at line 2263 of file UnrealMathFPU.h.

◆ VectorZeroDouble()

FORCEINLINE VectorRegister4Double VectorZeroDouble ( void )

Definition at line 321 of file UnrealMathFPU.h.

◆ VectorZeroFloat()

FORCEINLINE VectorRegister4Float VectorZeroFloat ( void )

Returns a vector with all zeros.

Returns
MakeVectorRegister(0.0f, 0.0f, 0.0f, 0.0f)

Definition at line 316 of file UnrealMathFPU.h.