Divide Framework 0.1
A free and open-source 3D Framework under heavy development
Loading...
Searching...
No Matches
MathMatrices.inl File Reference

Go to the source code of this file.

Namespaces

namespace  Divide
 Handle console commands that start with a forward slash.
 
namespace  Divide::AVX
 

Macros

#define DVD_MATH_MATRICES_INL_
 
#define MakeShuffleMask(x, y, z, w)   (x | y << 2 | z << 4 | w << 6)
 
#define VecSwizzle(vec, x, y, z, w)   _mm_shuffle_ps(vec, vec, MakeShuffleMask(x,y,z,w))
 
#define VecSwizzle1(vec, x)   _mm_shuffle_ps(vec, vec, MakeShuffleMask(x,x,x,x))
 
#define VecSwizzle_0101(vec)   _mm_movelh_ps(vec, vec)
 
#define VecSwizzle_2323(vec)   _mm_movehl_ps(vec, vec)
 
#define VecSwizzle_0022(vec)   _mm_moveldup_ps(vec)
 
#define VecSwizzle_1133(vec)   _mm_movehdup_ps(vec)
 
#define VecShuffle(vec1, vec2, x, y, z, w)   _mm_shuffle_ps(vec1, vec2, MakeShuffleMask(x,y,z,w))
 
#define VecShuffle_0101(vec1, vec2)   _mm_movelh_ps(vec1, vec2)
 
#define VecShuffle_2323(vec1, vec2)   _mm_movehl_ps(vec2, vec1)
 

Functions

FORCE_INLINE void Divide::AVX::M4x4_SSE (const F32 *A, const F32 *B, F32 *C) noexcept
 
static FORCE_INLINE __m128 Divide::AVX::lincomb_SSE (const __m128 &a, const mat4< F32 > &B)
 
FORCE_INLINE void Divide::AVX::GetTransformInverseNoScale (const mat4< F32 > &inM, mat4< F32 > &r) noexcept
 
FORCE_INLINE __m128 Divide::AVX::Mat2Mul (const __m128 vec1, const __m128 vec2) noexcept
 
FORCE_INLINE __m128 Divide::AVX::Mat2AdjMul (const __m128 vec1, const __m128 vec2) noexcept
 
FORCE_INLINE __m128 Divide::AVX::Mat2MulAdj (const __m128 vec1, const __m128 vec2) noexcept
 
FORCE_INLINE void Divide::AVX::GetTransformInverse (const mat4< F32 > &inM, mat4< F32 > &r) noexcept
 
FORCE_INLINE void Divide::AVX::GetInverse (const mat4< F32 > &inM, mat4< F32 > &r) noexcept
 
template<typename T >
void Divide::GetInverse (const mat4< T > &inM, mat4< T > &r) noexcept
 
template<>
void Divide::GetInverse (const mat4< F32 > &inM, mat4< F32 > &r) noexcept
 
template<typename T >
mat4< T > Divide::GetInverse (const mat4< T > &inM) noexcept
 
template<>
mat4< F32 > Divide::GetInverse (const mat4< F32 > &inM) noexcept
 

Macro Definition Documentation

◆ DVD_MATH_MATRICES_INL_

#define DVD_MATH_MATRICES_INL_

Definition at line 33 of file MathMatrices.inl.

◆ MakeShuffleMask

#define MakeShuffleMask (   x,
  y,
  z,
 
)    (x | y << 2 | z << 4 | w << 6)

Definition at line 37 of file MathMatrices.inl.

◆ VecShuffle

#define VecShuffle (   vec1,
  vec2,
  x,
  y,
  z,
 
)    _mm_shuffle_ps(vec1, vec2, MakeShuffleMask(x,y,z,w))

Definition at line 49 of file MathMatrices.inl.

◆ VecShuffle_0101

#define VecShuffle_0101 (   vec1,
  vec2 
)    _mm_movelh_ps(vec1, vec2)

Definition at line 51 of file MathMatrices.inl.

◆ VecShuffle_2323

#define VecShuffle_2323 (   vec1,
  vec2 
)    _mm_movehl_ps(vec2, vec1)

Definition at line 52 of file MathMatrices.inl.

◆ VecSwizzle

#define VecSwizzle (   vec,
  x,
  y,
  z,
 
)    _mm_shuffle_ps(vec, vec, MakeShuffleMask(x,y,z,w))

Definition at line 40 of file MathMatrices.inl.

◆ VecSwizzle1

#define VecSwizzle1 (   vec,
 
)    _mm_shuffle_ps(vec, vec, MakeShuffleMask(x,x,x,x))

Definition at line 41 of file MathMatrices.inl.

◆ VecSwizzle_0022

#define VecSwizzle_0022 (   vec)    _mm_moveldup_ps(vec)

Definition at line 45 of file MathMatrices.inl.

◆ VecSwizzle_0101

#define VecSwizzle_0101 (   vec)    _mm_movelh_ps(vec, vec)

Definition at line 43 of file MathMatrices.inl.

◆ VecSwizzle_1133

#define VecSwizzle_1133 (   vec)    _mm_movehdup_ps(vec)

Definition at line 46 of file MathMatrices.inl.

◆ VecSwizzle_2323

#define VecSwizzle_2323 (   vec)    _mm_movehl_ps(vec, vec)

Definition at line 44 of file MathMatrices.inl.