atlas  0.6
atlas-types.h
Go to the documentation of this file.
1 /*2:*/
2 #line 52 "atlas-types.w"
3 #ifndef ATLAS_TYPES_H
4 #define ATLAS_TYPES_H/*5:*/
5 #line 92 "atlas-types.w"
6 #include "axis-types.h"/*:5*//*6:*/
7 #line 100 "atlas-types.w"
8 #include "../Atlas.h"
9 #include <stdexcept>
10 #include "lietype.h"/*:6*//*30:*/
11 #line 768 "atlas-types.w"
12 #include "rootdata.h"/*:30*//*48:*/
13 #line 1279 "atlas-types.w"
14 #include "innerclass.h"/*:48*//*58:*/
15 #line 1608 "atlas-types.w"
16 #include "output.h"/*:58*//*75:*/
17 #line 2125 "atlas-types.w"
18 #include "realredgp.h"
19 #include "kgb.h"/*:75*//*92:*/
20 #line 2548 "atlas-types.w"
21 #include "cartanclass.h"/*:92*//*122:*/
22 #line 3266 "atlas-types.w"
23 #include "blocks.h"/*:122*//*133:*/
24 #line 3530 "atlas-types.w"
25 #include "repr.h"/*:133*//*156:*/
26 #line 4184 "atlas-types.w"
27 #include "arithmetic.h"/*:156*//*162:*/
28 #line 4325 "atlas-types.w"
29 #include "free_abelian.h" /*:162*/
30 #line 55 "atlas-types.w"
31 
32 namespace atlas{namespace interpreter{/*7:*/
33 #line 112 "atlas-types.w"
35 {LieType val;
36 
37 Lie_type_value():val(){}
38 
39 Lie_type_value(LieType t):val(t){}
40 
41 
42 virtual void print(std::ostream&out)const;
43 Lie_type_value*clone()const{return new Lie_type_value(*this);}
44 static const char*name(){return "Lie type";}
45 
46 void add_simple_factor(char,size_t);
47 private:
48 Lie_type_value(const Lie_type_value&v):val(v.val){}
49 
50 };
51 
52 typedef std::shared_ptr<const Lie_type_value>shared_Lie_type;
53 typedef std::shared_ptr<Lie_type_value>own_Lie_type;/*:7*//*31:*/
54 #line 773 "atlas-types.w"
56 {RootDatum val;
57 
58 root_datum_value(const RootDatum&v):val(v){}
59 virtual void print(std::ostream&out)const;
60 root_datum_value*clone()const{return new root_datum_value(*this);}
61 static const char*name(){return "root datum";}
62 private:
63 root_datum_value(const root_datum_value&v):val(v.val){}
64 };
65 
66 typedef std::unique_ptr<root_datum_value>root_datum_ptr;
67 typedef std::shared_ptr<const root_datum_value>shared_root_datum;/*:31*//*59:*/
68 #line 1652 "atlas-types.w"
70 {InnerClass&val;
71 InnerClass&dual;
72 size_t&ref_count;
73 
76 const output::FormNumberMap interface,dual_interface;
77 
79 (std::unique_ptr<InnerClass>G,const lietype::Layout&lo);
81 
82 virtual void print(std::ostream&out)const;
84 {return new inner_class_value(*this);}
85 static const char*name(){return "inner class";}
86 
89 
90 };
91 
92 typedef std::shared_ptr<const inner_class_value>shared_inner_class;/*:59*//*76:*/
93 #line 2144 "atlas-types.w"
96 RealReductiveGroup val;
97 
99 :parent(p),val(p.val,f)
100 ,rt_p(nullptr){}
103 ,const RatCoweight&coch,TorusPart tp)
104 :parent(p),val(p.val,f,coch,tp)
105 ,rt_p(nullptr){}
106 
107 virtual void print(std::ostream&out)const;
109 {return new real_form_value(*this);}
110 static const char*name(){return "real form";}
111 const KGB&kgb(){return val.kgb();}
112 
113 const Rep_context&rc();
114 Rep_table&rt();
115 ~real_form_value(){delete rt_p;}
116 private:
117 Rep_table*rt_p;
118 
119 };
120 
121 typedef std::shared_ptr<const real_form_value>shared_real_form;
122 typedef std::shared_ptr<real_form_value>own_real_form;/*:76*//*93:*/
123 #line 2557 "atlas-types.w"
126 size_t number;
127 const CartanClass&val;
128 
129 Cartan_class_value(const inner_class_value&p,size_t cn);
131 
132 virtual void print(std::ostream&out)const;
134 {return new Cartan_class_value(*this);}
135 static const char*name(){return "Cartan class";}
136 private:
138 :parent(v.parent),number(v.number),val(v.val){}
139 };
140 
141 typedef std::shared_ptr<const Cartan_class_value>shared_Cartan_class;/*:93*//*109:*/
142 #line 2954 "atlas-types.w"
144 {own_real_form rf;
146 
147 KGB_elt_value(const own_real_form&form,KGBElt x):rf(form),val(x){}
149 
150 virtual void print(std::ostream&out)const;
151 KGB_elt_value*clone()const{return new KGB_elt_value(*this);}
152 static const char*name(){return "KGB element";}
153 private:
155 :rf(v.rf),val(v.val){}
156 };
157 
158 typedef std::unique_ptr<KGB_elt_value>KGB_elt_ptr;
159 typedef std::shared_ptr<const KGB_elt_value>shared_KGB_elt;
160 typedef std::shared_ptr<KGB_elt_value>own_KGB_elt;/*:109*//*123:*/
161 #line 3275 "atlas-types.w"
162 struct Block_value:public value_base
163 {const own_real_form rf;const own_real_form dual_rf;
164 Block val;
165 
166 Block_value(const own_real_form&form,const own_real_form&dual_form);
168 
169 virtual void print(std::ostream&out)const;
170 Block_value*clone()const{return new Block_value(*this);}
171 static const char*name(){return "KGB element";}
172 private:
174 :rf(v.rf),val(v.val){}
175 };
176 
177 typedef std::unique_ptr<Block_value>Block_ptr;
178 typedef std::shared_ptr<const Block_value>shared_Block;
179 typedef std::shared_ptr<Block_value>own_Block;/*:123*//*134:*/
180 #line 3538 "atlas-types.w"
182 {own_real_form rf;
183 StandardRepr val;
184 
185 module_parameter_value(const own_real_form&form,const StandardRepr&v)
186 :rf(form),val(v){}
188 
189 virtual void print(std::ostream&out)const;
191 {return new module_parameter_value(*this);}
192 static const char*name(){return "module parameter";}
193 
194 const Rep_context&rc()const{return rf->rc();}
195 Rep_table&rt()const{return rf->rt();}
196 private:
198 :rf(v.rf),val(v.val){}
199 };
200 
201 typedef std::unique_ptr<module_parameter_value>module_parameter_ptr;
202 typedef std::shared_ptr<const module_parameter_value>shared_module_parameter;
203 typedef std::shared_ptr<module_parameter_value>own_module_parameter;/*:134*//*157:*/
204 #line 4195 "atlas-types.w"
206 {Split_integer val;
207 
208 explicit split_int_value(Split_integer v):val(v){}
210 void print(std::ostream&out)const;
211 split_int_value*clone()const{return new split_int_value(*this);}
212 static const char*name(){return "split integer";}
213 private:
214 split_int_value(const split_int_value&v):val(v.val){}
215 };
216 
217 typedef std::unique_ptr<split_int_value>split_int_ptr;
218 typedef std::shared_ptr<const split_int_value>shared_split_int;
219 typedef std::shared_ptr<split_int_value>own_split_int;/*:157*//*163:*/
220 #line 4331 "atlas-types.w"
222 {own_real_form rf;
224 
225 virtual_module_value(const own_real_form&form,const repr::SR_poly&v)
226 :rf(form),val(v){}
228 
229 virtual void print(std::ostream&out)const;
231 {return new virtual_module_value(*this);}
232 static const char*name(){return "module parameter";}
233 
234 const Rep_context&rc()const{return rf->rc();}
235 Rep_table&rt()const{return rf->rt();}
236 private:
238 :rf(v.rf),val(v.val){}
239 };
240 
241 typedef std::unique_ptr<virtual_module_value>virtual_module_ptr;
242 typedef std::shared_ptr<const virtual_module_value>shared_virtual_module;
243 typedef std::shared_ptr<virtual_module_value>own_virtual_module;/*:163*//*3:*/
244 #line 66 "atlas-types.w"
245 void initialise_builtin_types();/*:3*/
246 #line 58 "atlas-types.w"
247 
248 }}
249 #endif/*:2*/
Definition: output.h:74
own_real_form rf
Definition: atlas-types.h:144
root_datum_value(const RootDatum &v)
Definition: atlas-types.h:58
root_datum_value(const root_datum_value &v)
Definition: atlas-types.h:63
lietype::LieType rd_type
Definition: atlas-types.h:74
Definition: atlas-types.h:181
Definition: lietype.h:92
InnerClass & val
Definition: atlas-types.h:70
real_form_value(const inner_class_value &p, RealFormNbr f)
Definition: atlas-types.h:98
std::shared_ptr< const Lie_type_value > shared_Lie_type
Definition: atlas-types.h:52
uA p
Definition: lists.cpp:26
const Rep_context & rc() const
Definition: atlas-types.h:234
const inner_class_value parent
Definition: atlas-types.h:125
~split_int_value()
Definition: atlas-types.h:209
StandardRepr val
Definition: atlas-types.h:183
void add_simple_factor(char, size_t)
Definition: atlas-types.cpp:3164
~virtual_module_value()
Definition: atlas-types.h:227
Class definitions and function declarations for the RootDatum class.
module_parameter_value(const own_real_form &form, const StandardRepr &v)
Definition: atlas-types.h:185
std::shared_ptr< const Block_value > shared_Block
Definition: atlas-types.h:178
Definition: axis-types.h:116
size_t number
Definition: atlas-types.h:126
Lie_type_value()
Definition: atlas-types.h:37
Definition: atlas-types.h:55
std::shared_ptr< const inner_class_value > shared_inner_class
Definition: atlas-types.h:92
module_parameter_value(const module_parameter_value &v)
Definition: atlas-types.h:197
Rep_table & rt() const
Definition: atlas-types.h:195
RootDatum val
Definition: atlas-types.h:56
Function and constant declarations for namespace lietype.
void initialise_builtin_types()
Definition: atlas-types.cpp:2892
KGB_elt_value * clone() const
Definition: atlas-types.h:151
Rep_table & rt() const
Definition: atlas-types.h:235
~KGB_elt_value()
Definition: atlas-types.h:148
split_int_value(const split_int_value &v)
Definition: atlas-types.h:214
static const char * name()
Definition: atlas-types.h:44
Definition: lietype.h:108
RealReductiveGroup val
Definition: atlas-types.h:96
static const char * name()
Definition: atlas-types.h:110
std::shared_ptr< virtual_module_value > own_virtual_module
Definition: atlas-types.h:243
~Block_value()
Definition: atlas-types.h:167
Class definition and function declarations for the class KGB representing orbits of K on G/B...
Definition: atlas-types.h:221
std::shared_ptr< const real_form_value > shared_real_form
Definition: atlas-types.h:121
Definition: atlas-types.h:143
std::unique_ptr< KGB_elt_value > KGB_elt_ptr
Definition: atlas-types.h:158
Definition: lietype.h:123
size_t & ref_count
Definition: atlas-types.h:72
std::shared_ptr< Block_value > own_Block
Definition: atlas-types.h:179
real_form_value * clone() const
Definition: atlas-types.h:108
repr::SR_poly val
Definition: atlas-types.h:223
const own_real_form rf
Definition: atlas-types.h:163
Definition: atlas-types.h:124
Definition: atlas-types.h:162
static const char * name()
Definition: atlas-types.h:192
Lie_type_value(LieType t)
Definition: atlas-types.h:39
virtual_module_value(const virtual_module_value &v)
Definition: atlas-types.h:237
static const char * name()
Definition: atlas-types.h:212
std::shared_ptr< const split_int_value > shared_split_int
Definition: atlas-types.h:218
Definition: atlas-types.h:205
virtual_module_value * clone() const
Definition: atlas-types.h:230
~module_parameter_value()
Definition: atlas-types.h:187
inner_class_value * clone() const
Definition: atlas-types.h:83
const CartanClass & val
Definition: atlas-types.h:127
static const char * name()
Definition: atlas-types.h:61
split_int_value * clone() const
Definition: atlas-types.h:211
Rep_table * rt_p
Definition: atlas-types.h:117
lietype::InnerClassType ic_type
Definition: atlas-types.h:75
std::unique_ptr< Block_value > Block_ptr
Definition: atlas-types.h:177
InnerClass & dual
Definition: atlas-types.h:71
#define out(c)
Definition: cweave.c:205
virtual_module_value(const own_real_form &form, const repr::SR_poly &v)
Definition: atlas-types.h:225
std::unique_ptr< split_int_value > split_int_ptr
Definition: atlas-types.h:217
unsigned int KGBElt
Definition: Atlas.h:339
KGBElt val
Definition: atlas-types.h:145
std::unique_ptr< root_datum_value > root_datum_ptr
Definition: atlas-types.h:66
Block val
Definition: atlas-types.h:164
Lie_type_value * clone() const
Definition: atlas-types.h:43
std::shared_ptr< KGB_elt_value > own_KGB_elt
Definition: atlas-types.h:160
KGB_elt_value(const KGB_elt_value &v)
Definition: atlas-types.h:154
static const char * name()
Definition: atlas-types.h:171
const Rep_context & rc() const
Definition: atlas-types.h:194
std::unique_ptr< module_parameter_value > module_parameter_ptr
Definition: atlas-types.h:201
Definition: atlas-types.h:34
Rep_context::poly SR_poly
Definition: repr.h:184
std::shared_ptr< Lie_type_value > own_Lie_type
Definition: atlas-types.h:53
unsigned short RealFormNbr
Definition: Atlas.h:302
std::shared_ptr< const module_parameter_value > shared_module_parameter
Definition: atlas-types.h:202
Definition: atlas-types.h:69
static const char * name()
Definition: atlas-types.h:232
std::shared_ptr< const virtual_module_value > shared_virtual_module
Definition: atlas-types.h:242
work_addr parent
Definition: graph.cpp:117
module_parameter_value * clone() const
Definition: atlas-types.h:190
virtual void print(std::ostream &out) const
Definition: atlas-types.cpp:3190
Definition: atlas-types.h:94
~Cartan_class_value()
Definition: atlas-types.h:130
Block_value(const Block_value &v)
Definition: atlas-types.h:173
Block_value * clone() const
Definition: atlas-types.h:170
Lie_type_value(const Lie_type_value &v)
Definition: atlas-types.h:48
Cartan_class_value * clone() const
Definition: atlas-types.h:133
Definition: Atlas.h:38
Cartan_class_value(const Cartan_class_value &v)
Definition: atlas-types.h:137
Definition: tags.h:51
own_real_form rf
Definition: atlas-types.h:182
std::shared_ptr< split_int_value > own_split_int
Definition: atlas-types.h:219
own_real_form rf
Definition: atlas-types.h:222
split_int_value(Split_integer v)
Definition: atlas-types.h:208
std::shared_ptr< real_form_value > own_real_form
Definition: atlas-types.h:122
Split_integer val
Definition: atlas-types.h:206
std::shared_ptr< const root_datum_value > shared_root_datum
Definition: atlas-types.h:67
std::unique_ptr< virtual_module_value > virtual_module_ptr
Definition: atlas-types.h:241
SmallBitVector TorusPart
Definition: Atlas.h:256
KGB_elt_value(const own_real_form &form, KGBElt x)
Definition: atlas-types.h:147
Definition: common.h:36
const inner_class_value parent
Definition: atlas-types.h:95
std::shared_ptr< module_parameter_value > own_module_parameter
Definition: atlas-types.h:203
LieType val
Definition: atlas-types.h:35
~real_form_value()
Definition: atlas-types.h:115
static const char * name()
Definition: atlas-types.h:85
std::shared_ptr< const Cartan_class_value > shared_Cartan_class
Definition: atlas-types.h:141
static const char * name()
Definition: atlas-types.h:135
static const char * name()
Definition: atlas-types.h:152
root_datum_value * clone() const
Definition: atlas-types.h:60
const KGB & kgb()
Definition: atlas-types.h:111
const output::FormNumberMap interface
Definition: atlas-types.h:76
std::shared_ptr< const KGB_elt_value > shared_KGB_elt
Definition: atlas-types.h:159
Vertex v
Definition: graph.cpp:116