18template <
int N, plMathAcc::Enum acc>
19PL_ALWAYS_INLINE
plSimdFloat plSimdVec4f::GetLength()
const
21 const plSimdFloat squaredLen = GetLengthSquared<N>();
22 return squaredLen.GetSqrt<acc>();
25template <
int N, plMathAcc::Enum acc>
26PL_ALWAYS_INLINE
plSimdFloat plSimdVec4f::GetInvLength()
const
28 const plSimdFloat squaredLen = GetLengthSquared<N>();
29 return squaredLen.GetInvSqrt<acc>();
33PL_ALWAYS_INLINE
plSimdFloat plSimdVec4f::GetLengthSquared()
const
38template <
int N, plMathAcc::Enum acc>
39PL_ALWAYS_INLINE
plSimdFloat plSimdVec4f::GetLengthAndNormalize()
41 const plSimdFloat squaredLen = GetLengthSquared<N>();
42 const plSimdFloat reciprocalLen = squaredLen.GetInvSqrt<acc>();
43 *
this = (*this) * reciprocalLen;
44 return squaredLen * reciprocalLen;
47template <
int N, plMathAcc::Enum acc>
48PL_ALWAYS_INLINE
plSimdVec4f plSimdVec4f::GetNormalized()
const
50 return (*
this) * GetInvLength<N, acc>();
53template <
int N, plMathAcc::Enum acc>
54PL_ALWAYS_INLINE
void plSimdVec4f::Normalize()
56 *
this = GetNormalized<N, acc>();
60PL_ALWAYS_INLINE
bool plSimdVec4f::IsNormalized(
const plSimdFloat& fEpsilon)
const
63 return sqLength.IsEqual(1.0f, fEpsilon);
66inline plSimdFloat plSimdVec4f::GetComponent(
int i)
const
71 return GetComponent<0>();
74 return GetComponent<1>();
77 return GetComponent<2>();
80 return GetComponent<3>();
84PL_ALWAYS_INLINE
plSimdVec4f plSimdVec4f::Fraction()
const
86 return *
this - Trunc();
92 return a + t.CompMul(b - a);
99 return (*
this >= minusEps) && (*
this <= plusEps);
103PL_ALWAYS_INLINE
plSimdFloat plSimdVec4f::HorizontalSum<1>()
const
105 return GetComponent<0>();
109PL_ALWAYS_INLINE
plSimdFloat plSimdVec4f::HorizontalMin<1>()
const
111 return GetComponent<0>();
115PL_ALWAYS_INLINE
plSimdFloat plSimdVec4f::HorizontalMax<1>()
const
117 return GetComponent<0>();
static plSimdFloat MakeNaN()
Creates an plSimdFloat that is initialized to Not-A-Number (NaN).
Definition FPUFloat_inl.h:42
static plSimdFloat MakeZero()
Creates an plSimdFloat that is initialized to zero.
Definition FPUFloat_inl.h:36
A 4-component SIMD vector class.
Definition SimdVec4f.h:8
static plSimdVec4f MakeNaN()
Creates an plSimdVec4f that is initialized to Not-A-Number (NaN).
Definition SimdVec4f_inl.h:13
static plSimdVec4f MakeZero()
Creates an plSimdVec4f that is initialized to zero.
Definition SimdVec4f_inl.h:8