- virtual int degree(const symbol & s) const;
- virtual int ldegree(const symbol & s) const;
- virtual ex coeff(const symbol & s, int n = 1) const;
- virtual ex collect(const symbol & s) const;
- virtual ex eval(int level = 0) const;
- virtual ex evalf(int level = 0) const;
+ virtual bool match(const ex & pattern, lst & repl_lst) const;
+protected:
+ virtual bool match_same_type(const basic & other) const;
+public:
+
+ // substitutions
+ virtual ex subs(const exmap & m, unsigned options = 0) const;
+
+ // function mapping
+ virtual ex map(map_function & f) const;
+
+ // visitors and tree traversal
+ virtual void accept(GiNaC::visitor & v) const
+ {
+ if (visitor *p = dynamic_cast<visitor *>(&v))
+ p->visit(*this);
+ }
+
+ // degree/coeff
+ virtual int degree(const ex & s) const;
+ virtual int ldegree(const ex & s) const;
+ virtual ex coeff(const ex & s, int n = 1) const;
+
+ // expand/collect
+ virtual ex expand(unsigned options = 0) const;
+ virtual ex collect(const ex & s, bool distributed = false) const;
+
+ // differentiation and series expansion
+protected:
+ virtual ex derivative(const symbol & s) const;
+public: