// Description: Matrix inverse
// Documentation: matrix_algorithms.txt
#ifndef PASTELMATH_MATRIX_INVERSE_H
#define PASTELMATH_MATRIX_INVERSE_H
#include "pastel/math/matrix/matrix.h"
namespace Pastel
{
//! Returns the inverse of the given matrix.
/*!
The inverse is computed by Gaussian elimination with
partial pivoting.
Preconditions:
matrix.m() == matrix.n()
matrix:
Square matrix A.
returns:
The inverse of the matrix A.
throws:
SingularMatrix_Exception if the matrix is
effectively singular.
Time complexity: O(n^3)
Exception safety: strong
*/
template <typename Real, typename Expression>
Matrix<Real> inverse(
const MatrixExpression<Real, Expression>& matrix);
}
#include "pastel/math/matrix/matrix_inverse.hpp"
#endif