11#if PLATFORM_ENABLE_VECTORINTRINSICS_NEON
16#if (PLATFORM_WINDOWS && PLATFORM_64BITS && !PLATFORM_COMPILER_CLANG)
17#include <arm64_neon.h>
28#if PLATFORM_COMPILER_MSVC
39template<
typename T,
typename BASE_TYPE>
54FORCEINLINE float VectorRegisterWrapper<float32x4_t, float>::operator[](
int Index)
const
60FORCEINLINE double VectorRegisterWrapper<float64x2_t, double>::operator[](
int Index)
const
66FORCEINLINE int VectorRegisterWrapper<int32x4_t, int>::operator[](
int Index)
const
139#define DECLARE_VECTOR_REGISTER(X, Y, Z, W) MakeVectorRegister( X, Y, Z, W )
169#define VectorZeroVectorRegister() VectorZeroDouble()
170#define VectorOneVectorRegister() VectorOneDouble()
543template <
int ElementIndex>
549template <
int ElementIndex>
555template <
int ElementIndex>
559 if constexpr (ElementIndex > 1)
572#define VectorSetComponent( Vec, ElementIndex, Scalar ) VectorSetComponentImpl<ElementIndex>(Vec, Scalar)
677 for (
int i = 0; i < 4; ++i)
689#define VectorStoreAlignedStreamed(Vec, Ptr) VectorStoreAligned(Vec, Ptr)
767template <
int ElementIndex>
773template <
int ElementIndex>
779template <
int ElementIndex>
783 if constexpr (ElementIndex <= 1)
796#define VectorReplicate( Vec, ElementIndex ) VectorReplicateImpl<ElementIndex>(Vec)
1009 return *(
double*)∑
1272 check((E0 < 4) && (E1 < 4) && (E2 < 4) && (
E3 < 4));
1303 check((E0 < 4) && (E1 < 4) && (E2 < 4) && (
E3 < 4));
1306 0x0706050403020100ULL,
1307 0x0F0E0D0C0B0A0908ULL,
1308 0x1716151413121110ULL,
1309 0x1F1E1D1C1B1A1918ULL,
1326template <
int X,
int Y,
int Z,
int W>
1332template <
int X,
int Y>
1335 if constexpr (
X <= 1)
1337 if constexpr (
Y <= 1)
1348 if constexpr (
Y <= 1)
1359template <
int X,
int Y,
int Z,
int W>
1368#define VectorSwizzle( Vec, X, Y, Z, W ) VectorSwizzleImpl<X, Y, Z, W>(Vec)
1437 0x0706050403020100ULL,
1438 0x0F0E0D0C0B0A0908ULL,
1439 0x1716151413121110ULL,
1440 0x1F1E1D1C1B1A1918ULL,
1442 0x2726252423222120ULL,
1443 0x2F2E2D2C2B2A2928ULL,
1444 0x3736353433323130ULL,
1445 0x3F3E3D3C3B3A3938ULL,
1465template <
int X,
int Y,
int Z,
int W>
1471template <
int X,
int Y,
int Z,
int W>
1480#define VectorShuffle( Vec1, Vec2, X, Y, Z, W ) VectorShuffleImpl<X, Y, Z, W>(Vec1, Vec2)
1615 Values[0] = FMath::Pow(Values[0],
Exponents[0]);
1616 Values[1] = FMath::Pow(Values[1],
Exponents[1]);
1617 Values[2] = FMath::Pow(Values[2],
Exponents[2]);
1618 Values[3] = FMath::Pow(Values[3],
Exponents[3]);
1619 return Values.ToVectorRegister();
1818template <u
int32 ElementIndex>
1824template <
int ElementIndex>
1830template <
int ElementIndex>
1833 if constexpr (ElementIndex > 1)
1843#define VectorGetComponent(Vec, ElementIndex) VectorGetComponentImpl<ElementIndex>(Vec)
1848 return Floats[ElementIndex];
2169template <
bool bAligned>
2184 alignas(16)
float V[4];
2186 V[0] =
float((
E >> 00) & 0x3FF);
2187 V[1] =
float((
E >> 10) & 0x3FF);
2188 V[2] =
float((
E >> 20) & 0x3FF);
2189 V[3] =
float((
E >> 30) & 0x3);
2212 *Out = (
uint32(Tmp.F[0]) & 0x3FF) << 00 |
2213 (
uint32(Tmp.F[1]) & 0x3FF) << 10 |
2214 (
uint32(Tmp.F[2]) & 0x3FF) << 20 |
2215 (
uint32(Tmp.F[3]) & 0x003) << 30;
2241#define VectorResetFloatRegisters()
2250#if PLATFORM_WINDOWS_ARM64EC
2251 #pragma warning(push)
2252 #pragma warning(disable:5076)
2253 #pragma warning(disable:5077)
2264#if PLATFORM_WINDOWS && !PLATFORM_COMPILER_CLANG
2281#if PLATFORM_WINDOWS && !PLATFORM_COMPILER_CLANG
2292#if PLATFORM_WINDOWS_ARM64EC
2293 #pragma warning(pop)
2300#define VECTOR_ROUND_TOWARD_ZERO (3 << 22)
2305#define VECTOR_DENORMALS_FLUSH_TO_ZERO (1 << 24)
2450 InfUnion.U = 0x7FF0000000000000ULL;
2665 return DoubleResult;
2694 static const float p = 0.225f;
2695 static const float a = 7.58946609f;
2696 static const float b = 1.63384342f;
2728 return Doubles.ToVectorRegister();
2743 return Doubles.ToVectorRegister();
2800#define VectorIntAnd(A, B) vandq_s32(A, B)
2802#define VectorIntOr(A, B) vorrq_s32(A, B)
2804#define VectorIntXor(A, B) veorq_s32(A, B)
2806#define VectorIntAndNot(A, B) vbicq_s32(B, A)
2808#define VectorIntNot(A) vmvnq_s32(A)
2811#define VectorIntCompareEQ(A, B) vceqq_s32(A,B)
2812#define VectorIntCompareNEQ(A, B) VectorIntNot(VectorIntCompareEQ(A,B))
2813#define VectorIntCompareGT(A, B) vcgtq_s32(A,B)
2814#define VectorIntCompareLT(A, B) vcltq_s32(A,B)
2815#define VectorIntCompareGE(A, B) vcgeq_s32(A,B)
2816#define VectorIntCompareLE(A, B) vcleq_s32(A,B)
2825#define VectorIntAdd(A, B) vaddq_s32(A, B)
2826#define VectorIntSubtract(A, B) vsubq_s32(A, B)
2827#define VectorIntMultiply(A, B) vmulq_s32(A, B)
2828#define VectorIntNegate(A) vnegq_s32(A)
2829#define VectorIntMin(A, B) vminq_s32(A,B)
2830#define VectorIntMax(A, B) vmaxq_s32(A,B)
2831#define VectorIntClamp(A, B, C) VectorIntMin(VectorIntMax(A, B), C)
2832#define VectorIntAbs(A) vabsq_s32(A)
2834#define VectorIntSign(A) VectorIntSelect( VectorIntCompareGE(A, GlobalVectorConstants::IntZero), GlobalVectorConstants::IntOne, GlobalVectorConstants::IntMinusOne )
2836#define VectorIntToFloat(A) vcvtq_f32_s32(A)
2869#define VectorIntStore( Vec, Ptr ) vst1q_s32( (int32*)(Ptr), Vec )
2870#define VectorIntStore_16( Vec, Ptr ) vst1q_s16( (int16*)(Ptr), Vec )
2878#define VectorIntLoad( Ptr ) vld1q_s32( (int32*)((void*)(Ptr)) )
2879#define VectorIntLoad_16( Ptr ) vld1q_s16( (int16*)((void*)(Ptr)) )
2887#define VectorIntStoreAligned( Vec, Ptr ) vst1q_s32( (int32*)(Ptr), Vec )
2895#define VectorIntLoadAligned( Ptr ) vld1q_s32( (int32*)((void*)(Ptr)) )
2903#define VectorIntLoad1(Ptr) vld1q_dup_s32((int32*)(Ptr))
2904#define VectorIntLoad1_16(Ptr) vld1q_dup_s16((int16*)(Ptr))
2906#define VectorIntSet1(F) (VectorRegister4Int)vdupq_n_s32(F)
2907#define VectorSetZero() vdupq_n_s32(0)
2908#define VectorSet1(F) (VectorRegister4Float)vdupq_n_f32(F)
2909#define VectorCastIntToFloat(Vec) ((VectorRegister4f)vreinterpretq_f32_s32(Vec))
2910#define VectorCastFloatToInt(Vec) ((VectorRegister4i)vreinterpretq_s32_f32(Vec))
2911#define VectorCastDoubleToInt(Vec) ((VectorRegister4i)vreinterpretq_s64_f64(Vec))
2912#define VectorCastIntToDouble(Vec) ((VectorRegister2Double)vreinterpretq_f64_s64(Vec))
2913#define VectorShiftLeftImm(Vec, ImmAmt) vshlq_n_s32(Vec, ImmAmt)
2914#define VectorShiftRightImmArithmetic(Vec, ImmAmt) vshrq_n_s32(Vec, ImmAmt)
2915#define VectorShiftRightImmLogical(Vec, ImmAmt) vshrq_n_u32(Vec, ImmAmt)
2916#define VectorRound(Vec) vrndnq_f32(Vec)
2934#if UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_4
2935#include <type_traits>
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
FORCEINLINE VectorRegister4Int MakeVectorRegisterInt(int32 X, int32 Y, int32 Z, int32 W)
Definition UnrealMathFPU.h:282
FORCEINLINE VectorRegister4Float VectorTan(const VectorRegister4Float &Vec)
Definition UnrealMathFPU.h:2039
FORCEINLINE VectorRegister4Float VectorSubtract(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:731
FORCEINLINE void VectorDeinterleave(VectorRegister4Float &RESTRICT OutEvens, VectorRegister4Float &RESTRICT OutOdds, const VectorRegister4Float &RESTRICT Lo, const VectorRegister4Float &RESTRICT Hi)
Definition UnrealMathFPU.h:1777
FORCEINLINE VectorRegister4Double VectorLoadFloat3(const double *Ptr)
Definition UnrealMathFPU.h:427
FORCEINLINE VectorRegister4Float VectorATan2(const VectorRegister4Float &Y, const VectorRegister4Float &X)
Definition UnrealMathFPU.h:2083
FORCEINLINE uint32 VectorAnyGreaterThan(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:1917
FORCEINLINE VectorRegister4Float VectorSqrt(const VectorRegister4Float &Vec)
Definition UnrealMathFPU.h:1263
FORCEINLINE VectorRegister4Float VectorReciprocalSqrt(const VectorRegister4Float &Vec)
Definition UnrealMathFPU.h:1279
FORCEINLINE bool VectorMatrixInverse(FMatrix44d *DstMatrix, const FMatrix44d *SrcMatrix)
Definition UnrealMathFPU.h:1603
FORCEINLINE VectorRegister4Float VectorLoadSRGBA16N(void *Ptr)
Definition UnrealMathFPU.h:2268
FORCEINLINE VectorRegister4Float VectorDot3(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:880
FORCEINLINE VectorRegister4Float VectorMin(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:1686
FORCEINLINE float VectorGetComponentImpl(const VectorRegister4Float &Vec)
Definition UnrealMathFPU.h:364
FORCEINLINE VectorRegister4x4Float VectorLoad16(const float *Ptr)
Definition UnrealMathFPU.h:410
FORCEINLINE VectorRegister4Float VectorDot4(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:901
FORCEINLINE VectorRegister4Float MakeVectorRegister(uint32 X, uint32 Y, uint32 Z, uint32 W)
Definition UnrealMathFPU.h:195
FORCEINLINE void VectorSinCos(VectorRegister4Float *RESTRICT VSinAngles, VectorRegister4Float *RESTRICT VCosAngles, const VectorRegister4Float *RESTRICT VAngles)
Definition UnrealMathFPU.h:2109
FORCEINLINE VectorRegister4Float VectorLoadURGB10A2N(void *Ptr)
Definition UnrealMathFPU.h:1875
FORCEINLINE void VectorStoreSignedByte4(const VectorRegister4Float &Vec, void *Ptr)
Definition UnrealMathFPU.h:1858
FORCEINLINE VectorRegister4Float VectorSet_W1(const VectorRegister4Float &Vec)
Definition UnrealMathFPU.h:1407
FORCEINLINE VectorRegister4Float VectorSetFloat1(float F)
Definition UnrealMathFPU.h:518
FORCEINLINE VectorRegister4Float VectorLog2(const VectorRegister4Float &Vec)
Definition UnrealMathFPU.h:2004
FORCEINLINE void VectorQuaternionMultiply(VectorRegister4Float *RESTRICT Result, const VectorRegister4Float *RESTRICT Quat1, const VectorRegister4Float *RESTRICT Quat2)
Definition UnrealMathFPU.h:1431
FORCEINLINE VectorRegister4Float VectorLoadURGBA16N(void *Ptr)
Definition UnrealMathFPU.h:2248
#define VectorShuffle(Vec1, Vec2, X, Y, Z, W)
Definition UnrealMathFPU.h:652
VectorRegister4Double VectorRegister4d
Definition UnrealMathFPU.h:90
FORCEINLINE VectorRegister4Float VectorTruncate(const VectorRegister4Float &Vec)
Definition UnrealMathFPU.h:2153
FORCEINLINE VectorRegister4Double VectorZeroDouble(void)
Definition UnrealMathFPU.h:336
FORCEINLINE VectorRegister4Float VectorDivide(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:834
FORCEINLINE VectorRegister4Float VectorMultiply(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:758
AlignedDouble4 AlignedRegister4
Definition UnrealMathFPU.h:150
FORCEINLINE VectorRegister4Float VectorMax(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:1713
FORCEINLINE VectorRegister4Float VectorBitwiseAnd(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:1165
FORCEINLINE VectorRegister4Float VectorLoadFloat1(const float *Ptr)
Definition UnrealMathFPU.h:468
FORCEINLINE VectorRegister4Float VectorReciprocalLen(const VectorRegister4Float &Vec)
Definition UnrealMathFPU.h:1343
FORCEINLINE constexpr VectorRegister4Float MakeVectorRegisterFloatConstant(float X, float Y, float Z, float W)
Definition UnrealMathFPU.h:297
FORCEINLINE VectorRegister4Float VectorCos(const VectorRegister4Float &Vec)
Definition UnrealMathFPU.h:2027
FORCEINLINE VectorRegister4Float VectorLoadFloat2(const float *Ptr)
Definition UnrealMathFPU.h:485
#define VectorIntExpandLow16To32(V0)
Definition UnrealMathFPU.h:2661
FORCEINLINE VectorRegister4Int VectorIntSelect(const VectorRegister4Int &Mask, const VectorRegister4Int &Vec1, const VectorRegister4Int &Vec2)
Definition UnrealMathFPU.h:2411
FORCEINLINE void VectorStoreByte4(const VectorRegister4Float &Vec, void *Ptr)
Definition UnrealMathFPU.h:1842
FORCEINLINE VectorRegister4Float VectorCombineLow(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:1757
VectorRegister4Double VectorRegister4
Definition UnrealMathFPU.h:94
FORCEINLINE void VectorStore16(const VectorRegister4x4Float &Vec, float *Dst)
Definition UnrealMathFPU.h:582
FORCEINLINE VectorRegister4Float VectorReciprocalSqrtEstimate(const VectorRegister4Float &Vec)
Definition UnrealMathFPU.h:1295
FORCEINLINE VectorRegister4Double VectorLoadDouble1(const double *Ptr)
Definition UnrealMathFPU.h:473
FORCEINLINE void VectorMatrixMultiply(FMatrix44d *Result, const FMatrix44d *Matrix1, const FMatrix44d *Matrix2)
Definition UnrealMathFPU.h:1538
VectorRegister4Float VectorLoadAligned(const float *Ptr)
Definition UnrealMathFPU.h:451
FORCEINLINE VectorRegister4Float VectorMultiplyAdd(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2, const VectorRegister4Float &Vec3)
Definition UnrealMathFPU.h:786
VectorRegister4Int VectorRegister4i
Definition UnrealMathFPU.h:88
FORCEINLINE VectorRegister4Float VectorSelect(const VectorRegister4Float &Mask, const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:1105
FORCEINLINE VectorRegister4Float VectorExp(const VectorRegister4Float &Vec)
Definition UnrealMathFPU.h:1971
FORCEINLINE VectorRegister4Float VectorCompareGT(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:974
FORCEINLINE VectorRegister4Int VectorRoundToIntHalfToEven(const VectorRegister4Float &A)
Definition UnrealMathFPU.h:2175
FORCEINLINE VectorRegister4Double MakeVectorRegisterDoubleMask(uint64 X, uint64 Y, uint64 Z, uint64 W)
Definition UnrealMathFPU.h:206
FORCEINLINE VectorRegister4Float VectorExp2(const VectorRegister4Float &Vec)
Definition UnrealMathFPU.h:1982
FORCEINLINE VectorRegister4Float VectorASin(const VectorRegister4Float &Vec)
Definition UnrealMathFPU.h:2050
FORCEINLINE VectorRegister4Float VectorLoadTwoPairsFloat(const float *Ptr1, const float *Ptr2)
Definition UnrealMathFPU.h:503
FORCEINLINE VectorRegister4Double VectorOneDouble(void)
Definition UnrealMathFPU.h:351
FORCEINLINE VectorRegister4Float VectorReciprocalLenEstimate(const VectorRegister4Float &Vector)
Definition UnrealMathFPU.h:1375
FORCEINLINE void VectorStore(const VectorRegister4Float &Vec, float *Dst)
Definition UnrealMathFPU.h:566
#define VectorSetControlRegister(ControlStatus)
Definition UnrealMathFPU.h:1947
FORCEINLINE VectorRegister4Float VectorTransformVector(const VectorRegister4Float &VecP, const FMatrix44f *MatrixM)
Definition UnrealMathFPU.h:1619
FORCEINLINE VectorRegister4Float VectorCompareGE(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:1000
FORCEINLINE VectorRegister4Float VectorMod(const VectorRegister4Float &X, const VectorRegister4Float &Y)
Definition UnrealMathFPU.h:2185
FORCEINLINE VectorRegister4Int MakeVectorRegisterInt64(int64 X, int64 Y)
Definition UnrealMathFPU.h:307
FORCEINLINE VectorRegister4Float VectorCombineHigh(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:1740
FORCEINLINE VectorRegister4Float VectorCompareLT(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:1025
FORCEINLINE VectorRegister4Double MakeVectorRegisterDouble(uint64 X, uint64 Y, uint64 Z, uint64 W)
Definition UnrealMathFPU.h:185
VectorRegister4 VectorRegister
Definition UnrealMathFPU.h:95
FORCEINLINE float VectorGetComponentDynamic(const VectorRegister4Float &Vec, uint32 ComponentIndex)
Definition UnrealMathFPU.h:369
FORCEINLINE VectorRegister4Float VectorLog(const VectorRegister4Float &Vec)
Definition UnrealMathFPU.h:1993
FORCEINLINE VectorRegister4Float VectorSet_W0(const VectorRegister4Float &Vec)
Definition UnrealMathFPU.h:1391
#define VectorLoadSignedByte4(Ptr)
Definition UnrealMathFPU.h:1823
FORCEINLINE constexpr VectorRegister4Int MakeVectorRegisterIntConstant(int32 X, int32 Y, int32 Z, int32 W)
Definition UnrealMathFPU.h:292
FORCEINLINE int32 VectorMaskBits(const VectorRegister4Float &Vec1)
Definition UnrealMathFPU.h:1075
FORCEINLINE VectorRegister4Float VectorNegate(const VectorRegister4Float &Vec)
Definition UnrealMathFPU.h:687
FORCEINLINE VectorRegister4Float VectorNegateMultiplyAdd(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2, const VectorRegister4Float &Vec3)
Definition UnrealMathFPU.h:815
FORCEINLINE VectorRegister4Float VectorReciprocal(const VectorRegister4Float &Vec)
Definition UnrealMathFPU.h:1311
FORCEINLINE VectorRegister4Float VectorSin(const VectorRegister4Float &Vec)
Definition UnrealMathFPU.h:2015
FORCEINLINE constexpr VectorRegister2Double MakeVectorRegister2DoubleConstant(double X, double Y)
Definition UnrealMathFPU.h:302
FORCEINLINE void VectorStoreURGBA16N(const VectorRegister4Float &Vec, void *Ptr)
Definition UnrealMathFPU.h:2288
FORCEINLINE VectorRegister4Int VectorShuffleByte4(const VectorRegister4Int &Vec, const VectorRegister4Int &Mask)
Definition UnrealMathFPU.h:2515
FORCEINLINE VectorRegister4Float VectorAbs(const VectorRegister4Float &Vec)
Definition UnrealMathFPU.h:661
FORCEINLINE VectorRegister4Float VectorACos(const VectorRegister4Float &Vec)
Definition UnrealMathFPU.h:2061
FORCEINLINE VectorRegister4Float VectorAdd(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:704
FORCEINLINE VectorRegister4Int VectorDoubleToInt(const VectorRegister4Double &A)
Definition UnrealMathFPU.h:2510
FORCEINLINE VectorRegister4Float VectorFloor(const VectorRegister4Float &Vec)
Definition UnrealMathFPU.h:2142
FORCEINLINE float VectorDot3Scalar(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:861
VectorRegister4Int VectorRegisterInt
Definition UnrealMathFPU.h:96
void VectorStoreAligned(const VectorRegister4Float &Vec, float *Ptr)
Definition UnrealMathFPU.h:534
FORCEINLINE VectorRegister4Float MakeVectorRegisterFloatMask(uint32 X, uint32 Y, uint32 Z, uint32 W)
Definition UnrealMathFPU.h:201
FORCEINLINE VectorRegister4Float VectorBitwiseXor(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:1190
FORCEINLINE VectorRegister4Float VectorCeil(const VectorRegister4Float &Vec)
Definition UnrealMathFPU.h:2131
FORCEINLINE VectorRegister4Double VectorLoadFloat3_W1(const double *Ptr)
Definition UnrealMathFPU.h:439
#define VectorSwizzle(Vec, X, Y, Z, W)
Definition UnrealMathFPU.h:639
FORCEINLINE VectorRegister4Float VectorQuaternionMultiply2(const VectorRegister4Float &Quat1, const VectorRegister4Float &Quat2)
Definition UnrealMathFPU.h:1517
FORCEINLINE VectorRegister4Float VectorOneFloat(void)
Definition UnrealMathFPU.h:346
#define VectorLoadByte4(Ptr)
Definition UnrealMathFPU.h:1814
FORCEINLINE VectorRegister4Float VectorZeroFloat(void)
Definition UnrealMathFPU.h:331
#define VectorGetControlRegister()
Definition UnrealMathFPU.h:1940
FORCEINLINE VectorRegister4Float VectorATan(const VectorRegister4Float &Vec)
Definition UnrealMathFPU.h:2072
FORCEINLINE VectorRegister4Float VectorLoad(const float *Ptr)
Definition UnrealMathFPU.h:394
FORCEINLINE VectorRegister4Float VectorCross(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:1216
FORCEINLINE VectorRegister4Float VectorBitwiseOr(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:1140
FORCEINLINE VectorRegister4Int VectorFloatToInt(const VectorRegister4Float &A)
Definition UnrealMathFPU.h:2491
bool VectorContainsNaNOrInfinite(const VectorRegister4Float &Vec)
Definition UnrealMathFPU.h:1960
FORCEINLINE VectorRegister4Float VectorStep(const VectorRegister4Float &Vec)
Definition UnrealMathFPU.h:2223
VectorRegister4Float VectorRegister4f
Definition UnrealMathFPU.h:89
FORCEINLINE VectorRegister4Float VectorPow(const VectorRegister4Float &Base, const VectorRegister4Float &Exponent)
Definition UnrealMathFPU.h:1243
FORCEINLINE void VectorStoreFloat3(const VectorRegister4Float &Vec, float *Dst)
Definition UnrealMathFPU.h:594
FORCEINLINE VectorRegister4Float VectorReciprocalEstimate(const VectorRegister4Float &Vec)
Definition UnrealMathFPU.h:1327
FORCEINLINE VectorRegister4Float VectorCompareLE(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:1050
FORCEINLINE VectorRegister4Float VectorCompareEQ(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:923
FORCEINLINE void VectorStoreFloat1(const VectorRegister4Float &Vec, float *Dst)
Definition UnrealMathFPU.h:610
FORCEINLINE VectorRegister4Float MakeVectorRegisterFloat(uint32 X, uint32 Y, uint32 Z, uint32 W)
Definition UnrealMathFPU.h:175
FORCEINLINE VectorRegister4Float MakeVectorRegisterFloatFromDouble(const VectorRegister4Double &Vec4d)
Definition UnrealMathFPU.h:262
FORCEINLINE VectorRegister2Double MakeVectorRegister2Double(double X, double Y)
Definition UnrealMathFPU.h:158
#define VectorReplicate(Vec, ElementIndex)
Definition UnrealMathFPU.h:627
VectorRegister2Double VectorRegister2d
Definition UnrealMathFPU.h:91
FORCEINLINE VectorRegister4Float VectorSign(const VectorRegister4Float &Vec)
Definition UnrealMathFPU.h:2204
#define VectorLoadByte4Reverse(Ptr)
Definition UnrealMathFPU.h:1833
FORCEINLINE VectorRegister4Float VectorCompareNE(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:948
FORCEINLINE VectorRegister4Float VectorMergeVecXYZ_VecW(const VectorRegister4Float &VecXYZ, const VectorRegister4Float &VecW)
Definition UnrealMathFPU.h:1797
FORCEINLINE void VectorStoreURGB10A2N(const VectorRegister4Float &Vec, void *Ptr)
Definition UnrealMathFPU.h:1895
FORCEINLINE constexpr VectorRegister4Float MakeVectorRegisterConstant(float X, float Y, float Z, float W)
Definition UnrealMathVectorConstants.h.inl:28
float Val(const FString &Value)
Definition UnrealMath.cpp:3163
VectorRegister4Float FloatInfinity()
Definition UnrealMathVectorConstants.h.inl:118
constexpr VectorRegister4Float FloatZero
Definition UnrealMathVectorConstants.h.inl:41
constexpr VectorRegister4Float FloatOne
Definition UnrealMathVectorConstants.h.inl:40
constexpr VectorRegister4Float FloatMinusOne
Definition UnrealMathVectorConstants.h.inl:42
constexpr VectorRegister4Float OneOverTwoPi
Definition UnrealMathVectorConstants.h.inl:126
constexpr VectorRegister4Float SmallNumber
Definition UnrealMathVectorConstants.h.inl:53
constexpr VectorRegister4Double DoubleMinusOne
Definition UnrealMathVectorConstants.h.inl:60
constexpr VectorRegister4Double DOUBLE_QMULTI_SIGN_MASK2
Definition UnrealMathVectorConstants.h.inl:91
constexpr VectorRegister4Float QMULTI_SIGN_MASK0
Definition UnrealMathVectorConstants.h.inl:86
constexpr VectorRegister4Float TwoPi
Definition UnrealMathVectorConstants.h.inl:122
constexpr VectorRegister4Float QMULTI_SIGN_MASK1
Definition UnrealMathVectorConstants.h.inl:87
constexpr VectorRegister4Double DoubleSmallNumber
Definition UnrealMathVectorConstants.h.inl:71
constexpr VectorRegister4Float PiByTwo
Definition UnrealMathVectorConstants.h.inl:123
constexpr VectorRegister4Double DOUBLE_QMULTI_SIGN_MASK0
Definition UnrealMathVectorConstants.h.inl:89
constexpr VectorRegister4Float Pi
Definition UnrealMathVectorConstants.h.inl:121
constexpr VectorRegister4Float QMULTI_SIGN_MASK2
Definition UnrealMathVectorConstants.h.inl:88
constexpr VectorRegister4Float FloatOneHalf
Definition UnrealMathVectorConstants.h.inl:50
VectorRegister4Double DoubleInfinity()
Definition UnrealMathVectorConstants.h.inl:119
constexpr VectorRegister4Double DOUBLE_QMULTI_SIGN_MASK1
Definition UnrealMathVectorConstants.h.inl:90
VectorRegister4Float SignBit()
Definition UnrealMathVectorConstants.h.inl:105
constexpr VectorRegister4Double DoubleOne
Definition UnrealMathVectorConstants.h.inl:58
constexpr VectorRegister4Double DoubleZero
Definition UnrealMathVectorConstants.h.inl:59
@ V2
Definition NNEModelData.cpp:18
@ V1
Definition NNEModelData.cpp:17
FValue Div(const FValue &Lhs, const FValue &Rhs)
Definition ShaderValue.cpp:1519
UE_STRING_CLASS Result(Forward< LhsType >(Lhs), RhsLen)
Definition String.cpp.inl:732
U16 Index
Definition radfft.cpp:71
Definition UnrealMathFPU.h:133
FORCEINLINE double operator[](int32 Index) const
Definition UnrealMathFPU.h:141
double V[4]
Definition UnrealMathFPU.h:134
FORCEINLINE VectorRegister4Double ToVectorRegister() const
Definition UnrealMathFPU.h:144
Definition UnrealMathFPU.h:113
float V[4]
Definition UnrealMathFPU.h:114
FORCEINLINE float operator[](int32 Index) const
Definition UnrealMathFPU.h:121
FORCEINLINE VectorRegister4Float ToVectorRegister() const
Definition UnrealMathFPU.h:124
static CORE_API bool MatrixInverse(FMatrix44f *DstMatrix, const FMatrix44f *SrcMatrix)
Definition UnrealMath.cpp:928
static float Log2(float Value)
Definition UnrealMathUtility.h:722
Definition UnrealMathFPU.h:34
double V[2]
Definition UnrealMathFPU.h:35
Definition UnrealMathFPU.h:42
VectorRegister4Double()=default
VectorRegister2Double XY
Definition UnrealMathFPU.h:47
FORCEINLINE VectorRegister4Double & operator=(const VectorRegister4Float &From)
Definition UnrealMathFPU.h:77
VectorRegister2Double ZW
Definition UnrealMathFPU.h:48
double V[4]
Definition UnrealMathFPU.h:50
Definition UnrealMathFPU.h:20
float V[4]
Definition UnrealMathFPU.h:21
Definition UnrealMathFPU.h:28
int32 V[4]
Definition UnrealMathFPU.h:29
Definition UnrealMathFPU.h:99
Definition UnrealMathFPU.h:14