Matrix functions
Core features

Include <glm/matrix.hpp> to use these core features. More...

## Functions

template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL T | determinant (mat< C, R, T, Q > const &m)
| Return the determinant of a squared matrix. More...
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL mat< C, R, T, Q > | inverse (mat< C, R, T, Q > const &m)
| Return the inverse of a squared matrix. More...
template<length_t C, length_t R, typename T , qualifier Q>
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 y[i][j]. More...
template<length_t C, length_t R, typename T , qualifier Q>
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 linear algebraic matrix multiply c * r. More...
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL mat< C, R, T, Q >::transpose_type | transpose (mat< C, R, T, Q > const &x)
| Returns the transposed matrix of x. More...

## Detailed Description

Include <glm/matrix.hpp> to use these core features.

For each of the following built-in matrix functions, there is both a single-qualifier floating point version, where all arguments and return values are single qualifier, and a double-qualifier floating version, where all arguments and return values are double qualifier. Only the single-qualifier floating point version is shown.

## Function Documentation

GLM_FUNC_DECL T glm::determinant | ( | mat< C, R, T, Q > const & | m | ) |

Return the determinant of a squared matrix.

Template Parameters

  C | Integer between 1 and 4 included that qualify the number a column
  R | Integer between 1 and 4 included that qualify the number a row
  T | Floating-point or signed integer scalar types
  Q | Value from qualifier enum

See also
  GLSL determinant man page
  GLSL 4.20.8 specification, section 8.6 Matrix Functions

GLM_FUNC_DECL mat< C, R, T, Q > inverse | ( | mat< C, R, T, Q > const & | m | ) |

Return the inverse of a squared matrix.

Template Parameters

  C | Integer between 1 and 4 included that qualify the number a column
  R | Integer between 1 and 4 included that qualify the number a row
  T | Floating-point or signed integer scalar types
  Q | Value from qualifier enum

See also
  GLSL inverse man page
  GLSL 4.20.8 specification, section 8.6 Matrix Functions

GLM_FUNC_DECL mat<C, R, T, Q> glm::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 y[i][j].

Template Parameters

  C | Integer between 1 and 4 included that qualify the number a column
  R | Integer between 1 and 4 included that qualify the number a row
  T | Floating-point or signed integer scalar types
  Q | Value from qualifier enum

See also
  GLSL matrixCompMult man page
  GLSL 4.20.8 specification, section 8.6 Matrix Functions

GLM_FUNC_DECL detail::outerProduct_trait<C, R, T, Q>::type glm::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 linear algebraic matrix multiply c * r.

Template Parameters

  C | Integer between 1 and 4 included that qualify the number a column
  R | Integer between 1 and 4 included that qualify the number a row
  T | Floating-point or signed integer scalar types
  Q | Value from qualifier enum

See also
  GLSL outerProduct man page
  GLSL 4.20.8 specification, section 8.6 Matrix Functions

GLM_FUNC_DECL mat<C, R, T, Q>::transpose_type glm::transpose | ( | mat< C, R, T, Q > const & | x | ) |

Returns the transposed matrix of x.

Template Parameters

  C | Integer between 1 and 4 included that qualify the number a column
  R | Integer between 1 and 4 included that qualify the number a row
  T | Floating-point or signed integer scalar types
  Q | Value from qualifier enum

See also
  GLSL transpose man page
  GLSL 4.20.8 specification, section 8.6 Matrix Functions