Ark Server API (ASA) - Wiki
|
#include <type_traits>
#include <arm_neon.h>
#include "Math/Float16.h"
#include "Math/UnrealMathVectorConstants.h"
Go to the source code of this file.
Classes | |
struct | VectorRegister4Double |
struct | AlignedFloat4 |
struct | AlignedDouble4 |
Namespaces | |
namespace | VectorSinConstantsNEON |
Variables | |
static const float | VectorSinConstantsNEON::p = 0.225f |
static const float | VectorSinConstantsNEON::a = 7.58946609f |
static const float | VectorSinConstantsNEON::b = 1.63384342f |
static const VectorRegister4Float | VectorSinConstantsNEON::A = MakeVectorRegisterConstant(a, a, a, a) |
static const VectorRegister4Float | VectorSinConstantsNEON::B = MakeVectorRegisterConstant(b, b, b, b) |
Definition at line 132 of file UnrealMathNeon.h.
#define VECTOR_ROUND_TOWARD_ZERO 0 |
Control status bit to round all floating point math results towards zero.
Definition at line 2418 of file UnrealMathNeon.h.
#define VectorCastFloatToInt | ( | Vec | ) | ((VectorRegister4i)vreinterpretq_s32_f32(Vec)) |
Definition at line 3026 of file UnrealMathNeon.h.
#define VectorCastIntToFloat | ( | Vec | ) | ((VectorRegister4f)vreinterpretq_f32_s32(Vec)) |
Definition at line 3025 of file UnrealMathNeon.h.
#define VectorGetComponent | ( | Vec, | |
ElementIndex ) VectorGetComponentImpl<ElementIndex>(Vec) |
Definition at line 1812 of file UnrealMathNeon.h.
#define VectorGetControlRegister | ( | ) | 0 |
Returns the control register.
Definition at line 2406 of file UnrealMathNeon.h.
#define VectorIntAbs | ( | A | ) | vabdq_s32(A, GlobalVectorConstants::IntZero) |
Definition at line 2964 of file UnrealMathNeon.h.
= a & b
Definition at line 2932 of file UnrealMathNeon.h.
= (~a) & b to match _mm_andnot_si128
Definition at line 2938 of file UnrealMathNeon.h.
#define VectorIntClamp | ( | A, | |
B, | |||
C ) VectorIntMin(VectorIntMax(A, B), C) |
Definition at line 2963 of file UnrealMathNeon.h.
Definition at line 2943 of file UnrealMathNeon.h.
Definition at line 2947 of file UnrealMathNeon.h.
Definition at line 2945 of file UnrealMathNeon.h.
Definition at line 2948 of file UnrealMathNeon.h.
Definition at line 2946 of file UnrealMathNeon.h.
#define VectorIntCompareNEQ | ( | A, | |
B ) VectorIntNot(VectorIntCompareEQ(A,B)) |
Definition at line 2944 of file UnrealMathNeon.h.
Loads 4 int32s from unaligned memory.
Ptr | Unaligned memory pointer to the 4 int32s |
Definition at line 2996 of file UnrealMathNeon.h.
#define VectorIntLoad1 | ( | Ptr | ) | vld1q_dup_s32((int32*)(Ptr)) |
Loads 1 int32 from unaligned memory into all components of a vector register.
Ptr | Unaligned memory pointer to the 4 int32s |
Definition at line 3020 of file UnrealMathNeon.h.
Loads 4 int32s from aligned memory.
Ptr | Aligned memory pointer to the 4 int32s |
Definition at line 3012 of file UnrealMathNeon.h.
Definition at line 2959 of file UnrealMathNeon.h.
= a | b
Definition at line 2934 of file UnrealMathNeon.h.
#define VectorIntSet1 | ( | F | ) | vdupq_n_s32(F) |
Definition at line 3022 of file UnrealMathNeon.h.
#define VectorIntSign | ( | A | ) | VectorIntSelect( VectorIntCompareGE(A, GlobalVectorConstants::IntZero), GlobalVectorConstants::IntOne, GlobalVectorConstants::IntMinusOne ) |
Definition at line 2966 of file UnrealMathNeon.h.
Stores a vector to memory (aligned or unaligned).
Vec | Vector to store |
Ptr | Memory pointer |
Definition at line 2988 of file UnrealMathNeon.h.
Stores a vector to memory (aligned).
Vec | Vector to store |
Ptr | Aligned Memory pointer |
Definition at line 3004 of file UnrealMathNeon.h.
Definition at line 2958 of file UnrealMathNeon.h.
#define VectorIntToFloat | ( | A | ) | vcvtq_f32_s32(A) |
Definition at line 2968 of file UnrealMathNeon.h.
= a ^ b
Definition at line 2936 of file UnrealMathNeon.h.
#define VectorOneVectorRegister | ( | ) | VectorOneDouble() |
Definition at line 163 of file UnrealMathNeon.h.
#define VectorReplicate | ( | Vec, | |
ElementIndex ) VectorReplicateImpl<ElementIndex>(Vec) |
Definition at line 761 of file UnrealMathNeon.h.
#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 2399 of file UnrealMathNeon.h.
#define VectorRound | ( | Vec | ) | vrndnq_f32(Vec) |
Definition at line 3030 of file UnrealMathNeon.h.
#define VectorSet1 | ( | F | ) | vdupq_n_f32(F) |
Definition at line 3024 of file UnrealMathNeon.h.
#define VectorSetComponent | ( | Vec, | |
ElementIndex, | |||
Scalar ) VectorSetComponentImpl<ElementIndex>(Vec, Scalar) |
Definition at line 552 of file UnrealMathNeon.h.
#define VectorSetControlRegister | ( | ControlStatus | ) |
Sets the control register.
ControlStatus | The uint32 control status value to set |
Definition at line 2413 of file UnrealMathNeon.h.
#define VectorSetZero | ( | ) | vdupq_n_s32(0) |
Definition at line 3023 of file UnrealMathNeon.h.
Definition at line 3027 of file UnrealMathNeon.h.
Definition at line 3028 of file UnrealMathNeon.h.
Definition at line 3029 of file UnrealMathNeon.h.
#define VectorStoreAlignedStreamed | ( | Vec, | |
Ptr ) VectorStoreAligned( Vec, Ptr ) |
Same as VectorStoreAligned for Neon.
Vec | Vector to store |
Ptr | Aligned memory pointer |
Definition at line 664 of file UnrealMathNeon.h.
#define VectorZeroVectorRegister | ( | ) | VectorZeroDouble() |
Definition at line 162 of file UnrealMathNeon.h.
Definition at line 211 of file UnrealMathNeon.h.
typedef int64x2_t GCC_ALIGN(16) VectorRegister2Int64 |
16-byte vector register type
Definition at line 111 of file UnrealMathNeon.h.
Definition at line 161 of file UnrealMathNeon.h.
Definition at line 216 of file UnrealMathNeon.h.
Definition at line 215 of file UnrealMathNeon.h.
Definition at line 214 of file UnrealMathNeon.h.
Definition at line 213 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double MakeVectorRegister | ( | double | X, |
double | Y, | ||
double | Z, | ||
double | W ) |
Returns a vector based on 4 doubles.
X | 1st double component |
Y | 2nd double component |
Z | 3rd double component |
W | 4th double component |
Definition at line 288 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Float MakeVectorRegister | ( | float | X, |
float | Y, | ||
float | Z, | ||
float | W ) |
Returns a vector based on 4 floats.
X | 1st float component |
Y | 2nd float component |
Z | 3rd float component |
W | 4th float component |
Definition at line 261 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Float MakeVectorRegister | ( | uint32 | X, |
uint32 | Y, | ||
uint32 | Z, | ||
uint32 | W ) |
Returns a bitwise equivalent vector based on 4 uint32s.
X | 1st uint32 component |
Y | 2nd uint32 component |
Z | 3rd uint32 component |
W | 4th uint32 component |
Definition at line 227 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister2Double MakeVectorRegister2Double | ( | double | X, |
double | Y ) |
Definition at line 332 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister2Double MakeVectorRegister2Double | ( | uint64 | X, |
uint64 | Y ) |
Definition at line 344 of file UnrealMathNeon.h.
|
constexpr |
Definition at line 125 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double MakeVectorRegisterDouble | ( | const VectorRegister2Double & | XY, |
const VectorRegister2Double & | ZW ) |
FORCEINLINE VectorRegister4Double MakeVectorRegisterDouble | ( | const VectorRegister4Float & | From | ) |
Definition at line 391 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double MakeVectorRegisterDouble | ( | double | X, |
double | Y, | ||
double | Z, | ||
double | W ) |
Definition at line 302 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double MakeVectorRegisterDouble | ( | uint64 | X, |
uint64 | Y, | ||
uint64 | Z, | ||
uint64 | W ) |
Definition at line 312 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double MakeVectorRegisterDoubleMask | ( | uint64 | X, |
uint64 | Y, | ||
uint64 | Z, | ||
uint64 | W ) |
FORCEINLINE VectorRegister4Float MakeVectorRegisterFloat | ( | float | X, |
float | Y, | ||
float | Z, | ||
float | W ) |
FORCEINLINE VectorRegister4Float MakeVectorRegisterFloat | ( | uint32 | X, |
uint32 | Y, | ||
uint32 | Z, | ||
uint32 | W ) |
Definition at line 240 of file UnrealMathNeon.h.
|
constexpr |
Definition at line 120 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Float MakeVectorRegisterFloatFromDouble | ( | const VectorRegister4Double & | Vec | ) |
Definition at line 397 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Float MakeVectorRegisterFloatMask | ( | uint32 | X, |
uint32 | Y, | ||
uint32 | Z, | ||
uint32 | W ) |
Definition at line 246 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Int MakeVectorRegisterInt | ( | int32 | X, |
int32 | Y, | ||
int32 | Z, | ||
int32 | W ) |
Returns a vector based on 4 int32.
X | 1st int32 component |
Y | 2nd int32 component |
Z | 3rd int32 component |
W | 4th int32 component |
Definition at line 365 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Int MakeVectorRegisterInt64 | ( | int64 | X, |
int64 | Y ) |
Definition at line 378 of file UnrealMathNeon.h.
|
constexpr |
Definition at line 115 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorAbs | ( | VectorRegister4Double | Vec | ) |
FORCEINLINE VectorRegister4Float VectorAbs | ( | VectorRegister4Float | Vec | ) |
Returns the absolute value (component-wise).
Vec | Source vector |
Definition at line 770 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorACos | ( | const VectorRegister4Double & | X | ) |
FORCEINLINE VectorRegister4Float VectorACos | ( | const VectorRegister4Float & | X | ) |
Definition at line 2660 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorAdd | ( | VectorRegister4Double | Vec1, |
VectorRegister4Double | Vec2 ) |
Definition at line 814 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Float VectorAdd | ( | VectorRegister4Float | Vec1, |
VectorRegister4Float | Vec2 ) |
Adds two vectors (component-wise) and returns the result.
Vec1 | 1st vector |
Vec2 | 2nd vector |
Definition at line 809 of file UnrealMathNeon.h.
FORCEINLINE int32 VectorAnyGreaterThan | ( | VectorRegister4Double | Vec1, |
VectorRegister4Double | Vec2 ) |
Definition at line 2383 of file UnrealMathNeon.h.
FORCEINLINE int32 VectorAnyGreaterThan | ( | VectorRegister4Float | Vec1, |
VectorRegister4Float | Vec2 ) |
Returns non-zero if any element in Vec1 is greater than the corresponding element in Vec2, otherwise 0.
Vec1 | 1st source vector |
Vec2 | 2nd source vector |
Definition at line 2373 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorASin | ( | const VectorRegister4Double & | X | ) |
FORCEINLINE VectorRegister4Float VectorASin | ( | const VectorRegister4Float & | X | ) |
Definition at line 2647 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorATan | ( | const VectorRegister4Double & | X | ) |
FORCEINLINE VectorRegister4Float VectorATan | ( | const VectorRegister4Float & | X | ) |
Definition at line 2673 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorATan2 | ( | const VectorRegister4Double & | X, |
const VectorRegister4Double & | Y ) |
FORCEINLINE VectorRegister4Float VectorATan2 | ( | const VectorRegister4Float & | X, |
const VectorRegister4Float & | Y ) |
Definition at line 2686 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorBitwiseAnd | ( | const VectorRegister4Double & | Vec1, |
const VectorRegister4Double & | Vec2 ) |
FORCEINLINE VectorRegister4Float VectorBitwiseAnd | ( | const VectorRegister4Float & | Vec1, |
const VectorRegister4Float & | Vec2 ) |
Combines two vectors using bitwise AND (treating each vector as a 128 bit field)
Vec1 | 1st vector |
Vec2 | 2nd vector |
Definition at line 1183 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorBitwiseOr | ( | const VectorRegister4Double & | Vec1, |
const VectorRegister4Double & | Vec2 ) |
Definition at line 1168 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Float VectorBitwiseOr | ( | const VectorRegister4Float & | Vec1, |
const VectorRegister4Float & | Vec2 ) |
Combines two vectors using bitwise OR (treating each vector as a 128 bit field)
Vec1 | 1st vector |
Vec2 | 2nd vector |
Definition at line 1163 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorBitwiseXor | ( | const VectorRegister4Double & | Vec1, |
const VectorRegister4Double & | Vec2 ) |
Definition at line 1208 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Float VectorBitwiseXor | ( | const VectorRegister4Float & | Vec1, |
const VectorRegister4Float & | Vec2 ) |
Combines two vectors using bitwise XOR (treating each vector as a 128 bit field)
Vec1 | 1st vector |
Vec2 | 2nd vector |
Definition at line 1203 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorCeil | ( | const VectorRegister4Double & | X | ) |
Definition at line 2713 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Float VectorCeil | ( | const VectorRegister4Float & | X | ) |
Definition at line 2708 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorCombineHigh | ( | const VectorRegister4Double & | Vec1, |
const VectorRegister4Double & | Vec2 ) |
Definition at line 1481 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Float VectorCombineHigh | ( | const VectorRegister4Float & | Vec1, |
const VectorRegister4Float & | Vec2 ) |
Creates a vector by combining two high components from each vector
Vec1 | Source vector1 |
Vec2 | Source vector2 |
Definition at line 1476 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorCombineLow | ( | const VectorRegister4Double & | Vec1, |
const VectorRegister4Double & | Vec2 ) |
Definition at line 1501 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Float VectorCombineLow | ( | const VectorRegister4Float & | Vec1, |
const VectorRegister4Float & | Vec2 ) |
Creates a vector by combining two low components from each vector
Vec1 | Source vector1 |
Vec2 | Source vector2 |
Definition at line 1496 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorCompareEQ | ( | const VectorRegister4Double & | Vec1, |
const VectorRegister4Double & | Vec2 ) |
FORCEINLINE VectorRegister4Float VectorCompareEQ | ( | const VectorRegister4Float & | Vec1, |
const VectorRegister4Float & | Vec2 ) |
Creates a four-part mask based on component-wise == compares of the input vectors
Vec1 | 1st vector |
Vec2 | 2nd vector |
Definition at line 1015 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorCompareGE | ( | const VectorRegister4Double & | Vec1, |
const VectorRegister4Double & | Vec2 ) |
FORCEINLINE VectorRegister4Float VectorCompareGE | ( | const VectorRegister4Float & | Vec1, |
const VectorRegister4Float & | Vec2 ) |
Creates a four-part mask based on component-wise >= compares of the input vectors
Vec1 | 1st vector |
Vec2 | 2nd vector |
Definition at line 1080 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorCompareGT | ( | const VectorRegister4Double & | Vec1, |
const VectorRegister4Double & | Vec2 ) |
Definition at line 1064 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Float VectorCompareGT | ( | const VectorRegister4Float & | Vec1, |
const VectorRegister4Float & | Vec2 ) |
Creates a four-part mask based on component-wise > compares of the input vectors
Vec1 | 1st vector |
Vec2 | 2nd vector |
Definition at line 1059 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorCompareLE | ( | const VectorRegister4Double & | Vec1, |
const VectorRegister4Double & | Vec2 ) |
FORCEINLINE VectorRegister4Float VectorCompareLE | ( | const VectorRegister4Float & | Vec1, |
const VectorRegister4Float & | Vec2 ) |
Creates a four-part mask based on component-wise <= compares of the input vectors
Vec1 | 1st vector |
Vec2 | 2nd vector |
Definition at line 1120 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorCompareLT | ( | const VectorRegister4Double & | Vec1, |
const VectorRegister4Double & | Vec2 ) |
Definition at line 1105 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Float VectorCompareLT | ( | const VectorRegister4Float & | Vec1, |
const VectorRegister4Float & | Vec2 ) |
Creates a four-part mask based on component-wise < compares of the input vectors
Vec1 | 1st vector |
Vec2 | 2nd vector |
Definition at line 1100 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorCompareNE | ( | const VectorRegister4Double & | Vec1, |
const VectorRegister4Double & | Vec2 ) |
Definition at line 1043 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Float VectorCompareNE | ( | const VectorRegister4Float & | Vec1, |
const VectorRegister4Float & | Vec2 ) |
Creates a four-part mask based on component-wise != compares of the input vectors
Vec1 | 1st vector |
Vec2 | 2nd vector |
Definition at line 1038 of file UnrealMathNeon.h.
|
inline |
|
inline |
Definition at line 2532 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorCos | ( | const VectorRegister4Double & | X | ) |
Definition at line 2849 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Float VectorCos | ( | const VectorRegister4Float & | X | ) |
Definition at line 2844 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorCross | ( | const VectorRegister4Double & | Vec1, |
const VectorRegister4Double & | Vec2 ) |
Definition at line 1546 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Float VectorCross | ( | const VectorRegister4Float & | Vec1, |
const VectorRegister4Float & | Vec2 ) |
Calculates the cross product of two vectors (XYZ components). W of the input should be 0, and will remain 0.
Vec1 | 1st vector |
Vec2 | 2nd vector |
Definition at line 1538 of file UnrealMathNeon.h.
FORCEINLINE void VectorDeinterleave | ( | VectorRegister4Double &RESTRICT | OutEvens, |
VectorRegister4Double &RESTRICT | OutOdds, | ||
const VectorRegister4Double & | Lo, | ||
const VectorRegister4Double & | Hi ) |
Definition at line 1525 of file UnrealMathNeon.h.
FORCEINLINE void VectorDeinterleave | ( | VectorRegister4Float & | OutEvens, |
VectorRegister4Float & | OutOdds, | ||
const VectorRegister4Float & | Lo, | ||
const VectorRegister4Float & | Hi ) |
Deinterleaves the components of the two given vectors such that the even components are in one vector and the odds in another.
Lo | [Even0, Odd0, Even1, Odd1] |
Hi | [Even2, Odd2, Even3, Odd3] |
OutEvens | [Even0, Even1, Even2, Even3] |
OutOdds | [Odd0, Odd1, Odd2, Odd3] |
Definition at line 1518 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorDivide | ( | VectorRegister4Double | Vec1, |
VectorRegister4Double | Vec2 ) |
FORCEINLINE VectorRegister4Float VectorDivide | ( | VectorRegister4Float | Vec1, |
VectorRegister4Float | Vec2 ) |
Divides two vectors (component-wise) and returns the result.
Vec1 | 1st vector |
Vec2 | 2nd vector |
Definition at line 877 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorDot3 | ( | const VectorRegister4Double & | Vec1, |
const VectorRegister4Double & | Vec2 ) |
Definition at line 951 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Float VectorDot3 | ( | const VectorRegister4Float & | Vec1, |
const VectorRegister4Float & | Vec2 ) |
Calculates the dot3 product of two vectors and returns a vector with the result in all 4 components. Only really efficient on Xbox 360.
Vec1 | 1st vector |
Vec2 | 2nd vector |
Definition at line 942 of file UnrealMathNeon.h.
FORCEINLINE double VectorDot3Scalar | ( | const VectorRegister4Double & | Vec1, |
const VectorRegister4Double & | Vec2 ) |
Definition at line 968 of file UnrealMathNeon.h.
FORCEINLINE float VectorDot3Scalar | ( | const VectorRegister4Float & | Vec1, |
const VectorRegister4Float & | Vec2 ) |
Definition at line 963 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorDot4 | ( | VectorRegister4Double | Vec1, |
VectorRegister4Double | Vec2 ) |
FORCEINLINE VectorRegister4Float VectorDot4 | ( | VectorRegister4Float | Vec1, |
VectorRegister4Float | Vec2 ) |
Calculates the dot4 product of two vectors and returns a vector with the result in all 4 components. Only really efficient on Xbox 360.
Vec1 | 1st vector |
Vec2 | 2nd vector |
Definition at line 987 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorExp | ( | const VectorRegister4Double & | X | ) |
FORCEINLINE VectorRegister4Float VectorExp | ( | const VectorRegister4Float & | X | ) |
Definition at line 2582 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorExp2 | ( | const VectorRegister4Double & | X | ) |
FORCEINLINE VectorRegister4Float VectorExp2 | ( | const VectorRegister4Float & | X | ) |
Definition at line 2595 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Int VectorFloatToInt | ( | const VectorRegister4Double & | A | ) |
Definition at line 2975 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Int VectorFloatToInt | ( | const VectorRegister4Float & | A | ) |
Definition at line 2970 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorFloor | ( | const VectorRegister4Double & | X | ) |
Definition at line 2726 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Float VectorFloor | ( | const VectorRegister4Float & | X | ) |
Definition at line 2721 of file UnrealMathNeon.h.
FORCEINLINE double VectorGetComponentDynamic | ( | VectorRegister4Double | Vec, |
uint32 | ElementIndex ) |
FORCEINLINE float VectorGetComponentDynamic | ( | VectorRegister4Float | Vec, |
uint32 | ElementIndex ) |
FORCEINLINE double VectorGetComponentImpl | ( | const VectorRegister4Double & | Vec | ) |
Definition at line 1801 of file UnrealMathNeon.h.
FORCEINLINE double VectorGetComponentImpl | ( | VectorRegister2Double | Vec | ) |
Definition at line 1795 of file UnrealMathNeon.h.
FORCEINLINE float VectorGetComponentImpl | ( | VectorRegister4Float | Vec | ) |
Returns a component from a vector.
Vec | Vector register |
ComponentIndex | Which component to get, X=0, Y=1, Z=2, W=3 |
Definition at line 1789 of file UnrealMathNeon.h.
|
inline |
Definition at line 3037 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Int VectorIntSelect | ( | const VectorRegister4Int & | Mask, |
const VectorRegister4Int & | Vec1, | ||
const VectorRegister4Int & | Vec2 ) |
Definition at line 2951 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorLoad | ( | const double * | Ptr | ) |
FORCEINLINE VectorRegister4Float VectorLoad | ( | const float * | Ptr | ) |
Loads 4 floats from unaligned memory.
Ptr | Unaligned memory pointer to the 4 floats |
Definition at line 465 of file UnrealMathNeon.h.
VectorRegister4Double VectorLoadAligned | ( | const double * | Ptr | ) |
Definition at line 566 of file UnrealMathNeon.h.
VectorRegister4Float VectorLoadAligned | ( | const float * | Ptr | ) |
Loads 4 floats from aligned memory.
Ptr | Aligned memory pointer to the 4 floats |
Definition at line 561 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Float VectorLoadByte4 | ( | const void * | Ptr | ) |
Loads 4 uint8s 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!
Ptr | Unaligned memory pointer to the 4 uint8s. |
Definition at line 2227 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Float VectorLoadByte4Reverse | ( | const uint8 * | Ptr | ) |
Loads 4 uint8s 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!
Ptr | Unaligned memory pointer to the 4 uint8s. |
Definition at line 2255 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorLoadDouble1 | ( | const double * | Ptr | ) |
Definition at line 582 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Float VectorLoadFloat1 | ( | const float * | Ptr | ) |
Loads 1 float from unaligned memory and replicates it to all 4 elements.
Ptr | Unaligned memory pointer to the float |
Definition at line 577 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Float VectorLoadFloat2 | ( | const float * | Ptr | ) |
Loads 2 floats from unaligned memory into X and Y and duplicates them in Z and W.
Ptr | Unaligned memory pointer to the floats |
Definition at line 483 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorLoadFloat3 | ( | const double * | Ptr | ) |
Loads 3 floats from unaligned memory and leaves W undefined.
Ptr | Unaligned memory pointer to the 3 floats |
Definition at line 494 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorLoadFloat3_W1 | ( | const double * | Ptr | ) |
Loads 3 FLOATs from unaligned memory and sets W=1.
Ptr | Unaligned memory pointer to the 3 FLOATs |
Definition at line 514 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Float VectorLoadSignedByte4 | ( | const void * | Ptr | ) |
Loads 4 int8s 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!
Ptr | Unaligned memory pointer to the 4 uint8s. |
Definition at line 2241 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Float VectorLoadSRGBA16N | ( | const 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!
Ptr | Unaligned memory pointer to the RGBA16(8 bytes). |
Definition at line 2890 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorLoadTwoPairsFloat | ( | const double * | Ptr1, |
const double * | Ptr2 ) |
Definition at line 605 of file UnrealMathNeon.h.
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.
Ptr1 | Unaligned memory pointer to the first 2 floats |
Ptr2 | Unaligned memory pointer to the second 2 floats |
Definition at line 598 of file UnrealMathNeon.h.
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!
Ptr | Unaligned memory pointer to the RGB10A2(4 bytes). |
Definition at line 2329 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Float VectorLoadURGBA16N | ( | const uint16 * | E | ) |
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!
Ptr | Unaligned memory pointer to the RGBA16(8 bytes). |
Definition at line 2872 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorLog | ( | const VectorRegister4Double & | X | ) |
FORCEINLINE VectorRegister4Float VectorLog | ( | const VectorRegister4Float & | X | ) |
Definition at line 2608 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorLog2 | ( | const VectorRegister4Double & | X | ) |
FORCEINLINE VectorRegister4Float VectorLog2 | ( | const VectorRegister4Float & | X | ) |
Definition at line 2621 of file UnrealMathNeon.h.
FORCEINLINE uint32 VectorMaskBits | ( | VectorRegister4Double | VecMask | ) |
Definition at line 1459 of file UnrealMathNeon.h.
FORCEINLINE uint32 VectorMaskBits | ( | VectorRegister4Float | VecMask | ) |
Returns an integer bit-mask (0x00 - 0x0f) based on the sign-bit for each component in a vector.
VecMask | Vector |
Definition at line 1451 of file UnrealMathNeon.h.
FORCEINLINE void VectorMatrixInverse | ( | FMatrix44d * | DstMatrix, |
const FMatrix44d * | SrcMatrix ) |
Definition at line 2016 of file UnrealMathNeon.h.
FORCEINLINE void VectorMatrixInverse | ( | FMatrix44f * | DstMatrix, |
const FMatrix44f * | SrcMatrix ) |
Calculate the inverse of an FMatrix.
DstMatrix | FMatrix pointer to where the result should be stored |
SrcMatrix | FMatrix pointer to the Matrix to be inversed |
Definition at line 1932 of file UnrealMathNeon.h.
FORCEINLINE void VectorMatrixMultiply | ( | FMatrix44d * | Result, |
const FMatrix44d * | Matrix1, | ||
const FMatrix44d * | Matrix2 ) |
Definition at line 1866 of file UnrealMathNeon.h.
FORCEINLINE void VectorMatrixMultiply | ( | FMatrix44f * | Result, |
const FMatrix44f * | Matrix1, | ||
const FMatrix44f * | Matrix2 ) |
Multiplies two 4x4 matrices.
Result | Pointer to where the result should be stored |
Matrix1 | Pointer to the first matrix |
Matrix2 | Pointer to the second matrix |
Definition at line 1833 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorMax | ( | VectorRegister4Double | Vec1, |
VectorRegister4Double | Vec2 ) |
Definition at line 2192 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Float VectorMax | ( | VectorRegister4Float | Vec1, |
VectorRegister4Float | Vec2 ) |
Returns the maximum values of two vectors (component-wise).
Vec1 | 1st vector |
Vec2 | 2nd vector |
Definition at line 2187 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorMergeVecXYZ_VecW | ( | const VectorRegister4Double & | VecXYZ, |
const VectorRegister4Double & | VecW ) |
Definition at line 2212 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Float VectorMergeVecXYZ_VecW | ( | const VectorRegister4Float & | VecXYZ, |
const VectorRegister4Float & | VecW ) |
Merges the XYZ components of one vector with the W component of another vector and returns the result.
VecXYZ | Source vector for XYZ_ |
VecW | Source register for ___W (note: the fourth component is used, not the first) |
Definition at line 2207 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorMin | ( | VectorRegister4Double | Vec1, |
VectorRegister4Double | Vec2 ) |
Definition at line 2172 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Float VectorMin | ( | VectorRegister4Float | Vec1, |
VectorRegister4Float | Vec2 ) |
Returns the minimum values of two vectors (component-wise).
Vec1 | 1st vector |
Vec2 | 2nd vector |
Definition at line 2167 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorMod | ( | const VectorRegister4Double & | X, |
const VectorRegister4Double & | Y ) |
FORCEINLINE VectorRegister4Float VectorMod | ( | const VectorRegister4Float & | X, |
const VectorRegister4Float & | Y ) |
FORCEINLINE VectorRegister2Double VectorMultiply | ( | VectorRegister2Double | Vec1, |
VectorRegister2Double | Vec2 ) |
Definition at line 856 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorMultiply | ( | VectorRegister4Double | Vec1, |
VectorRegister4Double | Vec2 ) |
FORCEINLINE VectorRegister4Float VectorMultiply | ( | VectorRegister4Float | Vec1, |
VectorRegister4Float | Vec2 ) |
Multiplies two vectors (component-wise) and returns the result.
Vec1 | 1st vector |
Vec2 | 2nd vector |
Definition at line 851 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorMultiplyAdd | ( | VectorRegister4Double | Vec1, |
VectorRegister4Double | Vec2, | ||
VectorRegister4Double | Acc ) |
FORCEINLINE VectorRegister4Float VectorMultiplyAdd | ( | VectorRegister4Float | Vec1, |
VectorRegister4Float | Vec2, | ||
VectorRegister4Float | Acc ) |
Multiplies two vectors (component-wise), adds in the third vector and returns the result.
Vec1 | 1st vector |
Vec2 | 2nd vector |
Acc | 3rd vector |
Definition at line 899 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorNegate | ( | VectorRegister4Double | Vec | ) |
Definition at line 794 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Float VectorNegate | ( | VectorRegister4Float | Vec | ) |
Returns the negated value (component-wise).
Vec | Source vector |
Definition at line 789 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorNegateMultiplyAdd | ( | VectorRegister4Double | Vec1, |
VectorRegister4Double | Vec2, | ||
VectorRegister4Double | Sub ) |
FORCEINLINE VectorRegister4Float VectorNegateMultiplyAdd | ( | VectorRegister4Float | Vec1, |
VectorRegister4Float | Vec2, | ||
VectorRegister4Float | Sub ) |
Multiplies two vectors (component-wise) and subtracts the result from the third vector.
Vec1 | 1st vector |
Vec2 | 2nd vector |
Sub | 3rd vector |
Definition at line 920 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorOneDouble | ( | void | ) |
Definition at line 451 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Float VectorOneFloat | ( | void | ) |
Returns a vector with all ones.
Definition at line 446 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorPow | ( | const VectorRegister4Double & | Base, |
const VectorRegister4Double & | Exponent ) |
FORCEINLINE VectorRegister4Float VectorPow | ( | const VectorRegister4Float & | Base, |
const VectorRegister4Float & | Exponent ) |
Calculates x raised to the power of y (component-wise).
Base | Base vector |
Exponent | Exponent vector |
Definition at line 1561 of file UnrealMathNeon.h.
FORCEINLINE void VectorQuaternionMultiply | ( | VectorRegister4Double *RESTRICT | Result, |
const VectorRegister4Double *RESTRICT | Quat1, | ||
const VectorRegister4Double *RESTRICT | Quat2 ) |
FORCEINLINE void VectorQuaternionMultiply | ( | VectorRegister4Float *RESTRICT | Result, |
const VectorRegister4Float *RESTRICT | Quat1, | ||
const VectorRegister4Float *RESTRICT | Quat2 ) |
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).
Result | Pointer to where the result Quat1 * Quat2 should be stored |
Quat1 | Pointer to the first quaternion (must not be the destination) |
Quat2 | Pointer to the second quaternion (must not be the destination) |
Definition at line 2461 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorQuaternionMultiply2 | ( | const VectorRegister4Double & | Quat1, |
const VectorRegister4Double & | Quat2 ) |
Definition at line 2441 of file UnrealMathNeon.h.
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).
Quat1 | Pointer to the first quaternion |
Quat2 | Pointer to the second quaternion |
Definition at line 2431 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorReciprocal | ( | const VectorRegister4Double & | Vec | ) |
Definition at line 1631 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Float VectorReciprocal | ( | const VectorRegister4Float & | Vec | ) |
Computes the reciprocal of a vector (component-wise) and returns the result.
Vec | 1st vector |
Definition at line 1612 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorReciprocalEstimate | ( | const VectorRegister4Double & | Vec | ) |
Definition at line 1597 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Float VectorReciprocalEstimate | ( | const VectorRegister4Float & | Vec | ) |
Computes an estimate of the reciprocal of a vector (component-wise) and returns the result.
Vec | 1st vector |
Definition at line 1592 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorReciprocalLen | ( | const VectorRegister4Double & | Vector | ) |
FORCEINLINE VectorRegister4Float VectorReciprocalLen | ( | const VectorRegister4Float & | Vector | ) |
Return Reciprocal Length of the vector
Vector | Vector |
Definition at line 1719 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorReciprocalLenEstimate | ( | const VectorRegister4Double & | Vector | ) |
FORCEINLINE VectorRegister4Float VectorReciprocalLenEstimate | ( | const VectorRegister4Float & | Vector | ) |
Return Reciprocal Length of the vector (estimate)
Vector | Vector |
Definition at line 1735 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorReciprocalSqrt | ( | const VectorRegister4Double & | Vec | ) |
Definition at line 1694 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Float VectorReciprocalSqrt | ( | const VectorRegister4Float & | Vec | ) |
Return the reciprocal of the square root of each component
Vector | Vector |
Definition at line 1681 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorReciprocalSqrtEstimate | ( | const VectorRegister4Double & | Vec | ) |
FORCEINLINE VectorRegister4Float VectorReciprocalSqrtEstimate | ( | const VectorRegister4Float & | Vec | ) |
Returns an estimate of 1/sqrt(c) for each component of the vector
Vector | Vector |
Definition at line 1662 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister2Double VectorReplicateImpl | ( | const VectorRegister2Double & | Vec | ) |
Definition at line 738 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorReplicateImpl | ( | const VectorRegister4Double & | Vec | ) |
Definition at line 744 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Float VectorReplicateImpl | ( | const VectorRegister4Float & | Vec | ) |
Replicates one element into all four elements and returns the new vector. Must be a #define for ELementIndex to be a constant integer
Vec | Source vector |
ElementIndex | Index (0-3) of the element to replicate |
Definition at line 732 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Int VectorRoundToIntHalfToEven | ( | const VectorRegister4Float & | Vec | ) |
Definition at line 3032 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorSelect | ( | const VectorRegister4Double & | Mask, |
const VectorRegister4Double & | Vec1, | ||
const VectorRegister4Double & | Vec2 ) |
FORCEINLINE VectorRegister4Float VectorSelect | ( | const VectorRegister4Float & | Mask, |
const VectorRegister4Float & | Vec1, | ||
const VectorRegister4Float & | Vec2 ) |
Does a bitwise vector selection based on a mask (e.g., created from VectorCompareXX)
Mask | Mask (when 1: use the corresponding bit from Vec1 otherwise from Vec2) |
Vec1 | 1st vector |
Vec2 | 2nd vector |
Definition at line 1143 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorSet_W0 | ( | const VectorRegister4Double & | Vec | ) |
Definition at line 1757 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Float VectorSet_W0 | ( | const VectorRegister4Float & | Vec | ) |
Loads XYZ and sets W=0
Vector | VectorRegister4Float |
Definition at line 1752 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorSet_W1 | ( | const VectorRegister4Double & | Vec | ) |
Definition at line 1774 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Float VectorSet_W1 | ( | const VectorRegister4Float & | Vec | ) |
Loads XYZ and sets W=1.
Vector | VectorRegister4Float |
Definition at line 1769 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister2Double VectorSetComponentImpl | ( | const VectorRegister2Double & | Vec, |
double | Scalar ) |
Definition at line 529 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorSetComponentImpl | ( | const VectorRegister4Double & | Vec, |
double | Scalar ) |
Definition at line 535 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Float VectorSetComponentImpl | ( | const VectorRegister4Float & | Vec, |
float | Scalar ) |
Sets a single component of a vector. Must be a define since ElementIndex needs to be a constant integer
Definition at line 523 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorSetFloat1 | ( | double | X | ) |
Definition at line 624 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Float VectorSetFloat1 | ( | float | X | ) |
Propagates passed in float to all registers.
X | float component |
Definition at line 619 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorShuffle | ( | VectorRegister4Double | V1, |
VectorRegister4Double | V2, | ||
uint32 | PermuteX, | ||
uint32 | PermuteY, | ||
uint32 | PermuteZ, | ||
uint32 | PermuteW ) |
Definition at line 1385 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Float VectorShuffle | ( | VectorRegister4Float | V1, |
VectorRegister4Float | V2, | ||
uint32 | PermuteX, | ||
uint32 | PermuteY, | ||
uint32 | PermuteZ, | ||
uint32 | PermuteW ) |
Creates a vector through selecting two components from each vector via a shuffle mask.
Vec1 | Source vector1 |
Vec2 | Source vector2 |
X | Index for which component of Vector1 to use for X (literal 0-3) |
Y | Index for which component of Vector1 to use for Y (literal 0-3) |
Z | Index for which component of Vector2 to use for Z (literal 0-3) |
W | Index for which component of Vector2 to use for W (literal 0-3) |
Definition at line 1346 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorSign | ( | const VectorRegister4Double & | X | ) |
FORCEINLINE VectorRegister4Float VectorSign | ( | const VectorRegister4Float & | X | ) |
Definition at line 2781 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorSin | ( | const VectorRegister4Double & | X | ) |
Definition at line 2834 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Float VectorSin | ( | const VectorRegister4Float & | X | ) |
Definition at line 2814 of file UnrealMathNeon.h.
FORCEINLINE void VectorSinCos | ( | VectorRegister4Double *RESTRICT | VSinAngles, |
VectorRegister4Double *RESTRICT | VCosAngles, | ||
const VectorRegister4Double *RESTRICT | VAngles ) |
FORCEINLINE void VectorSinCos | ( | VectorRegister4Float *RESTRICT | VSinAngles, |
VectorRegister4Float *RESTRICT | VCosAngles, | ||
const VectorRegister4Float *RESTRICT | VAngles ) |
Computes the sine and cosine of each component of a Vector.
VSinAngles | VectorRegister4Float Pointer to where the Sin result should be stored |
VCosAngles | VectorRegister4Float Pointer to where the Cos result should be stored |
VAngles | VectorRegister4Float Pointer to the input angles |
Definition at line 2478 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorSqrt | ( | const VectorRegister4Double & | Vec | ) |
Definition at line 1648 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Float VectorSqrt | ( | const VectorRegister4Float & | Vec | ) |
Return the square root of each component
Vector | Vector |
Definition at line 1643 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorStep | ( | const VectorRegister4Double & | X | ) |
FORCEINLINE VectorRegister4Float VectorStep | ( | const VectorRegister4Float & | X | ) |
Definition at line 2793 of file UnrealMathNeon.h.
FORCEINLINE void VectorStore | ( | const VectorRegister4Double & | Vec, |
double * | Ptr ) |
Definition at line 677 of file UnrealMathNeon.h.
FORCEINLINE void VectorStore | ( | const VectorRegister4Float & | Vec, |
float * | Ptr ) |
Stores a vector to memory (aligned or unaligned).
Vec | Vector to store |
Ptr | Memory pointer |
Definition at line 672 of file UnrealMathNeon.h.
void VectorStoreAligned | ( | const VectorRegister4Double & | Vec, |
double * | Dst ) |
void VectorStoreAligned | ( | const VectorRegister4Float & | Vec, |
float * | Ptr ) |
Stores a vector to aligned memory.
Vec | Vector to store |
Ptr | Aligned memory pointer |
Definition at line 638 of file UnrealMathNeon.h.
FORCEINLINE void VectorStoreAligned | ( | VectorRegister4Float | Vec, |
FFloat16 * | Ptr ) |
FORCEINLINE void VectorStoreByte4 | ( | VectorRegister4Float | Vec, |
void * | Ptr ) |
Converts the 4 floats in the vector to 4 uint8s, 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!
Vec | Vector containing 4 floats |
Ptr | Unaligned memory pointer to store the 4 uint8s. |
Definition at line 2269 of file UnrealMathNeon.h.
FORCEINLINE void VectorStoreFloat1 | ( | const VectorRegister4Double & | Vec, |
double * | Ptr ) |
Definition at line 718 of file UnrealMathNeon.h.
FORCEINLINE void VectorStoreFloat1 | ( | VectorRegister4Float | Vec, |
float * | Ptr ) |
Stores the X component of a vector to unaligned memory.
Vec | Vector to store X |
Ptr | Unaligned memory pointer |
Definition at line 713 of file UnrealMathNeon.h.
FORCEINLINE void VectorStoreFloat3 | ( | const VectorRegister4Double & | Vec, |
double * | Ptr ) |
Stores the XYZ components of a double vector pair to unaligned memory.
Vec | Vector to store XYZ |
Ptr | Unaligned memory pointer |
Definition at line 700 of file UnrealMathNeon.h.
FORCEINLINE void VectorStoreFloat3 | ( | const VectorRegister4Float & | Vec, |
float * | Ptr ) |
Stores the XYZ components of a vector to unaligned memory.
Vec | Vector to store XYZ |
Ptr | Unaligned memory pointer |
Definition at line 688 of file UnrealMathNeon.h.
FORCEINLINE void VectorStoreHalf4 | ( | VectorRegister4Float | Vec, |
void *RESTRICT | Ptr ) |
Converts the 4 floats in the vector to 4 fp16 and stores based off bool to [un]aligned memory.
Vec | Vector containing 4 floats |
Ptr | Memory pointer to store the 4 fp16's. |
Definition at line 2303 of file UnrealMathNeon.h.
FORCEINLINE void VectorStoreSignedByte4 | ( | VectorRegister4Float | Vec, |
void * | Ptr ) |
Converts the 4 floats in the vector to 4 int8s, 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!
Vec | Vector containing 4 floats |
Ptr | Unaligned memory pointer to store the 4 uint8s. |
Definition at line 2286 of file UnrealMathNeon.h.
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!
Vec | Vector containing 4 FLOATs |
Ptr | Unaligned memory pointer to store the packed RGB10A2(4 bytes). |
Definition at line 2349 of file UnrealMathNeon.h.
FORCEINLINE void VectorStoreURGBA16N | ( | const VectorRegister4Float & | Vec, |
uint16 * | Out ) |
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!
Vec | Vector containing 4 FLOATs |
Ptr | Unaligned memory pointer to store the packed RGBA16(8 bytes). |
Definition at line 2910 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorSubtract | ( | VectorRegister4Double | Vec1, |
VectorRegister4Double | Vec2 ) |
Definition at line 835 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Float VectorSubtract | ( | VectorRegister4Float | Vec1, |
VectorRegister4Float | Vec2 ) |
Subtracts a vector from another (component-wise) and returns the result.
Vec1 | 1st vector |
Vec2 | 2nd vector |
Definition at line 830 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorSwizzle | ( | VectorRegister4Double | V, |
uint32 | E0, | ||
uint32 | E1, | ||
uint32 | E2, | ||
uint32 | E3 ) |
Definition at line 1259 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Float VectorSwizzle | ( | VectorRegister4Float | V, |
uint32 | E0, | ||
uint32 | E1, | ||
uint32 | E2, | ||
uint32 | E3 ) |
Swizzles the 4 components of a vector and returns the result.
Vec | Source vector |
X | Index for which component to use for X (literal 0-3) |
Y | Index for which component to use for Y (literal 0-3) |
Z | Index for which component to use for Z (literal 0-3) |
W | Index for which component to use for W (literal 0-3) |
Definition at line 1228 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorTan | ( | const VectorRegister4Double & | X | ) |
FORCEINLINE VectorRegister4Float VectorTan | ( | const VectorRegister4Float & | X | ) |
Definition at line 2634 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorTransformVector | ( | const VectorRegister4Double & | VecP, |
const FMatrix44d * | MatrixM ) |
Definition at line 2140 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Float VectorTransformVector | ( | const VectorRegister4Float & | VecP, |
const FMatrix44d * | MatrixM ) |
Definition at line 2120 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Float VectorTransformVector | ( | const VectorRegister4Float & | VecP, |
const FMatrix44f * | MatrixM ) |
Calculate Homogeneous transform.
VecP | VectorRegister4Float |
MatrixM | FMatrix pointer to the Matrix to apply transform |
Definition at line 2107 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorTruncate | ( | const VectorRegister4Double & | X | ) |
FORCEINLINE VectorRegister4Float VectorTruncate | ( | const VectorRegister4Float & | X | ) |
Definition at line 2734 of file UnrealMathNeon.h.
FORCEINLINE VectorRegister4Double VectorZeroDouble | ( | void | ) |
FORCEINLINE VectorRegister4Float VectorZeroFloat | ( | void | ) |
Returns a vector with all zeros.
Definition at line 429 of file UnrealMathNeon.h.