|
| static constexpr float | LoadHalf (const uint16 *Ptr) |
| |
| static constexpr void | StoreHalf (uint16 *Ptr, float Value) |
| |
| static constexpr void | VectorLoadHalf (float *RESTRICT Dst, const uint16 *RESTRICT Src) |
| |
| static constexpr void | VectorStoreHalf (uint16 *RESTRICT Dst, const float *RESTRICT Src) |
| |
| static constexpr void | WideVectorLoadHalf (float *RESTRICT Dst, const uint16 *RESTRICT Src) |
| |
| static constexpr void | WideVectorStoreHalf (uint16 *RESTRICT Dst, const float *RESTRICT Src) |
| |
| static uint32 | AsUInt (float F) |
| |
| static uint64 | AsUInt (double D) |
| |
| static float | AsFloat (uint32 U) |
| |
| static double | AsFloat (uint64 U) |
| |
| static constexpr UE_FORCEINLINE_HINT int32 | TruncToInt32 (float F) |
| |
| static constexpr UE_FORCEINLINE_HINT int32 | TruncToInt32 (double F) |
| |
| static constexpr UE_FORCEINLINE_HINT int64 | TruncToInt64 (double F) |
| |
| static constexpr UE_FORCEINLINE_HINT int32 | TruncToInt (float F) |
| |
| static constexpr UE_FORCEINLINE_HINT int64 | TruncToInt (double F) |
| |
| static UE_FORCEINLINE_HINT float | TruncToFloat (float F) |
| |
| static UE_FORCEINLINE_HINT double | TruncToDouble (double F) |
| |
| static UE_FORCEINLINE_HINT double | TruncToFloat (double F) |
| |
| static int32 | FloorToInt32 (float F) |
| |
| static int32 | FloorToInt32 (double F) |
| |
| static int64 | FloorToInt64 (double F) |
| |
| static UE_FORCEINLINE_HINT int32 | FloorToInt (float F) |
| |
| static UE_FORCEINLINE_HINT int64 | FloorToInt (double F) |
| |
| static UE_FORCEINLINE_HINT float | FloorToFloat (float F) |
| |
| static UE_FORCEINLINE_HINT double | FloorToDouble (double F) |
| |
| static UE_FORCEINLINE_HINT double | FloorToFloat (double F) |
| |
| static UE_FORCEINLINE_HINT int32 | RoundToInt32 (float F) |
| |
| static UE_FORCEINLINE_HINT int32 | RoundToInt32 (double F) |
| |
| static UE_FORCEINLINE_HINT int64 | RoundToInt64 (double F) |
| |
| static UE_FORCEINLINE_HINT int32 | RoundToInt (float F) |
| |
| static UE_FORCEINLINE_HINT int64 | RoundToInt (double F) |
| |
| static UE_FORCEINLINE_HINT float | RoundToFloat (float F) |
| |
| static UE_FORCEINLINE_HINT double | RoundToDouble (double F) |
| |
| static UE_FORCEINLINE_HINT double | RoundToFloat (double F) |
| |
| static int32 | CeilToInt32 (float F) |
| |
| static int32 | CeilToInt32 (double F) |
| |
| static int64 | CeilToInt64 (double F) |
| |
| static UE_FORCEINLINE_HINT int32 | CeilToInt (float F) |
| |
| static UE_FORCEINLINE_HINT int64 | CeilToInt (double F) |
| |
| static UE_FORCEINLINE_HINT float | CeilToFloat (float F) |
| |
| static UE_FORCEINLINE_HINT double | CeilToDouble (double F) |
| |
| static UE_FORCEINLINE_HINT double | CeilToFloat (double F) |
| |
| static int64 | RoundToNearestTiesToEven (double F) |
| |
| static UE_FORCEINLINE_HINT float | Fractional (float Value) |
| |
| static UE_FORCEINLINE_HINT double | Fractional (double Value) |
| |
| static UE_FORCEINLINE_HINT float | Frac (float Value) |
| |
| static UE_FORCEINLINE_HINT double | Frac (double Value) |
| |
| static UE_FORCEINLINE_HINT float | Modf (const float InValue, float *OutIntPart) |
| |
| static UE_FORCEINLINE_HINT double | Modf (const double InValue, double *OutIntPart) |
| |
| static UE_FORCEINLINE_HINT float | Exp (float Value) |
| |
| static UE_FORCEINLINE_HINT double | Exp (double Value) |
| |
| static UE_FORCEINLINE_HINT float | Exp2 (float Value) |
| |
| static UE_FORCEINLINE_HINT double | Exp2 (double Value) |
| |
| static UE_FORCEINLINE_HINT float | Loge (float Value) |
| |
| static UE_FORCEINLINE_HINT double | Loge (double Value) |
| |
| static UE_FORCEINLINE_HINT float | LogX (float Base, float Value) |
| |
| static UE_FORCEINLINE_HINT double | LogX (double Base, double Value) |
| |
| static UE_FORCEINLINE_HINT float | Log2 (float Value) |
| |
| static UE_FORCEINLINE_HINT double | Log2 (double Value) |
| |
| static CORE_API FORCENOINLINE float | Fmod (float X, float Y) |
| |
| static CORE_API FORCENOINLINE double | Fmod (double X, double Y) |
| |
| static UE_FORCEINLINE_HINT float | Sin (float Value) |
| |
| static UE_FORCEINLINE_HINT double | Sin (double Value) |
| |
| static UE_FORCEINLINE_HINT float | Asin (float Value) |
| |
| static UE_FORCEINLINE_HINT double | Asin (double Value) |
| |
| static UE_FORCEINLINE_HINT float | Sinh (float Value) |
| |
| static UE_FORCEINLINE_HINT double | Sinh (double Value) |
| |
| static UE_FORCEINLINE_HINT float | Cos (float Value) |
| |
| static UE_FORCEINLINE_HINT double | Cos (double Value) |
| |
| static UE_FORCEINLINE_HINT float | Acos (float Value) |
| |
| static UE_FORCEINLINE_HINT double | Acos (double Value) |
| |
| static UE_FORCEINLINE_HINT float | Cosh (float Value) |
| |
| static UE_FORCEINLINE_HINT double | Cosh (double Value) |
| |
| static UE_FORCEINLINE_HINT float | Tan (float Value) |
| |
| static UE_FORCEINLINE_HINT double | Tan (double Value) |
| |
| static UE_FORCEINLINE_HINT float | Atan (float Value) |
| |
| static UE_FORCEINLINE_HINT double | Atan (double Value) |
| |
| static UE_FORCEINLINE_HINT float | Tanh (float Value) |
| |
| static UE_FORCEINLINE_HINT double | Tanh (double Value) |
| |
| static CORE_API float | Atan2 (float Y, float X) |
| |
| static CORE_API double | Atan2 (double Y, double X) |
| |
| static UE_FORCEINLINE_HINT float | Sqrt (float Value) |
| |
| static UE_FORCEINLINE_HINT double | Sqrt (double Value) |
| |
| static UE_FORCEINLINE_HINT float | Pow (float A, float B) |
| |
| static UE_FORCEINLINE_HINT double | Pow (double A, double B) |
| |
| static UE_FORCEINLINE_HINT float | InvSqrt (float F) |
| |
| static UE_FORCEINLINE_HINT double | InvSqrt (double F) |
| |
| static UE_FORCEINLINE_HINT float | InvSqrtEst (float F) |
| |
| static UE_FORCEINLINE_HINT double | InvSqrtEst (double F) |
| |
| static UE_FORCEINLINE_HINT float | CopySign (float X, float Y) |
| |
| static UE_FORCEINLINE_HINT double | CopySign (double X, double Y) |
| |
| static UE_FORCEINLINE_HINT bool | IsNaN (float A) |
| |
| static UE_FORCEINLINE_HINT bool | IsNaN (double A) |
| |
| static UE_FORCEINLINE_HINT bool | IsFinite (float A) |
| |
| static UE_FORCEINLINE_HINT bool | IsFinite (double A) |
| |
| static UE_FORCEINLINE_HINT bool | IsNegativeOrNegativeZero (float A) |
| |
| static UE_FORCEINLINE_HINT bool | IsNegativeOrNegativeZero (double A) |
| |
| static UE_FORCEINLINE_HINT bool | IsNegativeFloat (float A) |
| |
| static UE_FORCEINLINE_HINT bool | IsNegativeDouble (double A) |
| |
| static UE_FORCEINLINE_HINT bool | IsNegative (float A) |
| |
| static UE_FORCEINLINE_HINT bool | IsNegative (double A) |
| |
| static UE_FORCEINLINE_HINT int32 | Rand () |
| |
| static UE_FORCEINLINE_HINT int32 | Rand32 () |
| |
| static UE_FORCEINLINE_HINT void | RandInit (int32 Seed) |
| |
| static float | FRand () |
| |
| static CORE_API void | SRandInit (int32 Seed) |
| |
| static CORE_API int32 | GetRandSeed () |
| |
| static CORE_API float | SRand () |
| |
| static constexpr uint32 | FloorLog2 (uint32 Value) |
| |
| static constexpr UE_FORCEINLINE_HINT uint32 | FloorLog2NonZero (uint32 Value) |
| |
| static constexpr uint64 | FloorLog2_64 (uint64 Value) |
| |
| static constexpr UE_FORCEINLINE_HINT uint64 | FloorLog2NonZero_64 (uint64 Value) |
| |
| static constexpr uint8 | CountLeadingZeros8 (uint8 Value) |
| |
| static constexpr uint32 | CountLeadingZeros (uint32 Value) |
| |
| static constexpr uint64 | CountLeadingZeros64 (uint64 Value) |
| |
| static constexpr uint32 | CountTrailingZeros (uint32 Value) |
| |
| static constexpr UE_FORCEINLINE_HINT uint32 | CountTrailingZerosConstExpr (uint32 Value) |
| |
| static constexpr uint64 | CountTrailingZeros64 (uint64 Value) |
| |
| static constexpr UE_FORCEINLINE_HINT uint64 | CountTrailingZeros64ConstExpr (uint64 Value) |
| |
| static constexpr uint32 | CeilLogTwo (uint32 Arg) |
| |
| static constexpr uint64 | CeilLogTwo64 (uint64 Arg) |
| |
| static constexpr uint8 | ConstExprCeilLogTwo (SIZE_T Arg) |
| |
| static constexpr UE_FORCEINLINE_HINT uint32 | RoundUpToPowerOfTwo (uint32 Arg) |
| |
| static constexpr UE_FORCEINLINE_HINT uint64 | RoundUpToPowerOfTwo64 (uint64 V) |
| |
| static constexpr uint32 | MortonCode2 (uint32 x) |
| |
| static constexpr uint64 | MortonCode2_64 (uint64 x) |
| |
| static constexpr uint32 | ReverseMortonCode2 (uint32 x) |
| |
| static constexpr uint64 | ReverseMortonCode2_64 (uint64 x) |
| |
| static constexpr uint32 | MortonCode3 (uint32 x) |
| |
| static constexpr uint32 | ReverseMortonCode3 (uint32 x) |
| |
| static constexpr UE_FORCEINLINE_HINT float | FloatSelect (float Comparand, float ValueGEZero, float ValueLTZero) |
| |
| static constexpr UE_FORCEINLINE_HINT double | FloatSelect (double Comparand, double ValueGEZero, double ValueLTZero) |
| |
| template<class T > |
| static constexpr UE_FORCEINLINE_HINT T | Abs (const T A) |
| |
| template<class T > |
| static constexpr UE_FORCEINLINE_HINT T | Sign (const T A) |
| |
| template<typename T > |
| static constexpr UE_FORCEINLINE_HINT T | Max (T A, T B) |
| |
| template<typename T , typename... OtherTypes> |
| static constexpr T | Max (T A, OtherTypes... Others) |
| |
| template<typename T > |
| static constexpr UE_FORCEINLINE_HINT T | Min (T A, T B) |
| |
| template<typename T , typename... OtherTypes> |
| static constexpr T | Min (T A, OtherTypes... Others) |
| |
| template<class T > |
| static T | Min (const TArray< T > &Values) |
| |
| template<class T > |
| static T | Min (const TArray< T > &Values, int32 *MinIndex) |
| |
| template<class T > |
| static T | Max (const TArray< T > &Values) |
| |
| template<class T > |
| static T | Max (const TArray< T > &Values, int32 *MaxIndex) |
| |
| template<class T > |
| static constexpr void | GetMinMax (const T &A, const T &B, T &OutMin, T &OutMax) |
| |
| template<class T > |
| static constexpr void | GetMinMax (T &Min, T &Max) |
| |
| static constexpr int32 | CountBits (uint64 Bits) |
| |
| template<UE::CIntegral IntType> |
| static bool | AddAndCheckForOverflow (IntType A, IntType B, IntType &OutResult) |
| |
| template<UE::CIntegral IntType> |
| static bool | SubtractAndCheckForOverflow (IntType A, IntType B, IntType &OutResult) |
| |
| template<UE::CIntegral IntType> |
| static bool | MultiplyAndCheckForOverflow (IntType A, IntType B, IntType &OutResult) |
| |
Generic implementation for most platforms
Returns the floating-point remainder of X / Y Warning: Always returns remainder toward 0, not toward the smaller multiple of Y. So for example Fmod(2.8f, 2) gives .8f as you would expect, however, Fmod(-2.8f, 2) gives -.8f, NOT 1.2f Use Floor instead when snapping positions that can be negative to a grid
This is forced to NOT inline so that divisions by constant Y does not get optimized in to an inverse scalar multiply, which is not consistent with the intent nor with the vectorized version.