16 #include "detail/qualifier.hpp"    17 #include "detail/setup.hpp"    34     template<length_t C, length_t R, 
typename T, qualifier Q>
    35     struct outerProduct_trait{};
    37     template<
typename T, qualifier Q>
    38     struct outerProduct_trait<2, 2, T, Q>
    40         typedef mat<2, 2, T, Q> type;
    43     template<
typename T, qualifier Q>
    44     struct outerProduct_trait<2, 3, T, Q>
    46         typedef mat<3, 2, T, Q> type;
    49     template<
typename T, qualifier Q>
    50     struct outerProduct_trait<2, 4, T, Q>
    52         typedef mat<4, 2, T, Q> type;
    55     template<
typename T, qualifier Q>
    56     struct outerProduct_trait<3, 2, T, Q>
    58         typedef mat<2, 3, T, Q> type;
    61     template<
typename T, qualifier Q>
    62     struct outerProduct_trait<3, 3, T, Q>
    64         typedef mat<3, 3, T, Q> type;
    67     template<
typename T, qualifier Q>
    68     struct outerProduct_trait<3, 4, T, Q>
    70         typedef mat<4, 3, T, Q> type;
    73     template<
typename T, qualifier Q>
    74     struct outerProduct_trait<4, 2, T, Q>
    76         typedef mat<2, 4, T, Q> type;
    79     template<
typename T, qualifier Q>
    80     struct outerProduct_trait<4, 3, T, Q>
    82         typedef mat<3, 4, T, Q> type;
    85     template<
typename T, qualifier Q>
    86     struct outerProduct_trait<4, 4, T, Q>
    88         typedef mat<4, 4, T, Q> type;
   105     template<length_t C, length_t R, 
typename T, qualifier Q>
   106     GLM_FUNC_DECL mat<C, R, T, Q> 
matrixCompMult(mat<C, R, T, Q> 
const& x, mat<C, R, T, Q> 
const& y);
   119     template<length_t C, length_t R, 
typename T, qualifier Q>
   120     GLM_FUNC_DECL 
typename detail::outerProduct_trait<C, R, T, Q>::type 
outerProduct(vec<C, T, Q> 
const& c, vec<R, T, Q> 
const& r);
   131     template<length_t C, length_t R, 
typename T, qualifier Q>
   132     GLM_FUNC_DECL 
typename mat<C, R, T, Q>::transpose_type 
transpose(mat<C, R, T, Q> 
const& x);
   143     template<length_t C, length_t R, 
typename T, qualifier Q>
   144     GLM_FUNC_DECL T 
determinant(mat<C, R, T, Q> 
const& m);
   155     template<length_t C, length_t R, 
typename T, qualifier Q>
   156     GLM_FUNC_DECL mat<C, R, T, Q> 
inverse(mat<C, R, T, Q> 
const& m);
   161 #include "detail/func_matrix.inl" GLM_FUNC_DECL mat< C, R, T, Q > inverse(mat< C, R, T, Q > const &m)
Return the inverse of a squared matrix. 
GLM_FUNC_DECL mat< C, R, T, Q > matrixCompMult(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y)
Multiply matrix x by matrix y component-wise, i.e., result[i][j] is the scalar product of x[i][j] and...
GLM_FUNC_DECL detail::outerProduct_trait< C, R, T, Q >::type outerProduct(vec< C, T, Q > const &c, vec< R, T, Q > const &r)
Treats the first parameter c as a column vector and the second parameter r as a row vector and does a...
GLM_FUNC_DECL T determinant(mat< C, R, T, Q > const &m)
Return the determinant of a squared matrix. 
GLM_FUNC_DECL mat< C, R, T, Q >::transpose_type transpose(mat< C, R, T, Q > const &x)
Returns the transposed matrix of x.