/[GiNaC]/ginac/add.h
ViewVC logotype

Contents of /ginac/add.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (show annotations)
Tue Nov 9 19:57:00 1999 UTC (14 years, 10 months ago) by cbauer
Branch: MAIN
File MIME type: text/plain
- switched to automake build environment

1 /** @file add.h
2 *
3 * Interface to GiNaC's sums of expressions. */
4
5 #ifndef _ADD_H_
6 #define _ADD_H_
7
8 #include "expairseq.h"
9
10 /** Sum of expressions. */
11 class add : public expairseq
12 {
13 friend class mul;
14 friend class ncmul;
15 friend class power;
16
17 // member functions
18
19 // default constructor, destructor, copy constructor assignment operator and helpers
20 public:
21 add();
22 ~add();
23 add(add const & other);
24 add const & operator=(add const & other);
25 protected:
26 void copy(add const & other);
27 void destroy(bool call_parent);
28
29 // other constructors
30 public:
31 add(ex const & lh, ex const & rh);
32 add(exvector const & v);
33 add(epvector const & v);
34 //add(epvector const & v, bool do_not_canonicalize=0);
35 add(epvector const & v, ex const & oc);
36 add(epvector * vp, ex const & oc);
37
38 // functions overriding virtual functions from bases classes
39 public:
40 basic * duplicate() const;
41 void printraw(ostream & os) const;
42 void print(ostream & os, unsigned upper_precedence=0) const;
43 void printcsrc(ostream & os, unsigned type, unsigned upper_precedence=0) const;
44 bool info(unsigned inf) const;
45 int degree(symbol const & s) const;
46 int ldegree(symbol const & s) const;
47 ex coeff(symbol const & s, int const n=1) const;
48 ex eval(int level=0) const;
49 ex diff(symbol const & s) const;
50 ex series(symbol const & s, ex const & point, int order) const;
51 ex normal(lst &sym_lst, lst &repl_lst, int level=0) const;
52 numeric integer_content(void) const;
53 ex smod(numeric const &xi) const;
54 numeric max_coefficient(void) const;
55 exvector get_indices(void) const;
56 ex simplify_ncmul(exvector const & v) const;
57 protected:
58 int compare_same_type(basic const & other) const;
59 bool is_equal_same_type(basic const & other) const;
60 unsigned return_type(void) const;
61 unsigned return_type_tinfo(void) const;
62 ex thisexpairseq(epvector const & v, ex const & oc) const;
63 ex thisexpairseq(epvector * vp, ex const & oc) const;
64 void printpair(ostream & os, expair const & p,
65 unsigned upper_precedence) const;
66 expair split_ex_to_pair(ex const & e) const;
67 expair combine_ex_with_coeff_to_pair(ex const & e,
68 ex const & c) const;
69 expair combine_pair_with_coeff_to_pair(expair const & p,
70 ex const & c) const;
71 ex recombine_pair_to_ex(expair const & p) const;
72 ex expand(unsigned options=0) const;
73
74 // new virtual functions which can be overridden by derived classes
75 // none
76
77 // non-virtual functions in this class
78 // none
79
80 // member variables
81
82 protected:
83 static unsigned precedence;
84 };
85
86 // global constants
87
88 extern const add some_add;
89 extern type_info const & typeid_add;
90
91 #define ex_to_add(X) static_cast<add const &>(*(X).bp)
92
93 #endif // ndef _ADD_H_
94

Christian Bauer">Christian Bauer
ViewVC Help
Powered by ViewVC 1.1.17