70 V[0] = FloatVector.
V[0];
71 V[1] = FloatVector.
V[1];
72 V[2] = FloatVector.
V[2];
73 V[3] = FloatVector.
V[3];
151#define VectorZeroVectorRegister() VectorZeroDouble()
152#define VectorOneVectorRegister() VectorOneDouble()
155#define DECLARE_VECTOR_REGISTER(X, Y, Z, W) MakeVectorRegister(X, Y, Z, W)
363template <u
int32 ComponentIndex>
366 return Vec.
V[ComponentIndex];
371 return Vec.V[ComponentIndex];
374template <u
int32 ComponentIndex>
377 return Vec.V[ComponentIndex];
382 return Vec.V[ComponentIndex];
385#define VectorGetComponent(Vec, ComponentIndex) VectorGetComponentImpl<ComponentIndex>(Vec)
627#define VectorReplicate( Vec, ElementIndex ) MakeVectorRegister( (Vec).V[ElementIndex], (Vec).V[ElementIndex], (Vec).V[ElementIndex], (Vec).V[ElementIndex] )
639#define VectorSwizzle( Vec, X, Y, Z, W ) MakeVectorRegister( (Vec).V[X], (Vec).V[Y], (Vec).V[Z], (Vec).V[W] )
652#define VectorShuffle( Vec1, Vec2, X, Y, Z, W ) MakeVectorRegister( (Vec1).V[X], (Vec1).V[Y], (Vec2).V[Z], (Vec2).V[W] )
665 Vec2.V[1] = FMath::Abs(
Vec.V[1]);
666 Vec2.V[2] = FMath::Abs(
Vec.V[2]);
667 Vec2.V[3] = FMath::Abs(
Vec.V[3]);
675 Vec2.V[1] = FMath::Abs(
Vec.V[1]);
676 Vec2.V[2] = FMath::Abs(
Vec.V[2]);
677 Vec2.V[3] = FMath::Abs(
Vec.V[3]);
986 uint64(std::isgreater(
Vec1.V[0],
Vec2.V[0]) ? 0xFFFFFFFFFFFFFFFF : 0),
987 uint64(std::isgreater(
Vec1.V[1],
Vec2.V[1]) ? 0xFFFFFFFFFFFFFFFF : 0),
988 uint64(std::isgreater(
Vec1.V[2],
Vec2.V[2]) ? 0xFFFFFFFFFFFFFFFF : 0),
989 uint64(std::isgreater(
Vec1.V[3],
Vec2.V[3]) ? 0xFFFFFFFFFFFFFFFF : 0));
1003 uint32(std::isgreaterequal(
Vec1.V[0],
Vec2.V[0]) ? 0xFFFFFFFF : 0),
1004 uint32(std::isgreaterequal(
Vec1.V[1],
Vec2.V[1]) ? 0xFFFFFFFF : 0),
1005 uint32(std::isgreaterequal(
Vec1.V[2],
Vec2.V[2]) ? 0xFFFFFFFF : 0),
1006 uint32(std::isgreaterequal(
Vec1.V[3],
Vec2.V[3]) ? 0xFFFFFFFF : 0));
1012 uint64(std::isgreaterequal(
Vec1.V[0],
Vec2.V[0]) ? 0xFFFFFFFFFFFFFFFF : 0),
1013 uint64(std::isgreaterequal(
Vec1.V[1],
Vec2.V[1]) ? 0xFFFFFFFFFFFFFFFF : 0),
1014 uint64(std::isgreaterequal(
Vec1.V[2],
Vec2.V[2]) ? 0xFFFFFFFFFFFFFFFF : 0),
1015 uint64(std::isgreaterequal(
Vec1.V[3],
Vec2.V[3]) ? 0xFFFFFFFFFFFFFFFF : 0));
1037 uint64(std::isless(
Vec1.V[0],
Vec2.V[0]) ? 0xFFFFFFFFFFFFFFFF : 0),
1038 uint64(std::isless(
Vec1.V[1],
Vec2.V[1]) ? 0xFFFFFFFFFFFFFFFF : 0),
1039 uint64(std::isless(
Vec1.V[2],
Vec2.V[2]) ? 0xFFFFFFFFFFFFFFFF : 0),
1040 uint64(std::isless(
Vec1.V[3],
Vec2.V[3]) ? 0xFFFFFFFFFFFFFFFF : 0));
1056 uint32(std::islessequal(
Vec1.V[3],
Vec2.V[3]) ? 0xFFFFFFFF : 0));
1062 uint64(std::islessequal(
Vec1.V[0],
Vec2.V[0]) ? 0xFFFFFFFFFFFFFFFF : 0),
1063 uint64(std::islessequal(
Vec1.V[1],
Vec2.V[1]) ? 0xFFFFFFFFFFFFFFFF : 0),
1064 uint64(std::islessequal(
Vec1.V[2],
Vec2.V[2]) ? 0xFFFFFFFFFFFFFFFF : 0),
1065 uint64(std::islessequal(
Vec1.V[3],
Vec2.V[3]) ? 0xFFFFFFFFFFFFFFFF : 0));
1079 return ((V1[0] >> 31)) |
1080 ((V1[1] >> 30) & 2) |
1081 ((V1[2] >> 29) & 4) |
1082 ((V1[3] >> 28) & 8);
1089 return ((V1[0] >> 63)) |
1090 ((V1[1] >> 62) & 2) |
1091 ((V1[2] >> 61) & 4) |
1092 ((V1[3] >> 60) & 8);
1112 V2[0] ^ (M[0] & (V2[0] ^ V1[0])),
1113 V2[1] ^ (M[1] & (V2[1] ^ V1[1])),
1114 V2[2] ^ (M[2] & (V2[2] ^ V1[2])),
1115 V2[3] ^ (M[3] & (V2[3] ^ V1[3]))
1126 V2[0] ^ (M[0] & (V2[0] ^ V1[0])),
1127 V2[1] ^ (M[1] & (V2[1] ^ V1[1])),
1128 V2[2] ^ (M[2] & (V2[2] ^ V1[2])),
1129 V2[3] ^ (M[3] & (V2[3] ^ V1[3]))
1246 Vec.
V[0] = FMath::Pow(
Base.V[0], Exponent.
V[0]);
1247 Vec.V[1] = FMath::Pow(
Base.V[1], Exponent.
V[1]);
1248 Vec.V[2] = FMath::Pow(
Base.V[2], Exponent.
V[2]);
1249 Vec.V[3] = FMath::Pow(
Base.V[3], Exponent.
V[3]);
1256 Vec.
V[0] = FMath::Pow(
Base.V[0], Exponent.
V[0]);
1257 Vec.V[1] = FMath::Pow(
Base.V[1], Exponent.
V[1]);
1258 Vec.V[2] = FMath::Pow(
Base.V[2], Exponent.
V[2]);
1259 Vec.V[3] = FMath::Pow(
Base.V[3], Exponent.
V[3]);
1346 float rlen = 1.0f / FMath::Sqrt(Len.
V[0]);
1359 double rlen = 1.0 / FMath::Sqrt(Len.
V[0]);
1419#define USE_FAST_QUAT_MUL 1
1438#if USE_FAST_QUAT_MUL
1439 const float T0 = (
A[2] -
A[1]) * (
B[1] -
B[2]);
1440 const float T1 = (
A[3] +
A[0]) * (
B[3] +
B[0]);
1441 const float T2 = (
A[3] -
A[0]) * (
B[1] +
B[2]);
1442 const float T3 = (
A[1] +
A[2]) * (
B[3] -
B[0]);
1443 const float T4 = (
A[2] -
A[0]) * (
B[0] -
B[1]);
1444 const float T5 = (
A[2] +
A[0]) * (
B[0] +
B[1]);
1445 const float T6 = (
A[3] +
A[1]) * (
B[3] -
B[2]);
1446 const float T7 = (
A[3] -
A[1]) * (
B[3] +
B[2]);
1448 const float T9 = 0.5f * (
T4 +
T8);
1450 R[0] = T1 +
T9 -
T8;
1453 R[3] = T0 +
T9 -
T5;
1456 const float TX =
A[3]*
B[0] +
A[0]*
B[3] +
A[1]*
B[2] -
A[2]*
B[1];
1457 const float TY =
A[3]*
B[1] -
A[0]*
B[2] +
A[1]*
B[3] +
A[2]*
B[0];
1458 const float TZ =
A[3]*
B[2] +
A[0]*
B[1] -
A[1]*
B[0] +
A[2]*
B[3];
1459 const float TW =
A[3]*
B[3] -
A[0]*
B[0] -
A[1]*
B[1] -
A[2]*
B[2];
1471 typedef double Double4[4];
1472 const Double4&
A = *((
const Double4*)
Quat1);
1473 const Double4&
B = *((
const Double4*)
Quat2);
1474 Double4&
R = *((Double4*)Result);
1476#if USE_FAST_QUAT_MUL
1477 const double T0 = (
A[2] -
A[1]) * (
B[1] -
B[2]);
1478 const double T1 = (
A[3] +
A[0]) * (
B[3] +
B[0]);
1479 const double T2 = (
A[3] -
A[0]) * (
B[1] +
B[2]);
1480 const double T3 = (
A[1] +
A[2]) * (
B[3] -
B[0]);
1481 const double T4 = (
A[2] -
A[0]) * (
B[0] -
B[1]);
1482 const double T5 = (
A[2] +
A[0]) * (
B[0] +
B[1]);
1483 const double T6 = (
A[3] +
A[1]) * (
B[3] -
B[2]);
1484 const double T7 = (
A[3] -
A[1]) * (
B[3] +
B[2]);
1486 const double T9 = 0.5 * (
T4 +
T8);
1488 R[0] = T1 +
T9 -
T8;
1491 R[3] = T0 +
T9 -
T5;
1494 const double TX =
A[3] *
B[0] +
A[0] *
B[3] +
A[1] *
B[2] -
A[2] *
B[1];
1495 const double TY =
A[3] *
B[1] -
A[0] *
B[2] +
A[1] *
B[3] +
A[2] *
B[0];
1496 const double TZ =
A[3] *
B[2] +
A[0] *
B[1] -
A[1] *
B[0] +
A[2] *
B[3];
1497 const double TW =
A[3] *
B[3] -
A[0] *
B[0] -
A[1] *
B[1] -
A[2] *
B[2];
1540 typedef double Double4x4[4][4];
1541 const Double4x4&
A = *((
const Double4x4*)
Matrix1);
1542 const Double4x4&
B = *((
const Double4x4*)
Matrix2);
1544 Temp[0][0] =
A[0][0] *
B[0][0] +
A[0][1] *
B[1][0] +
A[0][2] *
B[2][0] +
A[0][3] *
B[3][0];
1545 Temp[0][1] =
A[0][0] *
B[0][1] +
A[0][1] *
B[1][1] +
A[0][2] *
B[2][1] +
A[0][3] *
B[3][1];
1546 Temp[0][2] =
A[0][0] *
B[0][2] +
A[0][1] *
B[1][2] +
A[0][2] *
B[2][2] +
A[0][3] *
B[3][2];
1547 Temp[0][3] =
A[0][0] *
B[0][3] +
A[0][1] *
B[1][3] +
A[0][2] *
B[2][3] +
A[0][3] *
B[3][3];
1549 Temp[1][0] =
A[1][0] *
B[0][0] +
A[1][1] *
B[1][0] +
A[1][2] *
B[2][0] +
A[1][3] *
B[3][0];
1550 Temp[1][1] =
A[1][0] *
B[0][1] +
A[1][1] *
B[1][1] +
A[1][2] *
B[2][1] +
A[1][3] *
B[3][1];
1551 Temp[1][2] =
A[1][0] *
B[0][2] +
A[1][1] *
B[1][2] +
A[1][2] *
B[2][2] +
A[1][3] *
B[3][2];
1552 Temp[1][3] =
A[1][0] *
B[0][3] +
A[1][1] *
B[1][3] +
A[1][2] *
B[2][3] +
A[1][3] *
B[3][3];
1554 Temp[2][0] =
A[2][0] *
B[0][0] +
A[2][1] *
B[1][0] +
A[2][2] *
B[2][0] +
A[2][3] *
B[3][0];
1555 Temp[2][1] =
A[2][0] *
B[0][1] +
A[2][1] *
B[1][1] +
A[2][2] *
B[2][1] +
A[2][3] *
B[3][1];
1556 Temp[2][2] =
A[2][0] *
B[0][2] +
A[2][1] *
B[1][2] +
A[2][2] *
B[2][2] +
A[2][3] *
B[3][2];
1557 Temp[2][3] =
A[2][0] *
B[0][3] +
A[2][1] *
B[1][3] +
A[2][2] *
B[2][3] +
A[2][3] *
B[3][3];
1559 Temp[3][0] =
A[3][0] *
B[0][0] +
A[3][1] *
B[1][0] +
A[3][2] *
B[2][0] +
A[3][3] *
B[3][0];
1560 Temp[3][1] =
A[3][0] *
B[0][1] +
A[3][1] *
B[1][1] +
A[3][2] *
B[2][1] +
A[3][3] *
B[3][1];
1561 Temp[3][2] =
A[3][0] *
B[0][2] +
A[3][1] *
B[1][2] +
A[3][2] *
B[2][2] +
A[3][3] *
B[3][2];
1562 Temp[3][3] =
A[3][0] *
B[0][3] +
A[3][1] *
B[1][3] +
A[3][2] *
B[2][3] +
A[3][3] *
B[3][3];
1563 memcpy(Result, &Temp, 16 *
sizeof(
double));
1572 Temp[0][0] =
A[0][0] *
B[0][0] +
A[0][1] *
B[1][0] +
A[0][2] *
B[2][0] +
A[0][3] *
B[3][0];
1573 Temp[0][1] =
A[0][0] *
B[0][1] +
A[0][1] *
B[1][1] +
A[0][2] *
B[2][1] +
A[0][3] *
B[3][1];
1574 Temp[0][2] =
A[0][0] *
B[0][2] +
A[0][1] *
B[1][2] +
A[0][2] *
B[2][2] +
A[0][3] *
B[3][2];
1575 Temp[0][3] =
A[0][0] *
B[0][3] +
A[0][1] *
B[1][3] +
A[0][2] *
B[2][3] +
A[0][3] *
B[3][3];
1577 Temp[1][0] =
A[1][0] *
B[0][0] +
A[1][1] *
B[1][0] +
A[1][2] *
B[2][0] +
A[1][3] *
B[3][0];
1578 Temp[1][1] =
A[1][0] *
B[0][1] +
A[1][1] *
B[1][1] +
A[1][2] *
B[2][1] +
A[1][3] *
B[3][1];
1579 Temp[1][2] =
A[1][0] *
B[0][2] +
A[1][1] *
B[1][2] +
A[1][2] *
B[2][2] +
A[1][3] *
B[3][2];
1580 Temp[1][3] =
A[1][0] *
B[0][3] +
A[1][1] *
B[1][3] +
A[1][2] *
B[2][3] +
A[1][3] *
B[3][3];
1582 Temp[2][0] =
A[2][0] *
B[0][0] +
A[2][1] *
B[1][0] +
A[2][2] *
B[2][0] +
A[2][3] *
B[3][0];
1583 Temp[2][1] =
A[2][0] *
B[0][1] +
A[2][1] *
B[1][1] +
A[2][2] *
B[2][1] +
A[2][3] *
B[3][1];
1584 Temp[2][2] =
A[2][0] *
B[0][2] +
A[2][1] *
B[1][2] +
A[2][2] *
B[2][2] +
A[2][3] *
B[3][2];
1585 Temp[2][3] =
A[2][0] *
B[0][3] +
A[2][1] *
B[1][3] +
A[2][2] *
B[2][3] +
A[2][3] *
B[3][3];
1587 Temp[3][0] =
A[3][0] *
B[0][0] +
A[3][1] *
B[1][0] +
A[3][2] *
B[2][0] +
A[3][3] *
B[3][0];
1588 Temp[3][1] =
A[3][0] *
B[0][1] +
A[3][1] *
B[1][1] +
A[3][2] *
B[2][1] +
A[3][3] *
B[3][1];
1589 Temp[3][2] =
A[3][0] *
B[0][2] +
A[3][1] *
B[1][2] +
A[3][2] *
B[2][2] +
A[3][3] *
B[3][2];
1590 Temp[3][3] =
A[3][0] *
B[0][3] +
A[3][1] *
B[1][3] +
A[3][2] *
B[2][3] +
A[3][3] *
B[3][3];
1591 memcpy(Result, &Temp, 16 *
sizeof(
float));
1625 Result.V[0] =
VecP.V[0] * M[0][0] +
VecP.V[1] * M[1][0] +
VecP.V[2] * M[2][0] +
VecP.V[3] * M[3][0];
1626 Result.V[1] =
VecP.V[0] * M[0][1] +
VecP.V[1] * M[1][1] +
VecP.V[2] * M[2][1] +
VecP.V[3] * M[3][1];
1627 Result.V[2] =
VecP.V[0] * M[0][2] +
VecP.V[1] * M[1][2] +
VecP.V[2] * M[2][2] +
VecP.V[3] * M[3][2];
1628 Result.V[3] =
VecP.V[0] * M[0][3] +
VecP.V[1] * M[1][3] +
VecP.V[2] * M[2][3] +
VecP.V[3] * M[3][3];
1635 typedef double Double4x4[4][4];
1638 const Double4x4& M = *((
const Double4x4*)
MatrixM);
1640 Result.V[0] = Tmp.
V[0] * M[0][0] + Tmp.
V[1] * M[1][0] + Tmp.
V[2] * M[2][0] + Tmp.
V[3] * M[3][0];
1641 Result.V[1] = Tmp.
V[0] * M[0][1] + Tmp.
V[1] * M[1][1] + Tmp.
V[2] * M[2][1] + Tmp.
V[3] * M[3][1];
1642 Result.V[2] = Tmp.
V[0] * M[0][2] + Tmp.
V[1] * M[1][2] + Tmp.
V[2] * M[2][2] + Tmp.
V[3] * M[3][2];
1643 Result.V[3] = Tmp.
V[0] * M[0][3] + Tmp.
V[1] * M[1][3] + Tmp.
V[2] * M[2][3] + Tmp.
V[3] * M[3][3];
1651 typedef double Double4x4[4][4];
1653 const Double4x4& M = *((
const Double4x4*)
MatrixM);
1655 Result.V[0] =
VecP.V[0] * M[0][0] +
VecP.V[1] * M[1][0] +
VecP.V[2] * M[2][0] +
VecP.V[3] * M[3][0];
1656 Result.V[1] =
VecP.V[0] * M[0][1] +
VecP.V[1] * M[1][1] +
VecP.V[2] * M[2][1] +
VecP.V[3] * M[3][1];
1657 Result.V[2] =
VecP.V[0] * M[0][2] +
VecP.V[1] * M[1][2] +
VecP.V[2] * M[2][2] +
VecP.V[3] * M[3][2];
1658 Result.V[3] =
VecP.V[0] * M[0][3] +
VecP.V[1] * M[1][3] +
VecP.V[2] * M[2][3] +
VecP.V[3] * M[3][3];
1666 typedef double Double4x4[4][4];
1670 Result.V[0] =
VecP.V[0] * M[0][0] +
VecP.V[1] * M[1][0] +
VecP.V[2] * M[2][0] +
VecP.V[3] * M[3][0];
1671 Result.V[1] =
VecP.V[0] * M[0][1] +
VecP.V[1] * M[1][1] +
VecP.V[2] * M[2][1] +
VecP.V[3] * M[3][1];
1672 Result.V[2] =
VecP.V[0] * M[0][2] +
VecP.V[1] * M[1][2] +
VecP.V[2] * M[2][2] +
VecP.V[3] * M[3][2];
1673 Result.V[3] =
VecP.V[0] * M[0][3] +
VecP.V[1] * M[1][3] +
VecP.V[2] * M[2][3] +
VecP.V[3] * M[3][3];
1814#define VectorLoadByte4( Ptr ) MakeVectorRegisterFloat( float(((const uint8*)(Ptr))[0]), float(((const uint8*)(Ptr))[1]), float(((const uint8*)(Ptr))[2]), float(((const uint8*)(Ptr))[3]) )
1823#define VectorLoadSignedByte4( Ptr ) MakeVectorRegisterFloat( float(((const int8*)(Ptr))[0]), float(((const int8*)(Ptr))[1]), float(((const int8*)(Ptr))[2]), float(((const int8*)(Ptr))[3]) )
1833#define VectorLoadByte4Reverse( Ptr ) MakeVectorRegisterFloat( float(((const uint8*)(Ptr))[3]), float(((const uint8*)(Ptr))[2]), float(((const uint8*)(Ptr))[1]), float(((const uint8*)(Ptr))[0]) )
1880 V[0] =
float((
E >> 00) & 0x3FF) / 1023.0f;
1881 V[1] =
float((
E >> 10) & 0x3FF) / 1023.0f;
1882 V[2] =
float((
E >> 20) & 0x3FF) / 1023.0f;
1883 V[3] =
float((
E >> 30) & 0x3) / 3.0f;
1904 (
uint32(Tmp.
V[0]) & 0x3FF) << 00 |
1905 (
uint32(Tmp.
V[1]) & 0x3FF) << 10 |
1906 (
uint32(Tmp.
V[2]) & 0x3FF) << 20 |
1907 (
uint32(Tmp.
V[3]) & 0x003) << 30;
1933#define VectorResetFloatRegisters()
1940#define VectorGetControlRegister() 0
1947#define VectorSetControlRegister(ControlStatus)
1952#define VECTOR_ROUND_TOWARD_ZERO 0
1957#define VECTOR_DENORMALS_FLUSH_TO_ZERO 0
1962 return !FMath::IsFinite(
Vec.V[0]) || !FMath::IsFinite(
Vec.V[1]) || !FMath::IsFinite(
Vec.V[2]) || !FMath::IsFinite(
Vec.V[3]);
1967 return !FMath::IsFinite(
Vec.V[0]) || !FMath::IsFinite(
Vec.V[1]) || !FMath::IsFinite(
Vec.V[2]) || !FMath::IsFinite(
Vec.V[3]);
2086 FMath::Atan2(
Y.V[0],
X.V[0]),
2087 FMath::Atan2(
Y.V[1],
X.V[1]),
2088 FMath::Atan2(
Y.V[2],
X.V[2]),
2089 FMath::Atan2(
Y.V[3],
X.V[3]));
2095 FMath::Atan2(
Y.V[0],
X.V[0]),
2096 FMath::Atan2(
Y.V[1],
X.V[1]),
2097 FMath::Atan2(
Y.V[2],
X.V[2]),
2098 FMath::Atan2(
Y.V[3],
X.V[3]));
2188 FMath::Fmod(
X.V[0],
Y.V[0]),
2189 FMath::Fmod(
X.V[1],
Y.V[1]),
2190 FMath::Fmod(
X.V[2],
Y.V[2]),
2191 FMath::Fmod(
X.V[3],
Y.V[3]));
2197 FMath::Fmod(
X.V[0],
Y.V[0]),
2198 FMath::Fmod(
X.V[1],
Y.V[1]),
2199 FMath::Fmod(
X.V[2],
Y.V[2]),
2200 FMath::Fmod(
X.V[3],
Y.V[3]));
2207 (
float)(
Vec.V[0] >= 0.0f ? 1.0f : -1.0f),
2208 (
float)(
Vec.V[1] >= 0.0f ? 1.0f : -1.0f),
2209 (
float)(
Vec.V[2] >= 0.0f ? 1.0f : -1.0f),
2210 (
float)(
Vec.V[3] >= 0.0f ? 1.0f : -1.0f));
2216 (
double)(
Vec.V[0] >= 0.0 ? 1.0 : -1.0),
2217 (
double)(
Vec.V[1] >= 0.0 ? 1.0 : -1.0),
2218 (
double)(
Vec.V[2] >= 0.0 ? 1.0 : -1.0),
2219 (
double)(
Vec.V[3] >= 0.0 ? 1.0 : -1.0));
2226 (
float)(
Vec.V[0] >= 0.0f ? 1.0f : 0.0f),
2227 (
float)(
Vec.V[1] >= 0.0f ? 1.0f : 0.0f),
2228 (
float)(
Vec.V[2] >= 0.0f ? 1.0f : 0.0f),
2229 (
float)(
Vec.V[3] >= 0.0f ? 1.0f : 0.0f));
2235 (
double)(
Vec.V[0] >= 0.0 ? 1.0 : 0.0),
2236 (
double)(
Vec.V[1] >= 0.0 ? 1.0 : 0.0),
2237 (
double)(
Vec.V[2] >= 0.0 ? 1.0 : 0.0),
2238 (
double)(
Vec.V[3] >= 0.0 ? 1.0 : 0.0));
2343 (~
A.V[3]) &
B.V[3]);
2359 A.V[0] ==
B.V[0] ? 0xFFFFFFFF : 0,
2360 A.V[1] ==
B.V[1] ? 0xFFFFFFFF : 0,
2361 A.V[2] ==
B.V[2] ? 0xFFFFFFFF : 0,
2362 A.V[3] ==
B.V[3] ? 0xFFFFFFFF : 0);
2368 A.V[0] !=
B.V[0] ? 0xFFFFFFFF : 0,
2369 A.V[1] !=
B.V[1] ? 0xFFFFFFFF : 0,
2370 A.V[2] !=
B.V[2] ? 0xFFFFFFFF : 0,
2371 A.V[3] !=
B.V[3] ? 0xFFFFFFFF : 0);
2377 A.V[0] >
B.V[0] ? 0xFFFFFFFF : 0,
2378 A.V[1] >
B.V[1] ? 0xFFFFFFFF : 0,
2379 A.V[2] >
B.V[2] ? 0xFFFFFFFF : 0,
2380 A.V[3] >
B.V[3] ? 0xFFFFFFFF : 0);
2386 A.V[0] <
B.V[0] ? 0xFFFFFFFF : 0,
2387 A.V[1] <
B.V[1] ? 0xFFFFFFFF : 0,
2388 A.V[2] <
B.V[2] ? 0xFFFFFFFF : 0,
2389 A.V[3] <
B.V[3] ? 0xFFFFFFFF : 0);
2395 A.V[0] >=
B.V[0] ? 0xFFFFFFFF : 0,
2396 A.V[1] >=
B.V[1] ? 0xFFFFFFFF : 0,
2397 A.V[2] >=
B.V[2] ? 0xFFFFFFFF : 0,
2398 A.V[3] >=
B.V[3] ? 0xFFFFFFFF : 0);
2404 A.V[0] <=
B.V[0] ? 0xFFFFFFFF : 0,
2405 A.V[1] <=
B.V[1] ? 0xFFFFFFFF : 0,
2406 A.V[2] <=
B.V[2] ? 0xFFFFFFFF : 0,
2407 A.V[3] <=
B.V[3] ? 0xFFFFFFFF : 0);
2456 FMath::Min(
A.V[0] ,
B.V[0]),
2457 FMath::Min(
A.V[1] ,
B.V[1]),
2458 FMath::Min(
A.V[2] ,
B.V[2]),
2459 FMath::Min(
A.V[3] ,
B.V[3]));
2465 FMath::Max(
A.V[0],
B.V[0]),
2466 FMath::Max(
A.V[1],
B.V[1]),
2467 FMath::Max(
A.V[2],
B.V[2]),
2468 FMath::Max(
A.V[3],
B.V[3]));
2477 FMath::Abs(
A.V[3]));
2480#define VectorIntSign(A) VectorIntSelect( VectorIntCompareGE(A, GlobalVectorConstants::IntZero), GlobalVectorConstants::IntOne, GlobalVectorConstants::IntMinusOne )
2650#define VectorSetZero() MakeVectorRegisterFloat(0.f, 0.f, 0.f, 0.f)
2651#define VectorSet1(F) VectorSetFloat1(F)
2652#define VectorIntSet1(F) MakeVectorRegisterInt(F, F, F, F)
2653#define VectorCastIntToFloat(Vec) VectorLoad((float*)(Vec.V))
2654#define VectorCastFloatToInt(Vec) VectorIntLoad(Vec.V)
2655#define VectorCastDoubleToInt(Vec) VectorInt64Load(Vec.V)
2656#define VectorCastIntToDouble(Vec) VectorDoubleLoad(Vec.V)
2657#define VectorShuffleImmediate(Vec, I0, I1, I2, I3) VectorShuffle(Vec, Vec, I3, I2, I1, I0)
2658#define VectorShiftLeftImm(Vec, ImmAmt) static_assert(false, "Unimplemented")
2659#define VectorShiftRightImmArithmetic(Vec, ImmAmt) static_assert(false, "Unimplemented")
2660#define VectorShiftRightImmLogical(Vec, ImmAmt) static_assert(false, "Unimplemented")
2661#define VectorIntExpandLow16To32(V0) static_assert(false, "Unimplemented")
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 VectorRegister4Int VectorIntSubtract(const VectorRegister4Int &A, const VectorRegister4Int &B)
Definition UnrealMathFPU.h:2426
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 VectorRegister4Int VectorIntCompareLE(const VectorRegister4Int &A, const VectorRegister4Int &B)
Definition UnrealMathFPU.h:2401
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 VectorRegister4Int VectorIntAbs(const VectorRegister4Int &A)
Definition UnrealMathFPU.h:2471
FORCEINLINE VectorRegister4Float VectorReciprocalSqrt(const VectorRegister4Float &Vec)
Definition UnrealMathFPU.h:1279
FORCEINLINE VectorRegister4Int VectorIntXor(const VectorRegister4Int &A, const VectorRegister4Int &B)
Definition UnrealMathFPU.h:2327
FORCEINLINE bool VectorMatrixInverse(FMatrix44d *DstMatrix, const FMatrix44d *SrcMatrix)
Definition UnrealMathFPU.h:1603
FORCEINLINE VectorRegister4Float VectorLoadSRGBA16N(void *Ptr)
Definition UnrealMathFPU.h:2268
FORCEINLINE VectorRegister4Int VectorIntMin(const VectorRegister4Int &A, const VectorRegister4Int &B)
Definition UnrealMathFPU.h:2453
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 VectorRegister4Int VectorIntAndNot(const VectorRegister4Int &A, const VectorRegister4Int &B)
Definition UnrealMathFPU.h:2337
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 VectorRegister2Double VectorDoubleLoad(const void *Ptr)
Definition UnrealMathFPU.h:2642
FORCEINLINE void VectorStoreSignedByte4(const VectorRegister4Float &Vec, void *Ptr)
Definition UnrealMathFPU.h:1858
FORCEINLINE VectorRegister4Float VectorSet_W1(const VectorRegister4Float &Vec)
Definition UnrealMathFPU.h:1407
FORCEINLINE void VectorIntStoreAligned(const VectorRegister4Int &A, const void *Ptr)
Definition UnrealMathFPU.h:2578
FORCEINLINE VectorRegister4Int VectorIntCompareNEQ(const VectorRegister4Int &A, const VectorRegister4Int &B)
Definition UnrealMathFPU.h:2365
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 VectorRegister4Int VectorIntLoad1(const void *Ptr)
Definition UnrealMathFPU.h:2609
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 VectorRegister4Int VectorIntCompareGE(const VectorRegister4Int &A, const VectorRegister4Int &B)
Definition UnrealMathFPU.h:2392
FORCEINLINE VectorRegister4Int VectorIntNegate(const VectorRegister4Int &A)
Definition UnrealMathFPU.h:2444
FORCEINLINE VectorRegister4Int VectorIntLoad(const void *Ptr)
Definition UnrealMathFPU.h:2562
FORCEINLINE VectorRegister4Float VectorCos(const VectorRegister4Float &Vec)
Definition UnrealMathFPU.h:2027
FORCEINLINE VectorRegister4Int VectorInt64Load(const void *Ptr)
Definition UnrealMathFPU.h:2627
FORCEINLINE VectorRegister4Float VectorLoadFloat2(const float *Ptr)
Definition UnrealMathFPU.h:485
FORCEINLINE VectorRegister4Int VectorIntSelect(const VectorRegister4Int &Mask, const VectorRegister4Int &Vec1, const VectorRegister4Int &Vec2)
Definition UnrealMathFPU.h:2411
FORCEINLINE VectorRegister4Float VectorRound(const VectorRegister4Float &Vec)
Definition UnrealMathFPU.h:2164
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 VectorRegister4Int VectorIntOr(const VectorRegister4Int &A, const VectorRegister4Int &B)
Definition UnrealMathFPU.h:2318
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 VectorRegister4Int VectorIntNot(const VectorRegister4Int &A)
Definition UnrealMathFPU.h:2346
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 VectorRegister4Int VectorIntCompareEQ(const VectorRegister4Int &A, const VectorRegister4Int &B)
Definition UnrealMathFPU.h:2356
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
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 void VectorStoreAlignedStreamed(const VectorRegister4Float &Vec, float *Dst)
Definition UnrealMathFPU.h:550
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
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
FORCEINLINE VectorRegister4Float VectorQuaternionMultiply2(const VectorRegister4Float &Quat1, const VectorRegister4Float &Quat2)
Definition UnrealMathFPU.h:1517
FORCEINLINE void VectorIntStore(const VectorRegister4Int &A, const void *Ptr)
Definition UnrealMathFPU.h:2546
FORCEINLINE VectorRegister4Float VectorIntToFloat(const VectorRegister4Int &A)
Definition UnrealMathFPU.h:2482
FORCEINLINE VectorRegister4Int VectorIntMax(const VectorRegister4Int &A, const VectorRegister4Int &B)
Definition UnrealMathFPU.h:2462
FORCEINLINE VectorRegister4Float VectorOneFloat(void)
Definition UnrealMathFPU.h:346
FORCEINLINE VectorRegister4Float VectorZeroFloat(void)
Definition UnrealMathFPU.h:331
FORCEINLINE VectorRegister4Float VectorATan(const VectorRegister4Float &Vec)
Definition UnrealMathFPU.h:2072
FORCEINLINE VectorRegister4Int VectorIntLoadAligned(const void *Ptr)
Definition UnrealMathFPU.h:2593
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 VectorRegister4Int VectorIntMultiply(const VectorRegister4Int &A, const VectorRegister4Int &B)
Definition UnrealMathFPU.h:2435
FORCEINLINE VectorRegister4Int VectorIntAdd(const VectorRegister4Int &A, const VectorRegister4Int &B)
Definition UnrealMathFPU.h:2417
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 VectorRegister4Int VectorIntCompareLT(const VectorRegister4Int &A, const VectorRegister4Int &B)
Definition UnrealMathFPU.h:2383
FORCEINLINE VectorRegister4Float MakeVectorRegisterFloat(uint32 X, uint32 Y, uint32 Z, uint32 W)
Definition UnrealMathFPU.h:175
FORCEINLINE VectorRegister4Int VectorIntAnd(const VectorRegister4Int &A, const VectorRegister4Int &B)
Definition UnrealMathFPU.h:2308
FORCEINLINE VectorRegister4Float MakeVectorRegisterFloatFromDouble(const VectorRegister4Double &Vec4d)
Definition UnrealMathFPU.h:262
FORCEINLINE VectorRegister2Double MakeVectorRegister2Double(double X, double Y)
Definition UnrealMathFPU.h:158
VectorRegister2Double VectorRegister2d
Definition UnrealMathFPU.h:91
FORCEINLINE VectorRegister4Int VectorIntCompareGT(const VectorRegister4Int &A, const VectorRegister4Int &B)
Definition UnrealMathFPU.h:2374
FORCEINLINE VectorRegister4Float VectorSign(const VectorRegister4Float &Vec)
Definition UnrealMathFPU.h:2204
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
memcpy(InputBufferBase, BinkBlocksData, BinkBlocksSize)
constexpr VectorRegister4Float FloatZero
Definition UnrealMathVectorConstants.h.inl:41
constexpr VectorRegister4Float FloatOne
Definition UnrealMathVectorConstants.h.inl:40
constexpr VectorRegister4Double DoubleOne
Definition UnrealMathVectorConstants.h.inl:58
constexpr VectorRegister4Double DoubleZero
Definition UnrealMathVectorConstants.h.inl:59
float v
Definition radaudio_mdct.cpp:62
U16 Index
Definition radfft.cpp:71
Definition UnrealMathFPU.h:133
FORCEINLINE double operator[](int32 Index) const
Definition UnrealMathFPU.h:141
FORCEINLINE AlignedDouble4(const VectorRegister4Double &Vec)
Definition UnrealMathFPU.h:136
FORCEINLINE double & operator[](int32 Index)
Definition UnrealMathFPU.h:142
double V[4]
Definition UnrealMathFPU.h:134
FORCEINLINE VectorRegister4Double ToVectorRegister() const
Definition UnrealMathFPU.h:144
Definition UnrealMathFPU.h:113
FORCEINLINE AlignedFloat4(const VectorRegister4Float &Vec)
Definition UnrealMathFPU.h:116
FORCEINLINE float & operator[](int32 Index)
Definition UnrealMathFPU.h:122
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 constexpr void SinCos(std::decay_t< T > *ScalarSin, std::decay_t< T > *ScalarCos, T Value)
Definition UnrealMathUtility.h:753
static CORE_API bool MatrixInverse(FMatrix44f *DstMatrix, const FMatrix44f *SrcMatrix)
Definition UnrealMath.cpp:928
static CORE_API float RoundHalfToEven(float F)
Definition UnrealMath.cpp:2997
static float Log2(float Value)
Definition UnrealMathUtility.h:722
static UE_FORCEINLINE_HINT void * Memcpy(void *Dest, const void *Src, SIZE_T Count)
Definition UnrealMemory.h:160
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
FORCEINLINE VectorRegister4Double(const VectorRegister2Double &InXY, const VectorRegister2Double &InZW)
Definition UnrealMathFPU.h:55
VectorRegister2Double ZW
Definition UnrealMathFPU.h:48
FORCEINLINE constexpr VectorRegister4Double(VectorRegister2Double InXY, VectorRegister2Double InZW, VectorRegisterConstInit)
Definition UnrealMathFPU.h:63
FORCEINLINE VectorRegister4Double(const VectorRegister4Float &FloatVector)
Definition UnrealMathFPU.h:68
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