12         template<
typename T, qualifier Q>
 
   13         struct mat<4, 4, T, Q>
 
   15                 typedef vec<4, T, Q> col_type;
 
   16                 typedef vec<4, T, Q> row_type;
 
   17                 typedef mat<4, 4, T, Q> type;
 
   18                 typedef mat<4, 4, T, Q> transpose_type;
 
   27                 typedef length_t length_type;
 
   28                 GLM_FUNC_DECL 
static GLM_CONSTEXPR length_type 
length(){
return 4;}
 
   30                 GLM_FUNC_DECL GLM_CONSTEXPR col_type & operator[](length_type i) GLM_NOEXCEPT;
 
   31                 GLM_FUNC_DECL GLM_CONSTEXPR col_type 
const& operator[](length_type i) 
const GLM_NOEXCEPT;
 
   35                 GLM_DEFAULTED_DEFAULT_CTOR_DECL GLM_CONSTEXPR mat() GLM_DEFAULT_CTOR;
 
   37                 GLM_FUNC_DECL GLM_CONSTEXPR mat(mat<4, 4, T, P> const& m);
 
   39                 GLM_FUNC_DECL explicit GLM_CONSTEXPR mat(T s);
 
   40                 GLM_FUNC_DECL GLM_CONSTEXPR mat(
 
   41                         T const& x0, T const& y0, T const& z0, T const& w0,
 
   42                         T const& x1, T const& y1, T const& z1, T const& w1,
 
   43                         T const& x2, T const& y2, T const& z2, T const& w2,
 
   44                         T const& x3, T const& y3, T const& z3, T const& w3);
 
   45                 GLM_FUNC_DECL GLM_CONSTEXPR mat(
 
   54                         typename X1, typename Y1, typename Z1, typename W1,
 
   55                         typename X2, typename Y2, typename Z2, typename W2,
 
   56                         typename X3, typename Y3, typename Z3, typename W3,
 
   57                         typename X4, typename Y4, typename Z4, typename W4>
 
   58                 GLM_FUNC_DECL GLM_CONSTEXPR mat(
 
   59                         X1 const& x1, Y1 const& y1, Z1 const& z1, W1 const& w1,
 
   60                         X2 const& x2, Y2 const& y2, Z2 const& z2, W2 const& w2,
 
   61                         X3 const& x3, Y3 const& y3, Z3 const& z3, W3 const& w3,
 
   62                         X4 const& x4, Y4 const& y4, Z4 const& z4, W4 const& w4);
 
   64                 template<typename V1, typename V2, typename V3, typename V4>
 
   65                 GLM_FUNC_DECL GLM_CONSTEXPR mat(
 
   66                         vec<4, V1, Q> const& v1,
 
   67                         vec<4, V2, Q> const& v2,
 
   68                         vec<4, V3, Q> const& v3,
 
   69                         vec<4, V4, Q> const& v4);
 
   73                 template<typename U, qualifier P>
 
   74                 GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 4, U, P> const& m);
 
   76                 GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 2, T, Q> const& x);
 
   77                 GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 3, T, Q> const& x);
 
   78                 GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 3, T, Q> const& x);
 
   79                 GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 2, T, Q> const& x);
 
   80                 GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 4, T, Q> const& x);
 
   81                 GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 2, T, Q> const& x);
 
   82                 GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 4, T, Q> const& x);
 
   83                 GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 3, T, Q> const& x);
 
   88                 GLM_FUNC_DECL GLM_CONSTEXPR mat<4, 4, T, Q> & operator=(mat<4, 4, U, Q> const& m);
 
   90                 GLM_FUNC_DECL GLM_CONSTEXPR mat<4, 4, T, Q> & operator+=(U s);
 
   92                 GLM_FUNC_DECL GLM_CONSTEXPR mat<4, 4, T, Q> & operator+=(mat<4, 4, U, Q> const& m);
 
   94                 GLM_FUNC_DECL GLM_CONSTEXPR mat<4, 4, T, Q> & operator-=(U s);
 
   96                 GLM_FUNC_DECL GLM_CONSTEXPR mat<4, 4, T, Q> & operator-=(mat<4, 4, U, Q> const& m);
 
   98                 GLM_FUNC_DECL GLM_CONSTEXPR mat<4, 4, T, Q> & operator*=(U s);
 
  100                 GLM_FUNC_DECL GLM_CONSTEXPR mat<4, 4, T, Q> & operator*=(mat<4, 4, U, Q> const& m);
 
  102                 GLM_FUNC_DECL GLM_CONSTEXPR mat<4, 4, T, Q> & operator/=(U s);
 
  104                 GLM_FUNC_DECL GLM_CONSTEXPR mat<4, 4, T, Q> & operator/=(mat<4, 4, U, Q> const& m);
 
  108                 GLM_FUNC_DECL GLM_CONSTEXPR mat<4, 4, T, Q> & operator++();
 
  109                 GLM_FUNC_DECL GLM_CONSTEXPR mat<4, 4, T, Q> & operator--();
 
  110                 GLM_FUNC_DECL GLM_CONSTEXPR mat<4, 4, T, Q> operator++(
int);
 
  111                 GLM_FUNC_DECL GLM_CONSTEXPR mat<4, 4, T, Q> operator--(
int);
 
  116         template<typename T, qualifier Q>
 
  117         GLM_FUNC_DECL GLM_CONSTEXPR mat<4, 4, T, Q> operator+(mat<4, 4, T, Q> const& m);
 
  119         template<typename T, qualifier Q>
 
  120         GLM_FUNC_DECL GLM_CONSTEXPR mat<4, 4, T, Q> operator-(mat<4, 4, T, Q> const& m);
 
  124         template<typename T, qualifier Q>
 
  125         GLM_FUNC_DECL GLM_CONSTEXPR mat<4, 4, T, Q> operator+(mat<4, 4, T, Q> const& m, T scalar);
 
  127         template<typename T, qualifier Q>
 
  128         GLM_FUNC_DECL GLM_CONSTEXPR mat<4, 4, T, Q> operator+(T scalar, mat<4, 4, T, Q> const& m);
 
  130         template<typename T, qualifier Q>
 
  131         GLM_FUNC_DECL GLM_CONSTEXPR mat<4, 4, T, Q> operator+(mat<4, 4, T, Q> const& m1, mat<4, 4, T, Q> const& m2);
 
  133         template<typename T, qualifier Q>
 
  134         GLM_FUNC_DECL GLM_CONSTEXPR mat<4, 4, T, Q> operator-(mat<4, 4, T, Q> const& m, T scalar);
 
  136         template<typename T, qualifier Q>
 
  137         GLM_FUNC_DECL GLM_CONSTEXPR mat<4, 4, T, Q> operator-(T scalar, mat<4, 4, T, Q> const& m);
 
  139         template<typename T, qualifier Q>
 
  140         GLM_FUNC_DECL GLM_CONSTEXPR mat<4, 4, T, Q> operator-(mat<4, 4, T, Q> const& m1,        mat<4, 4, T, Q> const& m2);
 
  142         template<typename T, qualifier Q>
 
  143         GLM_FUNC_DECL GLM_CONSTEXPR mat<4, 4, T, Q> operator*(mat<4, 4, T, Q> const& m, T scalar);
 
  145         template<typename T, qualifier Q>
 
  146         GLM_FUNC_DECL GLM_CONSTEXPR mat<4, 4, T, Q> operator*(T scalar, mat<4, 4, T, Q> const& m);
 
  148         template<typename T, qualifier Q>
 
  149         GLM_FUNC_DECL GLM_CONSTEXPR typename mat<4, 4, T, Q>::col_type operator*(mat<4, 4, T, Q> const& m, typename mat<4, 4, T, Q>::row_type const& v);
 
  151         template<typename T, qualifier Q>
 
  152         GLM_FUNC_DECL GLM_CONSTEXPR typename mat<4, 4, T, Q>::row_type operator*(typename mat<4, 4, T, Q>::col_type const& v, mat<4, 4, T, Q> const& m);
 
  154         template<typename T, qualifier Q>
 
  155         GLM_FUNC_DECL GLM_CONSTEXPR mat<2, 4, T, Q> operator*(mat<4, 4, T, Q> const& m1, mat<2, 4, T, Q> const& m2);
 
  157         template<typename T, qualifier Q>
 
  158         GLM_FUNC_DECL GLM_CONSTEXPR mat<3, 4, T, Q> operator*(mat<4, 4, T, Q> const& m1, mat<3, 4, T, Q> const& m2);
 
  160         template<typename T, qualifier Q>
 
  161         GLM_FUNC_DECL GLM_CONSTEXPR mat<4, 4, T, Q> operator*(mat<4, 4, T, Q> const& m1, mat<4, 4, T, Q> const& m2);
 
  163         template<typename T, qualifier Q>
 
  164         GLM_FUNC_DECL GLM_CONSTEXPR mat<4, 4, T, Q> operator/(mat<4, 4, T, Q> const& m, T scalar);
 
  166         template<typename T, qualifier Q>
 
  167         GLM_FUNC_DECL GLM_CONSTEXPR mat<4, 4, T, Q> operator/(T scalar, mat<4, 4, T, Q> const& m);
 
  169         template<typename T, qualifier Q>
 
  170         GLM_FUNC_DECL GLM_CONSTEXPR typename mat<4, 4, T, Q>::col_type operator/(mat<4, 4, T, Q> const& m, typename mat<4, 4, T, Q>::row_type const& v);
 
  172         template<typename T, qualifier Q>
 
  173         GLM_FUNC_DECL GLM_CONSTEXPR typename mat<4, 4, T, Q>::row_type operator/(typename mat<4, 4, T, Q>::col_type const& v, mat<4, 4, T, Q> const& m);
 
  175         template<typename T, qualifier Q>
 
  176         GLM_FUNC_DECL GLM_CONSTEXPR mat<4, 4, T, Q> operator/(mat<4, 4, T, Q> const& m1,        mat<4, 4, T, Q> const& m2);
 
  180         template<typename T, qualifier Q>
 
  181         GLM_FUNC_DECL GLM_CONSTEXPR 
bool operator==(mat<4, 4, T, Q> const& m1, mat<4, 4, T, Q> const& m2);
 
  183         template<typename T, qualifier Q>
 
  184         GLM_FUNC_DECL GLM_CONSTEXPR 
bool operator!=(mat<4, 4, T, Q> const& m1, mat<4, 4, T, Q> const& m2);
 
  187 #ifndef GLM_EXTERNAL_TEMPLATE 
  188 #include "type_mat4x4.inl" 
  189 #endif//GLM_EXTERNAL_TEMPLATE