69 EltInfo() : status(), desc(), dual(UndefKGB) {}
80 : cross_image(UndefKGB)
81 , Cayley_image(UndefKGB)
82 , inverse_Cayley_image(std::make_pair(UndefKGB,UndefKGB)) {}
85 std::vector<std::vector<KGBfields> >
data;
98 explicit KGB_base(
const InnerClass& GC,
unsigned int ss_rank)
102 , inv_nrs(), inv_loc()
112 , inv_nrs(org.inv_nrs), inv_loc(org.inv_loc)
113 , first_of_tau(org.first_of_tau)
119 size_t rank()
const {
return data.size(); }
120 size_t size()
const {
return info.size(); }
129 {
return data[s][x].cross_image; }
131 {
return data[s][x].Cayley_image; }
133 {
return data[s][x].inverse_Cayley_image; }
141 {
return ic.involution_table().length(
inv_nr(x));}
147 {
return ic.involution_table().involution(inv_nrs[n]); }
153 {
return ic.involution_table().matrix(
inv_nr(x)); }
180 return KGBEltPair(first_of_tau[i],first_of_tau[i+1]);
198 {
return std::upper_bound(first_of_tau.begin(),first_of_tau.end(),x)
199 -first_of_tau.begin() -1;
225 size_t hashCode(
size_t modulus)
const;
229 const GlobalTitsElement& y);
230 GlobalTitsElement repr()
const;
237 const GlobalTitsGroup
Tg;
238 std::vector<GlobalTitsElement>
elt;
243 global_KGB(InnerClass& G,
bool dual_twist=
false);
246 const GlobalTitsElement& x,
247 bool dual_twist=
false);
253 {
return elt[x].torus_part(); }
256 bool compact(
RootNbr alpha,
const GlobalTitsElement& a)
const;
257 KGBElt lookup(
const GlobalTitsElement& x)
const;
260 virtual std::ostream&
print(std::ostream& strm,
KGBElt x)
const;
263 void generate_involutions(
size_t n);
264 void generate(
size_t predicted_size,
bool dual_twist);
291 enum State { BruhatConstructed, NumStates };
293 const RealReductiveGroup&
G;
313 explicit KGB(RealReductiveGroup& GR,
314 const BitMap& Cartan_classes,
bool dual_twist=
false);
322 KGB& operator=(
const KGB&);
330 const TitsGroup&
titsGroup()
const {
return d_base->titsGroup(); }
337 TitsElt titsElt(
KGBElt x)
const;
338 size_t torus_rank()
const;
344 {
return d_base->simple_imaginary_grading(torus_part(x),alpha); }
346 KGBElt lookup(TitsElt a)
const;
357 virtual std::ostream&
print(std::ostream& strm,
KGBElt x)
const;
361 bool is_dual_twist_stable(
const RealReductiveGroup& GR,
TorusPart&
shift)
unsigned int InvolutionNbr
Definition: Atlas.h:281
Class definitions and function declarations for the class Status.
WeylElt TwistedInvolution
Definition: Atlas.h:231
virtual std::ostream & print(std::ostream &strm, KGBElt x) const
Definition: kgb.h:190
TorusElement torus_part(KGBElt x) const
Definition: kgb.h:252
const GlobalTitsGroup & globalTitsGroup() const
Definition: kgb.h:250
DescentSet desc
Definition: kgb.h:66
RatWeight label() const
Definition: kgb.h:231
bool operator!=(const type_expr &x, const type_expr &y)
Definition: axis-types.h:374
unsigned int inv_index
Definition: kgb.h:58
KGB_base(const InnerClass &GC, unsigned int ss_rank)
Definition: kgb.h:98
bool isComplex(size_t j) const
Definition: gradings.h:76
KGBElt Hermitian_dual(KGBElt x) const
Definition: kgb.h:143
std::vector< inv_index > Cartan
records Cartan classes of involutions
Definition: kgb.h:295
KGBElt dual
Definition: kgb.h:67
RankFlags DescentSet
Definition: Atlas.h:331
#define shift()
Definition: cweave.c:116
KGB_base(const KGB_base &org)
Definition: kgb.h:108
KGBEltPair inverse_Cayley_image
Definition: kgb.h:77
bool simple_imaginary_grading(KGBElt x, RootNbr alpha) const
Definition: kgb.h:343
std::vector< KGBElt > first_of_tau
to help find range of elements with fixed twisted involution
Definition: kgb.h:93
const TwistedInvolution & nth_involution(inv_index n) const
Definition: kgb.h:146
const gradings::Status & status(KGBElt x) const
Definition: kgb.h:160
bool isComplexDescent(weyl::Generator s, KGBElt x) const
Definition: kgb.h:164
const GlobalTitsElement & element(KGBElt x) const
Definition: kgb.h:254
size_t size() const
Definition: kgb.h:120
Grading base_grading() const
Definition: kgb.h:340
const TwistedWeylGroup & twistedWeylGroup() const
Definition: kgb.cpp:102
const TitsCoset & basedTitsGroup() const
The based Tits group.
Definition: kgb.h:328
std::vector< inv_index > inv_loc
Definition: kgb.h:90
const RootDatum & rootDatum() const
Definition: kgb.cpp:100
State
Definition: kgb.h:291
virtual ~KGB_base()
Definition: kgb.h:116
std::vector< KGB_elt_entry > Pooltype
Definition: kgb.h:224
inv_index nr_involutions() const
Definition: kgb.h:121
const RealReductiveGroup & G
Definition: kgb.h:293
KGBElt Cayley_image
Definition: kgb.h:76
TitsCoset * d_base
Owned pointer to the based Tits group.
Definition: kgb.h:308
gradings::Status status
Definition: kgb.h:65
BruhatOrder * d_bruhat
Owned pointer to the Bruhat order on KGB (or NULL).
Definition: kgb.h:305
KGBEltPair tauPacket(const TwistedInvolution &) const
Definition: kgb.cpp:119
Class definitions and function declarations for WeylGroup.
EltInfo()
Definition: kgb.h:69
KGBElt cayley(weyl::Generator s, KGBElt x) const
Definition: kgb.h:130
const DescentSet & descent(KGBElt x) const
Definition: kgb.h:157
RatWeight fingerprint
Definition: kgb.h:221
Definition: gradings.h:59
BruhatOrder & bruhatOrder()
Definition: kgb.h:352
std::pair< KGBElt, KGBElt > KGBEltPair
Definition: Atlas.h:342
BitSet< NumStates > d_state
Definition: kgb.h:298
void reserve(size_t n)
Definition: kgb.cpp:160
const InnerClass & ic
Definition: kgb.h:60
std::vector< GlobalTitsElement > elt
Definition: kgb.h:238
std::vector< InvolutionNbr > inv_nrs
Definition: kgb.h:89
KGBfields()
Definition: kgb.h:79
KGBElt cross(weyl::Generator s, KGBElt x) const
Definition: kgb.h:128
KGBElt cross_image
Definition: kgb.h:75
size_t weylLength(KGBElt x) const
Definition: kgb.h:175
unsigned int KGBElt
Definition: Atlas.h:339
Definition: gradings.h:53
const TwistedInvolution & involution(KGBElt x) const
Definition: kgb.h:149
KGBEltPair packet(KGBElt x) const
Definition: kgb.h:178
gradings::Status::Value status(weyl::Generator s, KGBElt x) const
Definition: kgb.h:161
std::vector< std::vector< KGBfields > > data
Definition: kgb.h:85
const InnerClass & innerClass() const
Definition: kgb.h:123
virtual CartanNbr Cartan_class(KGBElt x) const
Definition: kgb.cpp:147
Represents a poset by the matrix of order relations.
Definition: poset.h:39
std::vector< TorusPart > left_torus_part
Definition: kgb.h:297
unsigned short CartanNbr
Definition: Atlas.h:301
void add_element()
Definition: kgb.cpp:168
KGBElt any_Cayley(weyl::Generator s, KGBElt x) const
Definition: kgb.h:134
std::vector< EltInfo > info
Definition: kgb.h:86
size_t packet_size(const TwistedInvolution &) const
Definition: kgb.cpp:130
Value
Definition: gradings.h:59
weyl::TI_Entry tw
Definition: kgb.h:220
const GlobalTitsGroup Tg
Definition: kgb.h:237
InvolutionNbr inv_nr(KGBElt x) const
Definition: kgb.cpp:141
unsigned int length(KGBElt x) const
Definition: kgb.h:140
KGBEltPair inverseCayley(weyl::Generator s, KGBElt x) const
Definition: kgb.h:132
unsigned long n
Definition: axis.cpp:77
bool isAscent(weyl::Generator s, KGBElt x) const
Definition: kgb.h:170
bool isDoubleCayleyImage(weyl::Generator s, KGBElt x) const
Definition: kgb.h:167
const TitsGroup & titsGroup() const
The Tits group.
Definition: kgb.h:330
InvolutionNbr involution_index(KGBElt x) const
Definition: kgb.h:196
TorusElement t_rep
Definition: kgb.h:219
unsigned short RootNbr
Definition: Atlas.h:216
SmallBitVector TorusPart
Definition: Atlas.h:256
bool isDescent(weyl::Generator s, KGBElt x) const
Definition: kgb.h:158
unsigned char Generator
Definition: Atlas.h:226
RankFlags Grading
Definition: Atlas.h:289
const WeylGroup & weylGroup() const
Definition: kgb.cpp:101
const WeightInvolution & involution_matrix(KGBElt x) const
Definition: kgb.h:152
size_t rank() const
Definition: kgb.h:119
TorusPart torus_part(KGBElt x) const
Definition: kgb.h:332