# Matrix functions

Matrix functions
GLM Core

## Functions

template<typename valType >
detail::tmat2x2< valType > ::value_type | determinant (detail::tmat2x2< valType > const &m)
template<typename valType >
detail::tmat3x3< valType > ::value_type | determinant (detail::tmat3x3< valType > const &m)
template<typename valType >
detail::tmat4x4< valType > ::value_type | determinant (detail::tmat4x4< valType > const &m)
template<typename valType >
detail::tmat2x2< valType > | inverse (detail::tmat2x2< valType > const &m)
template<typename valType >
detail::tmat3x3< valType > | inverse (detail::tmat3x3< valType > const &m)
template<typename valType >
detail::tmat4x4< valType > | inverse (detail::tmat4x4< valType > const &m)
template<typename matType >
matType | matrixCompMult (matType const &x, matType const &y)
template<typename vecType , typename matType >
matType | outerProduct (vecType const &c, vecType const &r)
template<typename matType >
matType::transpose_type | transpose (matType const &x)

## Detailed Description

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

Only the single-precision floating point version is shown.

## Function Documentation

detail::tmat2x2<valType>::value_type glm::determinant | ( | detail::tmat2x2< valType > const & | m | ) |

Return the determinant of a mat2 matrix.

Template Parameters

  valType | Floating-point scalar types.

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

detail::tmat3x3<valType>::value_type glm::determinant | ( | detail::tmat3x3< valType > const & | m | ) |

Return the determinant of a mat3 matrix.

Template Parameters

  valType | Floating-point scalar types.

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

detail::tmat4x4<valType>::value_type glm::determinant | ( | detail::tmat4x4< valType > const & | m | ) |

Return the determinant of a mat4 matrix.

Template Parameters

  valType | Floating-point scalar types.

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

detail::tmat2x2<valType> glm::inverse | ( | detail::tmat2x2< valType > const & | m | ) |

Return the inverse of a mat2 matrix.

Template Parameters

  valType | Floating-point scalar types.

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

detail::tmat3x3<valType> glm::inverse | ( | detail::tmat3x3< valType > const & | m | ) |

Return the inverse of a mat3 matrix.

Template Parameters

  valType | Floating-point scalar types.

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

detail::tmat4x4<valType> glm::inverse | ( | detail::tmat4x4< valType > const & | m | ) |

Return the inverse of a mat4 matrix.

Template Parameters

  valType | Floating-point scalar types.

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

matType glm::matrixCompMult | ( | matType const & | x,
|  | matType 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

  matType | Floating-point matrix types.

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

matType glm::outerProduct | ( | vecType const & | c,
|  | vecType 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

  matType | Floating-point matrix types.

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

Todo:
  Clarify the declaration to specify that matType doesn't have to be provided when used.

matType::transpose_type glm::transpose | ( | matType const & | x | ) |

Returns the transposed matrix of x.

Template Parameters

  matType | Floating-point matrix types.

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