3 * Definition of GiNaC's exprseq.
4 * This file was generated automatically by container.pl.
5 * Please do not modify it directly, edit the perl script instead!
6 * container.pl options: $CONTAINER=exprseq
19 #include <ginac/ginac.h>
21 typedef vector<ex> exvector;
23 class exprseq : public basic
29 exprseq(exprseq const & other);
30 exprseq const & operator=(exprseq const & other);
32 void copy(exprseq const & other);
33 void destroy(bool call_parent);
36 exprseq(exvector const & s, bool discardable=0);
37 exprseq(exvector * vp); // vp will be deleted
38 explicit exprseq(ex const & e1);
39 explicit exprseq(ex const & e1, ex const & e2);
40 explicit exprseq(ex const & e1, ex const & e2, ex const & e3);
41 explicit exprseq(ex const & e1, ex const & e2, ex const & e3,
43 explicit exprseq(ex const & e1, ex const & e2, ex const & e3,
44 ex const & e4, ex const & e5);
45 explicit exprseq(ex const & e1, ex const & e2, ex const & e3,
46 ex const & e4, ex const & e5, ex const & e6);
47 explicit exprseq(ex const & e1, ex const & e2, ex const & e3,
48 ex const & e4, ex const & e5, ex const & e6,
50 explicit exprseq(ex const & e1, ex const & e2, ex const & e3,
51 ex const & e4, ex const & e5, ex const & e6,
52 ex const & e7, ex const & e8);
53 explicit exprseq(ex const & e1, ex const & e2, ex const & e3,
54 ex const & e4, ex const & e5, ex const & e6,
55 ex const & e7, ex const & e8, ex const & e9);
56 explicit exprseq(ex const & e1, ex const & e2, ex const & e3,
57 ex const & e4, ex const & e5, ex const & e6,
58 ex const & e7, ex const & e8, ex const & e9,
62 basic * duplicate() const;
63 void printraw(ostream & os) const;
64 void print(ostream & os, unsigned upper_precedence=0) const;
65 void printtree(ostream & os, unsigned indent) const;
66 bool info(unsigned inf) const;
68 ex & let_op(int const i);
69 ex expand(unsigned options=0) const;
70 bool has(ex const & other) const;
71 ex eval(int level=0) const;
72 ex evalf(int level=0) const;
73 ex normal(lst &sym_lst, lst &repl_lst, int level=0) const;
74 ex diff(symbol const & s) const;
75 ex subs(lst const & ls, lst const & lr) const;
77 int compare_same_type(basic const & other) const;
78 bool is_equal_same_type(basic const & other) const;
79 unsigned return_type(void) const;
81 // new virtual functions which can be overridden by derived classes
83 virtual exprseq & append(ex const & b);
84 // no prepend possible for exprseq
86 virtual void printseq(ostream & os, char openbracket, char delim,
87 char closebracket, unsigned this_precedence,
88 unsigned upper_precedence=0) const;
89 virtual ex thisexprseq(exvector const & v) const;
90 virtual ex thisexprseq(exvector * vp) const;
93 bool is_canonical() const;
94 exvector evalchildren(int level) const;
95 exvector evalfchildren(int level) const;
96 exvector normalchildren(int level) const;
97 exvector diffchildren(symbol const & s) const;
98 exvector * subschildren(lst const & ls, lst const & lr) const;
102 static unsigned precedence;
107 extern const exprseq some_exprseq;
108 extern type_info const & typeid_exprseq;
112 #define ex_to_exprseq(X) (static_cast<exprseq const &>(*(X).bp))
114 #endif // ndef _EXPRSEQ_H_