- switched to automake build environment
[ginac.git] / ginac / flags.h
1 /** @file flags.h
2  *
3  *  Collection of all flags used through the GiNaC framework. */
4
5 #ifndef _FLAGS_H_
6 #define _FLAGS_H_
7
8 class expand_options {
9 public:
10     enum { expand_trigonometric      = 0x0001
11          };
12 };
13
14 class status_flags {
15 public:
16     enum { dynallocated              = 0x0001,
17            evaluated                 = 0x0002,
18            expanded                  = 0x0004,
19            hash_calculated           = 0x0008
20          };
21 };
22
23 class info_flags {
24 public:
25     enum { 
26            // answered by class numeric
27            numeric,
28            real,
29            rational,
30            integer,
31            positive,
32            negative,
33            nonnegative,
34            posint,
35            negint,
36            nonnegint,
37            even,
38            odd,
39            prime,
40
41            // answered by class relation
42            relation,
43            relation_equal,
44            relation_not_equal,
45            relation_less,
46            relation_less_or_equal,
47            relation_greater,
48            relation_greater_or_equal,
49
50            // answered by class symbol
51            symbol,
52
53            // answered by class lst
54            list,
55
56            // answered by class exprseq
57            exprseq,
58
59            // answered by classes numeric, symbol, add, mul, power
60            polynomial,
61            integer_polynomial,
62            rational_polynomial,
63            rational_function,
64
65            // answered by class ex
66            normal_form,
67            
68            // answered by class indexed
69            indexed,      // class can carry indices
70            has_indices,  // object has at least one index
71
72            // answered by class idx
73            idx,
74
75            // answered by class coloridx
76            coloridx,
77
78            // answered by class lorentzidx
79            lorentzidx
80     };
81 };
82
83 class return_types {
84 public:
85     enum { commutative, noncommutative, noncommutative_composite};
86 };
87
88 class csrc_types {
89 public:
90         enum {
91                 ctype_float,
92                 ctype_double,
93                 ctype_cl_N
94         };
95 };
96
97 #endif // ndef _FLAGS_H_