- modified the comment blocks so the copyright message no longer appears in
[ginac.git] / ginac / flags.h
1 /** @file flags.h
2  *
3  *  Collection of all flags used through the GiNaC framework. */
4
5 /*
6  *  GiNaC Copyright (C) 1999 Johannes Gutenberg University Mainz, Germany
7  *
8  *  This program is free software; you can redistribute it and/or modify
9  *  it under the terms of the GNU General Public License as published by
10  *  the Free Software Foundation; either version 2 of the License, or
11  *  (at your option) any later version.
12  *
13  *  This program is distributed in the hope that it will be useful,
14  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  *  GNU General Public License for more details.
17  *
18  *  You should have received a copy of the GNU General Public License
19  *  along with this program; if not, write to the Free Software
20  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
21  */
22
23 #ifndef __GINAC_FLAGS_H__
24 #define __GINAC_FLAGS_H__
25
26 class expand_options {
27 public:
28     enum { expand_trigonometric      = 0x0001
29          };
30 };
31
32 class status_flags {
33 public:
34     enum { dynallocated              = 0x0001,
35            evaluated                 = 0x0002,
36            expanded                  = 0x0004,
37            hash_calculated           = 0x0008
38          };
39 };
40
41 class info_flags {
42 public:
43     enum { 
44            // answered by class numeric
45            numeric,
46            real,
47            rational,
48            integer,
49            positive,
50            negative,
51            nonnegative,
52            posint,
53            negint,
54            nonnegint,
55            even,
56            odd,
57            prime,
58
59            // answered by class relation
60            relation,
61            relation_equal,
62            relation_not_equal,
63            relation_less,
64            relation_less_or_equal,
65            relation_greater,
66            relation_greater_or_equal,
67
68            // answered by class symbol
69            symbol,
70
71            // answered by class lst
72            list,
73
74            // answered by class exprseq
75            exprseq,
76
77            // answered by classes numeric, symbol, add, mul, power
78            polynomial,
79            integer_polynomial,
80            rational_polynomial,
81            rational_function,
82
83            // answered by class ex
84            normal_form,
85            
86            // answered by class indexed
87            indexed,      // class can carry indices
88            has_indices,  // object has at least one index
89
90            // answered by class idx
91            idx,
92
93            // answered by class coloridx
94            coloridx,
95
96            // answered by class lorentzidx
97            lorentzidx
98     };
99 };
100
101 class return_types {
102 public:
103     enum { commutative, noncommutative, noncommutative_composite};
104 };
105
106 class csrc_types {
107 public:
108         enum {
109                 ctype_float,
110                 ctype_double,
111                 ctype_cl_N
112         };
113 };
114
115 #endif // ndef __GINAC_FLAGS_H__