diff --git a/ginac/matrix.cpp b/ginac/matrix.cpp index 915d4543..14c27d50 100644 --- a/ginac/matrix.cpp +++ b/ginac/matrix.cpp @@ -942,7 +942,7 @@ ex matrix::charpoly(const ex & lambda) const * @return the inverted matrix * @exception logic_error (matrix not square) * @exception runtime_error (singular matrix) */ -matrix matrix::inverse() const +matrix matrix::inverse(unsigned algo) const { if (row != col) throw (std::logic_error("matrix::inverse(): matrix not square")); @@ -965,7 +965,7 @@ matrix matrix::inverse() const matrix sol(row,col); try { - sol = this->solve(vars,identity); + sol = this->solve(vars,identity,algo); } catch (const std::runtime_error & e) { if (e.what()==std::string("matrix::solve(): inconsistent linear system")) throw (std::runtime_error("matrix::inverse(): singular matrix")); diff --git a/ginac/matrix.h b/ginac/matrix.h index 1bb549b0..ce26d163 100644 --- a/ginac/matrix.h +++ b/ginac/matrix.h @@ -148,7 +148,7 @@ public: ex determinant(unsigned algo = determinant_algo::automatic) const; ex trace() const; ex charpoly(const ex & lambda) const; - matrix inverse() const; + matrix inverse(unsigned algo = solve_algo::automatic) const; matrix solve(const matrix & vars, const matrix & rhs, unsigned algo = solve_algo::automatic) const; unsigned rank() const;