atlas  0.6
realweyl.h
Go to the documentation of this file.
1 /*
2  This is realweyl.h
3 
4  Copyright (C) 2004,2005 Fokko du Cloux
5  part of the Atlas of Lie Groups and Representations
6 
7  For license information see the LICENSE file
8 */
9 
10 #ifndef REALWEYL_H /* guard against multiple inclusions */
11 #define REALWEYL_H
12 
13 
14 #include "../Atlas.h"
15 
16 #include "bitvector.h" // containment
17 #include "lietype.h" // containment
18 #include "weyl.h" // containment of (vector of) |WeylElt|
19 
20 /******** function declarations **********************************************/
21 
22 namespace atlas {
23 
24 namespace realweyl {
25 
26  void blockStabilizerSize(size::Size&, const RealWeyl&);
27  void dualRealWeylSize(size::Size&, const RealWeyl&);
28  void realWeylSize(size::Size&, const RealWeyl&);
29 
30 }
31 
32 /******** type definitions ***************************************************/
33 
34 namespace realweyl {
35 
36 class RealWeyl {
37 
38  const WeylGroup* d_group;
47  LieType d_complexType;
48  LieType d_imaginaryType;
51  LieType d_realType;
53 
54  public:
55 
56 // constructors and destructors
57  RealWeyl():d_group(0) {}
58 
59  RealWeyl(const CartanClass&,
61  const RootDatum&, const WeylGroup&);
62 
63  ~RealWeyl() {}
64 
65 // accessors
66  const RootNbrList& complex() const {
67  return d_complex;
68  }
69 
70  RootNbr complex(size_t j) const {
71  return d_complex[j];
72  }
73 
74  const LieType& complexType() const {
75  return d_complexType;
76  }
77 
78  const RootNbrList& imaginary() const {
79  return d_imaginary;
80  }
81 
82  RootNbr imaginary(size_t j) const {
83  return d_imaginary[j];
84  }
85 
86  const RootNbrList& imaginaryCompact() const {
87  return d_imaginaryCompact;
88  }
89 
90  RootNbr imaginaryCompact(size_t j) const {
91  return d_imaginaryCompact[j];
92  }
93 
94  const LieType& imaginaryCompactType() const {
95  return d_imaginaryCompactType;
96  }
97 
98  RootNbr imaginaryOrth(size_t j) const {
99  return d_imaginaryOrth[j];
100  }
101 
103  return d_imaginaryR;
104  }
105 
106  const LieType& imaginaryType() const {
107  return d_imaginaryType;
108  }
109 
110  const SmallBitVector& imaginaryR(size_t j) const {
111  return d_imaginaryR[j];
112  }
113 
114  size_t numComplex() const {
115  return d_complex.size();
116  }
117 
118  size_t numImaginary() const {
119  return d_imaginary.size();
120  }
121 
122  size_t numImaginaryCompact() const {
123  return d_imaginaryCompact.size();
124  }
125 
126  size_t numImaginaryR() const {
127  return d_imaginaryR.size();
128  }
129 
130  size_t numReal() const {
131  return d_real.size();
132  }
133 
134  size_t numRealCompact() const {
135  return d_realCompact.size();
136  }
137 
138  size_t numRealR() const {
139  return d_realR.size();
140  }
141 
142  const RootNbrList& real() const {
143  return d_real;
144  }
145 
146  RootNbr real(size_t j) const {
147  return d_real[j];
148  }
149 
150  const RootNbrList& realCompact() const {
151  return d_realCompact;
152  }
153 
154  RootNbr realCompact(size_t j) const {
155  return d_realCompact[j];
156  }
157 
158  const LieType& realCompactType() const {
159  return d_realCompactType;
160  }
161 
162  RootNbr realOrth(size_t j) const {
163  return d_realOrth[j];
164  }
165 
166  const SmallBitVectorList& realR() const {
167  return d_realR;
168  }
169 
170  const SmallBitVector& realR(size_t j) const {
171  return d_realR[j];
172  }
173 
174  const LieType& realType() const {
175  return d_realType;
176  }
177 
178  const WeylGroup& weylGroup() const {
179  return *d_group;
180  }
181 };
182 
184 
185  private:
186  const WeylGroup* d_group;
194 
195  public:
196 // constructors and destructors
197  RealWeylGenerators():d_group(0) {}
198 
199  RealWeylGenerators(const RealWeyl&, const CartanClass&,
200  const RootDatum&);
201 
203 
204 // accessors
205  const WeylEltList& complex() const {
206  return d_complex;
207  }
208 
209  const WeylEltList& imaginary() const {
210  return d_imaginary;
211  }
212 
213  const WeylEltList& imaginaryCompact() const {
214  return d_imaginaryCompact;
215  }
216 
217  const WeylEltList& imaginaryR() const {
218  return d_imaginaryR;
219  }
220 
221  const WeylEltList& real() const {
222  return d_real;
223  }
224 
225  const WeylEltList& realCompact() const {
226  return d_realCompact;
227  }
228 
229  const WeylEltList& realR() const {
230  return d_realR;
231  }
232 
233  const WeylGroup& weylGroup() const {
234  return *d_group;
235  }
236 };
237 
238 }
239 
240 }
241 
242 #endif
const WeylEltList & complex() const
Definition: realweyl.h:205
BitVector< constants::RANK_MAX > SmallBitVector
Definition: Atlas.h:181
const SmallBitVector & imaginaryR(size_t j) const
Definition: realweyl.h:110
WeylEltList d_realR
Definition: realweyl.h:191
size_t numImaginaryCompact() const
Definition: realweyl.h:122
WeylEltList d_imaginaryCompact
Definition: realweyl.h:187
const WeylEltList & imaginaryCompact() const
Definition: realweyl.h:213
void dualRealWeylSize(size::Size &c, const RealWeyl &rw)
Definition: realweyl.cpp:202
LieType d_realCompactType
Definition: realweyl.h:52
WeylEltList d_realCompact
Definition: realweyl.h:190
RootNbr realOrth(size_t j) const
Definition: realweyl.h:162
const RootNbrList & imaginary() const
Definition: realweyl.h:78
const WeylEltList & realCompact() const
Definition: realweyl.h:225
LieType d_imaginaryType
Definition: realweyl.h:48
const WeylEltList & realR() const
Definition: realweyl.h:229
~RealWeylGenerators()
Definition: realweyl.h:202
std::vector< WeylElt > WeylEltList
Definition: Atlas.h:234
RootNbrList d_imaginaryCompact
Definition: realweyl.h:39
size_t numRealCompact() const
Definition: realweyl.h:134
WeylEltList d_complex
Definition: realweyl.h:193
RootNbrList d_realCompact
Definition: realweyl.h:43
LieType d_complexType
Definition: realweyl.h:47
Function and constant declarations for namespace lietype.
WeylEltList d_imaginary
Definition: realweyl.h:189
const RootNbrList & realCompact() const
Definition: realweyl.h:150
~RealWeyl()
Definition: realweyl.h:63
RootNbrList d_realOrth
Definition: realweyl.h:50
size_t numRealR() const
Definition: realweyl.h:138
RootNbr imaginary(size_t j) const
Definition: realweyl.h:82
WeylEltList d_real
Definition: realweyl.h:192
const SmallBitVector & realR(size_t j) const
Definition: realweyl.h:170
const LieType & complexType() const
Definition: realweyl.h:74
RootNbrList d_imaginary
Definition: realweyl.h:42
Class definitions and function declarations for WeylGroup.
const LieType & realType() const
Definition: realweyl.h:174
const SmallBitVectorList & imaginaryR() const
Definition: realweyl.h:102
RootNbrList d_imaginaryOrth
Definition: realweyl.h:40
size_t numComplex() const
Definition: realweyl.h:114
RootNbr complex(size_t j) const
Definition: realweyl.h:70
BitVectorList< constants::RANK_MAX > SmallBitVectorList
Definition: Atlas.h:182
void realWeylSize(size::Size &c, const RealWeyl &rw)
Definition: realweyl.cpp:188
const WeylEltList & imaginaryR() const
Definition: realweyl.h:217
const LieType & imaginaryType() const
Definition: realweyl.h:106
RootNbr imaginaryCompact(size_t j) const
Definition: realweyl.h:90
LieType d_imaginaryCompactType
Definition: realweyl.h:49
const WeylGroup & weylGroup() const
Definition: realweyl.h:178
RootNbrList d_real
Definition: realweyl.h:45
RootNbr real(size_t j) const
Definition: realweyl.h:146
const WeylEltList & real() const
Definition: realweyl.h:221
RootNbr realCompact(size_t j) const
Definition: realweyl.h:154
SmallBitVector AdjointFiberElt
Definition: Atlas.h:309
size_t numReal() const
Definition: realweyl.h:130
const RootNbrList & real() const
Definition: realweyl.h:142
const RootNbrList & imaginaryCompact() const
Definition: realweyl.h:86
const WeylGroup * d_group
Definition: realweyl.h:38
const RootNbrList & complex() const
Definition: realweyl.h:66
const WeylGroup * d_group
Definition: realweyl.h:186
const LieType & realCompactType() const
Definition: realweyl.h:158
RealWeylGenerators()
Definition: realweyl.h:197
RootNbr imaginaryOrth(size_t j) const
Definition: realweyl.h:98
const SmallBitVectorList & realR() const
Definition: realweyl.h:166
WeylEltList d_imaginaryR
Definition: realweyl.h:188
Definition: realweyl.h:183
Definition: Atlas.h:38
LieType d_realType
Definition: realweyl.h:51
const LieType & imaginaryCompactType() const
Definition: realweyl.h:94
SmallBitVectorList d_realR
Definition: realweyl.h:44
const WeylEltList & imaginary() const
Definition: realweyl.h:209
unsigned short RootNbr
Definition: Atlas.h:216
const WeylGroup & weylGroup() const
Definition: realweyl.h:233
std::vector< RootNbr > RootNbrList
Definition: Atlas.h:217
RootNbrList d_complex
Definition: realweyl.h:46
Definition: realweyl.h:36
size_t numImaginaryR() const
Definition: realweyl.h:126
size_t numImaginary() const
Definition: realweyl.h:118
SmallBitVectorList d_imaginaryR
Definition: realweyl.h:41
RealWeyl()
Definition: realweyl.h:57
void blockStabilizerSize(size::Size &c, const RealWeyl &rw)
Definition: realweyl.cpp:172
SizeType< BaseType > Size
Definition: Atlas.h:130