Quaternion Slerp(Quaternion a, Quaternion b, real t)
Simd< T, N > VIsFinite(Simd< T, N > a)
T NormSqr(Simd< T, N > a)
Matrix3x3r ToMatrix3x3(Quaternion const &q)
constexpr T kDefaultNearEqualEpsilon
NdArray< Simd< real, 4 >, 3 > VMatrix3x3r
Simd< T, N > Normalize(Simd< T, N > a)
constexpr NdArray< T, D0, DIMS... > operator/(NdArray< T, D0, DIMS... > const &lhs, NdArray< T, D0, DIMS... > const &rhs)
Quaternion Conjugate(Quaternion const &a)
VMatrix3x3r ToVMatrix3x3Transpose(Quaternion const &q)
constexpr NdArray< T, D0, DIMS... > operator*(NdArray< T, D0, DIMS... > const &lhs, NdArray< T, D0, DIMS... > const &rhs)
VMatrix3x3r ToVMatrix3x3(Quaternion const &q)
constexpr T Lerp(T a, T b, Frac t)
NdArray< real, 3, 3 > Matrix3x3r
bool NearEqual(TransformRT const &a, TransformRT const &b, real epsilon=kDefaultNearEqualEpsilon< real >)
std::pair< VMatrix3x3r, VMatrix3x3r > ToVMatrix3x3_WithTranspose(Quaternion const &q)
Quaternion QuaternionFromMatrix(VMatrix3x3r const &matrix, real eps=1e-3_r)
bool IsFinite(TransformRT const &a)
bool EquivalentRotation(Quaternion const &a, Quaternion const &b, Vec4r epsilon)