13     template<
typename T, qualifier Q>
    14     struct mat<2, 3, T, Q>
    16         typedef vec<3, T, Q> col_type;
    17         typedef vec<2, T, Q> row_type;
    18         typedef mat<2, 3, T, Q> type;
    19         typedef mat<3, 2, T, Q> transpose_type;
    28         typedef length_t length_type;
    29         GLM_FUNC_DECL 
static GLM_CONSTEXPR length_type 
length() { 
return 2; }
    31         GLM_FUNC_DECL col_type & operator[](length_type i);
    32         GLM_FUNC_DECL GLM_CONSTEXPR col_type 
const& operator[](length_type i) 
const;
    36         GLM_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT;
    38         GLM_FUNC_DECL GLM_CONSTEXPR mat(mat<2, 3, T, P> const& m);
    40         GLM_FUNC_DECL explicit GLM_CONSTEXPR mat(T scalar);
    41         GLM_FUNC_DECL GLM_CONSTEXPR mat(
    44         GLM_FUNC_DECL GLM_CONSTEXPR mat(
    50         template<typename X1, typename Y1, typename Z1, typename X2, typename Y2, typename Z2>
    51         GLM_FUNC_DECL GLM_CONSTEXPR mat(
    55         template<typename U, typename V>
    56         GLM_FUNC_DECL GLM_CONSTEXPR mat(
    57             vec<3, U, Q> const& v1,
    58             vec<3, V, Q> const& v2);
    62         template<typename U, qualifier P>
    63         GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 3, U, P> const& m);
    65         GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 2, T, Q> const& x);
    66         GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 3, T, Q> const& x);
    67         GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 4, T, Q> const& x);
    68         GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 4, T, Q> const& x);
    69         GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 2, T, Q> const& x);
    70         GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 4, T, Q> const& x);
    71         GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 2, T, Q> const& x);
    72         GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 3, T, Q> const& x);
    77         GLM_FUNC_DECL mat<2, 3, T, Q> & operator=(mat<2, 3, U, Q> const& m);
    79         GLM_FUNC_DECL mat<2, 3, T, Q> & operator+=(U s);
    81         GLM_FUNC_DECL mat<2, 3, T, Q> & operator+=(mat<2, 3, U, Q> const& m);
    83         GLM_FUNC_DECL mat<2, 3, T, Q> & operator-=(U s);
    85         GLM_FUNC_DECL mat<2, 3, T, Q> & operator-=(mat<2, 3, U, Q> const& m);
    87         GLM_FUNC_DECL mat<2, 3, T, Q> & operator*=(U s);
    89         GLM_FUNC_DECL mat<2, 3, T, Q> & operator/=(U s);
    93         GLM_FUNC_DECL mat<2, 3, T, Q> & operator++ ();
    94         GLM_FUNC_DECL mat<2, 3, T, Q> & operator-- ();
    95         GLM_FUNC_DECL mat<2, 3, T, Q> operator++(
int);
    96         GLM_FUNC_DECL mat<2, 3, T, Q> operator--(
int);
   101     template<typename T, qualifier Q>
   102     GLM_FUNC_DECL mat<2, 3, T, Q> operator+(mat<2, 3, T, Q> const& m);
   104     template<typename T, qualifier Q>
   105     GLM_FUNC_DECL mat<2, 3, T, Q> operator-(mat<2, 3, T, Q> const& m);
   109     template<typename T, qualifier Q>
   110     GLM_FUNC_DECL mat<2, 3, T, Q> operator+(mat<2, 3, T, Q> const& m, T scalar);
   112     template<typename T, qualifier Q>
   113     GLM_FUNC_DECL mat<2, 3, T, Q> operator+(mat<2, 3, T, Q> const& m1, mat<2, 3, T, Q> const& m2);
   115     template<typename T, qualifier Q>
   116     GLM_FUNC_DECL mat<2, 3, T, Q> operator-(mat<2, 3, T, Q> const& m, T scalar);
   118     template<typename T, qualifier Q>
   119     GLM_FUNC_DECL mat<2, 3, T, Q> operator-(mat<2, 3, T, Q> const& m1, mat<2, 3, T, Q> const& m2);
   121     template<typename T, qualifier Q>
   122     GLM_FUNC_DECL mat<2, 3, T, Q> operator*(mat<2, 3, T, Q> const& m, T scalar);
   124     template<typename T, qualifier Q>
   125     GLM_FUNC_DECL mat<2, 3, T, Q> operator*(T scalar, mat<2, 3, T, Q> const& m);
   127     template<typename T, qualifier Q>
   128     GLM_FUNC_DECL typename mat<2, 3, T, Q>::col_type operator*(mat<2, 3, T, Q> const& m, typename mat<2, 3, T, Q>::row_type const& v);
   130     template<typename T, qualifier Q>
   131     GLM_FUNC_DECL typename mat<2, 3, T, Q>::row_type operator*(typename mat<2, 3, T, Q>::col_type const& v, mat<2, 3, T, Q> const& m);
   133     template<typename T, qualifier Q>
   134     GLM_FUNC_DECL mat<2, 3, T, Q> operator*(mat<2, 3, T, Q> const& m1, mat<2, 2, T, Q> const& m2);
   136     template<typename T, qualifier Q>
   137     GLM_FUNC_DECL mat<3, 3, T, Q> operator*(mat<2, 3, T, Q> const& m1, mat<3, 2, T, Q> const& m2);
   139     template<typename T, qualifier Q>
   140     GLM_FUNC_DECL mat<4, 3, T, Q> operator*(mat<2, 3, T, Q> const& m1, mat<4, 2, T, Q> const& m2);
   142     template<typename T, qualifier Q>
   143     GLM_FUNC_DECL mat<2, 3, T, Q> operator/(mat<2, 3, T, Q> const& m, T scalar);
   145     template<typename T, qualifier Q>
   146     GLM_FUNC_DECL mat<2, 3, T, Q> operator/(T scalar, mat<2, 3, T, Q> const& m);
   150     template<typename T, qualifier Q>
   151     GLM_FUNC_DECL 
bool operator==(mat<2, 3, T, Q> const& m1, mat<2, 3, T, Q> const& m2);
   153     template<typename T, qualifier Q>
   154     GLM_FUNC_DECL 
bool operator!=(mat<2, 3, T, Q> const& m1, mat<2, 3, T, Q> const& m2);
   157 #ifndef GLM_EXTERNAL_TEMPLATE   158 #include "type_mat2x3.inl" 
GLM_FUNC_DECL T length(qua< T, Q > const &q)
Returns the norm of a quaternions.