11 template<length_t Columns, length_t Rows,
typename T, qualifier P>
12 struct outerProduct_trait{};
15 #if GLM_HAS_TEMPLATE_ALIASES
16 template <
typename T, qualifier P = defaultp>
using tmat2x2 = mat<2, 2, T, P>;
17 template <
typename T, qualifier P = defaultp>
using tmat2x3 = mat<2, 3, T, P>;
18 template <
typename T, qualifier P = defaultp>
using tmat2x4 = mat<2, 4, T, P>;
19 template <
typename T, qualifier P = defaultp>
using tmat3x2 = mat<3, 2, T, P>;
20 template <
typename T, qualifier P = defaultp>
using tmat3x3 = mat<3, 3, T, P>;
21 template <
typename T, qualifier P = defaultp>
using tmat3x4 = mat<3, 4, T, P>;
22 template <
typename T, qualifier P = defaultp>
using tmat4x2 = mat<4, 2, T, P>;
23 template <
typename T, qualifier P = defaultp>
using tmat4x3 = mat<4, 3, T, P>;
24 template <
typename T, qualifier P = defaultp>
using tmat4x4 = mat<4, 4, T, P>;
25 #endif//GLM_HAS_TEMPLATE_ALIASES
27 template<
typename T, qualifier P,
template<
typename, qualifier>
class matType>
28 GLM_FUNC_DECL matType<T, P>
inverse(matType<T, P>
const & m);
334 #if(defined(GLM_PRECISION_LOWP_FLOAT))
335 typedef lowp_mat2x2
mat2x2;
336 typedef lowp_mat2x3
mat2x3;
337 typedef lowp_mat2x4
mat2x4;
338 typedef lowp_mat3x2
mat3x2;
339 typedef lowp_mat3x3
mat3x3;
340 typedef lowp_mat3x4
mat3x4;
341 typedef lowp_mat4x2
mat4x2;
342 typedef lowp_mat4x3
mat4x3;
343 typedef lowp_mat4x4
mat4x4;
344 #elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))
345 typedef mediump_mat2x2
mat2x2;
346 typedef mediump_mat2x3
mat2x3;
347 typedef mediump_mat2x4
mat2x4;
348 typedef mediump_mat3x2
mat3x2;
349 typedef mediump_mat3x3
mat3x3;
350 typedef mediump_mat3x4
mat3x4;
351 typedef mediump_mat4x2
mat4x2;
352 typedef mediump_mat4x3
mat4x3;
353 typedef mediump_mat4x4
mat4x4;
355 typedef highp_mat2x2
mat2x2;
400 #endif//GLM_PRECISION
681 #if(defined(GLM_PRECISION_LOWP_DOUBLE))
691 #elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))
692 typedef mediump_dmat2x2
dmat2x2;
693 typedef mediump_dmat2x3
dmat2x3;
694 typedef mediump_dmat2x4
dmat2x4;
695 typedef mediump_dmat3x2
dmat3x2;
696 typedef mediump_dmat3x3
dmat3x3;
697 typedef mediump_dmat3x4
dmat3x4;
698 typedef mediump_dmat4x2
dmat4x2;
699 typedef mediump_dmat4x3
dmat4x3;
700 typedef mediump_dmat4x4
dmat4x4;
701 #else //defined(GLM_PRECISION_HIGHP_DOUBLE)
763 #endif//GLM_PRECISION
highp_mat4x3 mat4x3
4 columns of 3 components matrix of floating-point numbers.
mat< 3, 3, double, highp > highp_dmat3x3
3 columns of 3 components matrix of high qualifier floating-point numbers.
highp_dmat2x2 dmat2
2 * 2 matrix of double-qualifier floating-point numbers.
highp_mat2x2 mat2x2
2 columns of 2 components matrix of floating-point numbers.
mat< 4, 4, double, mediump > mediump_dmat4x4
4 columns of 4 components matrix of medium qualifier floating-point numbers.
mat< 3, 3, float, mediump > mediump_mat3
3 columns of 3 components matrix of medium qualifier floating-point numbers.
mat< 4, 4, double, lowp > lowp_dmat4x4
4 columns of 4 components matrix of low qualifier floating-point numbers.
mat< 3, 3, double, mediump > mediump_dmat3x3
3 columns of 3 components matrix of medium qualifier floating-point numbers.
mat< 2, 3, double, mediump > mediump_dmat2x3
2 columns of 3 components matrix of medium qualifier floating-point numbers.
mat< 2, 2, double, mediump > mediump_dmat2x2
2 columns of 2 components matrix of medium qualifier floating-point numbers.
mat< 4, 4, double, lowp > lowp_dmat4
4 columns of 4 components matrix of low qualifier floating-point numbers.
highp_dmat4x4 dmat4
4 * 4 matrix of double-qualifier floating-point numbers.
mat< 3, 3, double, mediump > mediump_dmat3
3 columns of 3 components matrix of medium qualifier floating-point numbers.
highp_mat2x3 mat2x3
2 columns of 3 components matrix of floating-point numbers.
mat< 4, 4, double, highp > highp_dmat4x4
4 columns of 4 components matrix of high qualifier floating-point numbers.
mat< 4, 4, float, mediump > mediump_mat4
4 columns of 4 components matrix of medium qualifier floating-point numbers.
highp_mat3x2 mat3x2
3 columns of 2 components matrix of floating-point numbers.
highp_mat3x4 mat3x4
3 columns of 4 components matrix of floating-point numbers.
mat< 4, 3, double, lowp > lowp_dmat4x3
4 columns of 3 components matrix of low qualifier floating-point numbers.
mat< 3, 4, float, lowp > lowp_mat3x4
3 columns of 4 components matrix of low qualifier floating-point numbers.
mat< 2, 2, float, mediump > mediump_mat2
2 columns of 2 components matrix of medium qualifier floating-point numbers.
mat< 3, 4, double, mediump > mediump_dmat3x4
3 columns of 4 components matrix of medium qualifier floating-point numbers.
mat< 3, 4, float, mediump > mediump_mat3x4
3 columns of 4 components matrix of medium qualifier floating-point numbers.
mat< 4, 2, float, lowp > lowp_mat4x2
4 columns of 2 components matrix of low qualifier floating-point numbers.
highp_mat2x4 mat2x4
2 columns of 4 components matrix of floating-point numbers.
mat3x3 mat3
3 columns of 3 components matrix of floating-point numbers.
mat< 2, 2, double, highp > highp_dmat2x2
2 columns of 2 components matrix of high qualifier floating-point numbers.
mat< 2, 4, float, mediump > mediump_mat2x4
2 columns of 4 components matrix of medium qualifier floating-point numbers.
mat< 3, 3, float, highp > highp_mat3x3
3 columns of 3 components matrix of high qualifier floating-point numbers.
mat2x2 mat2
2 columns of 2 components matrix of floating-point numbers.
mat< 2, 2, float, mediump > mediump_mat2x2
2 columns of 2 components matrix of medium qualifier floating-point numbers.
mat< 4, 3, float, highp > highp_mat4x3
4 columns of 3 components matrix of high qualifier floating-point numbers.
mat< 2, 3, float, highp > highp_mat2x3
2 columns of 3 components matrix of high qualifier floating-point numbers.
mat< 4, 2, double, mediump > mediump_dmat4x2
4 columns of 2 components matrix of medium qualifier floating-point numbers.
mat< 4, 4, float, highp > highp_mat4x4
4 columns of 4 components matrix of high qualifier floating-point numbers.
highp_dmat4x2 dmat4x2
4 * 2 matrix of double-qualifier floating-point numbers.
highp_dmat2x3 dmat2x3
2 * 3 matrix of double-qualifier floating-point numbers.
mat< 2, 4, float, lowp > lowp_mat2x4
2 columns of 4 components matrix of low qualifier floating-point numbers.
GLM_FUNC_DECL matType< T, P > inverse(matType< T, P > const &m)
Return the inverse of a squared matrix.
mat4x4 mat4
4 columns of 4 components matrix of floating-point numbers.
mat< 2, 2, float, lowp > lowp_mat2x2
2 columns of 2 components matrix of low qualifier floating-point numbers.
mat< 3, 2, double, lowp > lowp_dmat3x2
3 columns of 2 components matrix of low qualifier floating-point numbers.
mat< 3, 2, float, lowp > lowp_mat3x2
3 columns of 2 components matrix of low qualifier floating-point numbers.
highp_dmat2x2 dmat2x2
2 * 2 matrix of double-qualifier floating-point numbers.
mat< 3, 2, double, mediump > mediump_dmat3x2
3 columns of 2 components matrix of medium qualifier floating-point numbers.
mat< 3, 3, float, lowp > lowp_dmat3
3 columns of 3 components matrix of low qualifier floating-point numbers.
mat< 2, 4, double, lowp > lowp_dmat2x4
2 columns of 4 components matrix of low qualifier floating-point numbers.
mat< 4, 2, float, highp > highp_mat4x2
4 columns of 2 components matrix of high qualifier floating-point numbers.
mat< 2, 2, float, highp > highp_mat2x2
2 columns of 2 components matrix of high qualifier floating-point numbers.
mat< 3, 2, float, mediump > mediump_mat3x2
3 columns of 2 components matrix of medium qualifier floating-point numbers.
mat< 3, 4, float, highp > highp_mat3x4
3 columns of 4 components matrix of high qualifier floating-point numbers.
mat< 4, 3, float, mediump > mediump_mat4x3
4 columns of 3 components matrix of medium qualifier floating-point numbers.
mat< 3, 4, double, highp > highp_dmat3x4
3 columns of 4 components matrix of high qualifier floating-point numbers.
mat< 2, 2, float, highp > highp_mat2
2 columns of 2 components matrix of high qualifier floating-point numbers.
mat< 2, 4, float, highp > highp_mat2x4
2 columns of 4 components matrix of high qualifier floating-point numbers.
mat< 4, 4, float, lowp > lowp_mat4x4
4 columns of 4 components matrix of low qualifier floating-point numbers.
mat< 2, 4, double, mediump > mediump_dmat2x4
2 columns of 4 components matrix of medium qualifier floating-point numbers.
mat< 4, 4, double, mediump > mediump_dmat4
4 columns of 4 components matrix of medium qualifier floating-point numbers.
mat< 2, 3, float, mediump > mediump_mat2x3
2 columns of 3 components matrix of medium qualifier floating-point numbers.
mat< 2, 2, double, highp > highp_dmat2
2 columns of 2 components matrix of high qualifier floating-point numbers.
mat< 4, 2, double, lowp > lowp_dmat4x2
4 columns of 2 components matrix of low qualifier floating-point numbers.
highp_mat4x4 mat4x4
4 columns of 4 components matrix of floating-point numbers.
highp_dmat3x2 dmat3x2
3 * 2 matrix of double-qualifier floating-point numbers.
mat< 3, 3, float, lowp > lowp_mat3x3
3 columns of 3 components matrix of low qualifier floating-point numbers.
mat< 2, 3, float, lowp > lowp_mat2x3
2 columns of 3 components matrix of low qualifier floating-point numbers.
highp_dmat4x4 dmat4x4
4 * 4 matrix of double-qualifier floating-point numbers.
mat< 2, 3, double, highp > highp_dmat2x3
2 columns of 3 components matrix of high qualifier floating-point numbers.
mat< 3, 2, double, highp > highp_dmat3x2
3 columns of 2 components matrix of high qualifier floating-point numbers.
mat< 3, 4, double, lowp > lowp_dmat3x4
3 columns of 4 components matrix of low qualifier floating-point numbers.
mat< 4, 3, float, lowp > lowp_mat4x3
4 columns of 3 components matrix of low qualifier floating-point numbers.
mat< 4, 4, float, highp > highp_mat4
4 columns of 4 components matrix of high qualifier floating-point numbers.
mat< 4, 2, float, mediump > mediump_mat4x2
4 columns of 2 components matrix of medium qualifier floating-point numbers.
highp_dmat4x3 dmat4x3
4 * 3 matrix of double-qualifier floating-point numbers.
mat< 3, 2, float, highp > highp_mat3x2
3 columns of 2 components matrix of high qualifier floating-point numbers.
highp_mat4x2 mat4x2
4 columns of 2 components matrix of floating-point numbers.
mat< 4, 3, double, highp > highp_dmat4x3
4 columns of 3 components matrix of high qualifier floating-point numbers.
highp_dmat3x3 dmat3x3
3 * 3 matrix of double-qualifier floating-point numbers.
mat< 3, 3, double, highp > highp_dmat3
3 columns of 3 components matrix of high qualifier floating-point numbers.
mat< 4, 4, float, lowp > lowp_mat4
4 columns of 4 components matrix of low qualifier floating-point numbers.
mat< 2, 4, double, highp > highp_dmat2x4
2 columns of 4 components matrix of high qualifier floating-point numbers.
highp_dmat2x4 dmat2x4
2 * 4 matrix of double-qualifier floating-point numbers.
highp_mat3x3 mat3x3
3 columns of 3 components matrix of floating-point numbers.
mat< 3, 3, double, lowp > lowp_dmat3x3
3 columns of 3 components matrix of low qualifier floating-point numbers.
mat< 2, 2, double, mediump > mediump_dmat2
2 columns of 2 components matrix of medium qualifier floating-point numbers.
mat< 2, 3, double, lowp > lowp_dmat2x3
2 columns of 3 components matrix of low qualifier floating-point numbers.
mat< 2, 2, float, lowp > lowp_mat2
2 columns of 2 components matrix of low qualifier floating-point numbers.
mat< 4, 3, double, mediump > mediump_dmat4x3
4 columns of 3 components matrix of medium qualifier floating-point numbers.
highp_dmat3x3 dmat3
3 * 3 matrix of double-qualifier floating-point numbers.
mat< 4, 4, float, mediump > mediump_mat4x4
4 columns of 4 components matrix of medium qualifier floating-point numbers.
mat< 3, 3, float, highp > highp_mat3
3 columns of 3 components matrix of high qualifier floating-point numbers.
mat< 4, 4, double, highp > highp_dmat4
4 columns of 4 components matrix of high qualifier floating-point numbers.
mat< 2, 2, double, lowp > lowp_dmat2x2
2 columns of 2 components matrix of low qualifier floating-point numbers.
mat< 3, 3, float, lowp > lowp_mat3
3 columns of 3 components matrix of low qualifier floating-point numbers.
mat< 2, 2, double, lowp > lowp_dmat2
2 columns of 2 components matrix of low qualifier floating-point numbers.
mat< 3, 3, float, mediump > mediump_mat3x3
3 columns of 3 components matrix of medium qualifier floating-point numbers.
mat< 4, 2, double, highp > highp_dmat4x2
4 columns of 2 components matrix of high qualifier floating-point numbers.
highp_dmat3x4 dmat3x4
3 * 4 matrix of double-qualifier floating-point numbers.