X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=ginac%2Fmatrix.h;h=44351d65885f6f11b755fa08b4476302c05fc087;hp=cf7dd03954a2e73331d26a113499380584253769;hb=26840ecc367d9f9dd4e3758233be1bdd3563cd8a;hpb=48619ed77871a6bcae23df460f426fc34698cd1e diff --git a/ginac/matrix.h b/ginac/matrix.h index cf7dd039..44351d65 100644 --- a/ginac/matrix.h +++ b/ginac/matrix.h @@ -153,9 +153,11 @@ public: matrix solve(const matrix & vars, const matrix & rhs, unsigned algo = solve_algo::automatic) const; unsigned rank() const; + unsigned rank(unsigned solve_algo) const; bool is_zero_matrix() const; protected: ex determinant_minor() const; + std::vector echelon_form(unsigned algo, int n); int gauss_elimination(const bool det = false); int division_free_elimination(const bool det = false); int fraction_free_elimination(const bool det = false); @@ -219,6 +221,8 @@ inline matrix inverse(const matrix & m, unsigned algo) inline unsigned rank(const matrix & m) { return m.rank(); } +inline unsigned rank(const matrix & m, unsigned solve_algo) +{ return m.rank(solve_algo); } // utility functions