@@ -11,48 +11,78 @@ int main()
glm::mat2x3 m(1.0f);
glm::vec2 u(1.0f);
glm::vec3 v(1.0f);
+ float x = 1.0f;
glm::vec3 a = m * u;
glm::vec2 b = v * m;
+ glm::mat2x3 n = x / m;
+ glm::mat2x3 o = m / x;
+ glm::mat2x3 p = x * m;
+ glm::mat2x3 q = m * x;
}
{
glm::mat2x4 m(1.0f);
glm::vec4 v(1.0f);
glm::vec4 a = m * u;
+ glm::mat2x4 n = x / m;
+ glm::mat2x4 o = m / x;
+ glm::mat2x4 p = x * m;
+ glm::mat2x4 q = m * x;
glm::mat3x2 m(1.0f);
glm::vec3 u(1.0f);
glm::vec2 v(1.0f);
glm::vec2 a = m * u;
glm::vec3 b = v * m;
+ glm::mat3x2 n = x / m;
+ glm::mat3x2 o = m / x;
+ glm::mat3x2 p = x * m;
+ glm::mat3x2 q = m * x;
glm::mat3x4 m(1.0f);
+ glm::mat3x4 n = x / m;
+ glm::mat3x4 o = m / x;
+ glm::mat3x4 p = x * m;
+ glm::mat3x4 q = m * x;
glm::mat4x2 m(1.0f);
glm::vec4 u(1.0f);
glm::vec4 b = v * m;
+ glm::mat4x2 n = x / m;
+ glm::mat4x2 o = m / x;
+ glm::mat4x2 p = x * m;
+ glm::mat4x2 q = m * x;
glm::mat4x3 m(1.0f);
+ glm::mat4x3 n = x / m;
+ glm::mat4x3 o = m / x;
+ glm::mat4x3 p = x * m;
+ glm::mat4x3 q = m * x;
//{
@@ -157,12 +157,12 @@ namespace glm
tmat3x2<T> const & m2);
template <typename T>
- tmat3x2<T> operator/ (
+ tmat2x3<T> operator/ (
tmat2x3<T> const & m,
typename tmat2x3<T>::value_type const & s);
typename tmat2x3<T>::value_type const & s,
tmat2x3<T> const & m);
@@ -463,8 +463,7 @@ namespace detail
return tmat2x3<T>(
m[0] / s,
- m[1] / s,
- m[2] / s);
+ m[1] / s);
@@ -476,8 +475,7 @@ namespace detail
s / m[0],
- s / m[1],
- s / m[2]);
+ s / m[1]);
// Unary constant operators
@@ -480,9 +480,7 @@ namespace detail
return tmat2x4<T>(
- m[2] / s,
- m[3] / s);
@@ -494,9 +492,7 @@ namespace detail
- s / m[2],
- s / m[3]);
@@ -491,8 +491,7 @@ namespace detail
return tmat3x2<T>(
m[1] / s,
+ m[2] / s);
@@ -505,8 +504,7 @@ namespace detail
s / m[1],
+ s / m[2]);