X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?a=blobdiff_plain;f=ginac%2Fmatrix.h;h=208b63031df6027616d9df34b4b99b4fbfa9fede;hb=f6a16c5f0c04d44e61870b834f6b2e88c98cc8a2;hp=8a70ada83decd37bbc32948c9b345b40285c4655;hpb=aff6beb8e799e6827c40975ed2f22b51976b1cb8;p=ginac.git diff --git a/ginac/matrix.h b/ginac/matrix.h index 8a70ada8..208b6303 100644 --- a/ginac/matrix.h +++ b/ginac/matrix.h @@ -89,17 +89,16 @@ public: matrix transpose(void) const; ex determinant(void) const; ex trace(void) const; - ex charpoly(const ex & lambda) const; + ex charpoly(const symbol & lambda) const; matrix inverse(void) const; matrix fraction_free_elim(const matrix & vars, const matrix & v) const; matrix solve(const matrix & vars, const matrix & rhs) const; matrix old_solve(const matrix & v) const; // FIXME: may be removed protected: - ex determinant_numeric(void) const; - ex determinant_symbolic_minor(void) const; - ex determinant_symbolic_perm(void) const; + ex determinant_minor(void) const; int gauss_elimination(void); - int fraction_free_elimination(void); + int division_free_elimination(void); + int fraction_free_elimination(bool det = false); int pivot(unsigned ro, bool symbolic=true); private: // FIXME: these should be obsoleted void ffe_swap(unsigned r1, unsigned c1, unsigned r2 ,unsigned c2); @@ -150,7 +149,7 @@ inline ex determinant(const matrix & m) inline ex trace(const matrix & m) { return m.trace(); } -inline ex charpoly(const matrix & m, const ex & lambda) +inline ex charpoly(const matrix & m, const symbol & lambda) { return m.charpoly(lambda); } inline matrix inverse(const matrix & m) @@ -162,6 +161,8 @@ inline const matrix &ex_to_matrix(const ex &e) return static_cast(*e.bp); } +extern ex lst_to_matrix(const ex &l); + #ifndef NO_NAMESPACE_GINAC } // namespace GiNaC #endif // ndef NO_NAMESPACE_GINAC