// functions overriding virtual functions from base classes
public:
- void print(const print_context & c, unsigned level = 0) const;
size_t nops() const;
ex op(size_t i) const;
ex & let_op(size_t i);
ex eval(int level=0) const;
ex evalm() const {return *this;}
- ex subs(const lst & ls, const lst & lr, unsigned options = 0) const;
+ ex subs(const exmap & m, unsigned options = 0) const;
ex eval_indexed(const basic & i) const;
ex add_indexed(const ex & self, const ex & other) const;
ex scalar_mul_indexed(const ex & self, const numeric & other) const;
matrix transpose() const;
ex determinant(unsigned algo = determinant_algo::automatic) const;
ex trace() const;
- ex charpoly(const symbol & lambda) const;
+ ex charpoly(const ex & lambda) const;
matrix inverse() const;
matrix solve(const matrix & vars, const matrix & rhs,
unsigned algo = solve_algo::automatic) const;
int division_free_elimination(const bool det = false);
int fraction_free_elimination(const bool det = false);
int pivot(unsigned ro, unsigned co, bool symbolic = true);
+
+ void print_elements(const print_context & c, const char *row_start, const char *row_end, const char *row_sep, const char *col_sep) const;
+ void do_print(const print_context & c, unsigned level) const;
+ void do_print_latex(const print_latex & c, unsigned level) const;
+ void do_print_python_repr(const print_python_repr & c, unsigned level) const;
// member variables
protected:
inline ex trace(const matrix & m)
{ return m.trace(); }
-inline ex charpoly(const matrix & m, const symbol & lambda)
+inline ex charpoly(const matrix & m, const ex & lambda)
{ return m.charpoly(lambda); }
inline matrix inverse(const matrix & m)