16 #ifndef STANDARDREPK_H 17 #define STANDARDREPK_H 35 namespace standardrepk {
46 typedef Free_Abelian<seq_no,long int,graded_compare>
combination;
47 typedef std::pair<seq_no,combination>
equation;
49 typedef Free_Abelian<seq_no,q_CharCoeff,graded_compare>
q_combin;
59 Free_Abelian<seq_no,C,graded_compare>
61 std::vector<seq_no>& new_order);
67 q_combin
to_q(
const combination& c);
68 combination
q_is_1(
const q_combin& c);
166 : d_cartan(cn), d_fiberElt(x), d_lambda(lambda) {}
188 size_t hashCode(
size_t modulus)
const;
218 { assert (bi_ortho[i]);
return sum_coroots[bi_ortho.position(i)]; }
236 size_t hashCode(
size_t modulus)
const {
return to_ulong()&(modulus-1); }
252 RealReductiveGroup&
G;
269 {
return G.innerClass(); }
270 const RootDatum&
rootDatum()
const {
return G.rootDatum(); }
271 const WeylGroup&
weylGroup()
const {
return G.weylGroup(); }
273 {
return G.twistedWeylGroup(); }
274 const TitsGroup&
titsGroup()
const {
return G.titsGroup(); }
276 {
return G.basedTitsGroup(); }
279 {
return innerClass().involution_of_Cartan(cn); }
281 {
return G.cartan(sr.
Cartan()).fiber(); }
283 const KGB&
kgb()
const {
return G.kgb(); }
286 {
return C_info[Cartan_set.position(cn)]; }
288 {
return simple_reflection_mod_2[i]; }
300 result += G.cartan(cn).involution()*result;
314 (lambda *= 2) += rootDatum().twoRho();
315 return std_rep(lambda,a);
341 bool isNormal(
Weight lambda,
size_t cn,
size_t& witness)
const;
343 {
return isNormal(
lift(sr),sr.
Cartan(),witness); }
344 bool isZero(
const StandardRepK& sr,
size_t& witness)
const;
345 bool isFinal(
const StandardRepK& sr,
size_t& witness)
const;
352 const Weight& cowt)
const;
390 std::ostream&
print(std::ostream& strm,
const Char& ch)
const;
391 std::ostream&
print(std::ostream& strm,
const q_Char& ch)
const;
408 const std::vector<level>*
h;
415 level hx=(*h)[x], hy=(*h)[y];
416 return hx!=hy ? hx<hy : x<y;
425 typedef HashTable<StandardRepK,seq_no>
Hash;
452 assert(i<height_of.size());
459 combination standardize(
const Char& chi);
461 combination truncate(
const combination& c,
level bound)
const;
466 std::vector<equation> saturate
467 (
const std::set<equation>& system,
level bound);
471 K_type_matrix(std::set<equation>& system,
473 std::vector<seq_no>& reps,
481 std::ostream&
print(std::ostream& strm,
const combination& ch,
482 bool brief=
false)
const;
485 const combination& equate(
seq_no n,
const combination& rhs);
494 typedef HashTable<StandardRepK,seq_no>
Hash;
521 assert(i<height_of.size());
528 q_combin standardize(
const q_Char& chi);
530 q_combin truncate(
const q_combin& c,
level bound)
const;
534 std::vector<q_equation> saturate
535 (
const std::set<q_equation>& system,
level bound);
538 K_type_matrix(std::set<q_equation>& system,
540 std::vector<seq_no>& reps,
546 std::ostream&
print(std::ostream& strm,
const q_combin& ch,
bool brief=
false)
551 const q_combin& equate(
seq_no n,
const q_combin& rhs);
569 : lh(s), lh2(NULL), rh1(NULL), rh2(NULL) {}
576 int n_lhs()
const {
return lh2==NULL ? 1 : 2; }
577 int n_rhs()
const {
return rh1==NULL ? 0 : rh2==NULL ? 1 : 2; }
579 Char equivalent ()
const;
591 const InnerClass& G);
Definition: standardrepk.h:492
StandardRepr * sr
Definition: reprmode.cpp:82
size_t Cartan_no() const
Definition: standardrepk.h:595
WeylElt TwistedInvolution
Definition: Atlas.h:231
graded_compare height_graded
Definition: standardrepk.h:431
std::pair< seq_no, combination > equation
Definition: standardrepk.h:47
level height(const StandardRepK &s) const
Definition: standardrepk.cpp:280
StandardRepK::Pooltype nonfinal_pool
Definition: standardrepk.h:427
combination q_is_1(const q_combin &c)
Definition: standardrepk.h:583
HashTable< bitset_entry, unsigned int > proj_sets
Definition: standardrepk.h:261
const std::vector< level > * h
Definition: standardrepk.h:408
graded_compare(const std::vector< level > &a)
Definition: standardrepk.h:411
level height(seq_no i) const
Definition: standardrepk.h:519
RankFlags sub_diagram
Definition: standardrepk.h:587
const TitsGroup & titsGroup() const
Definition: standardrepk.h:274
const BinaryMap & dual_reflection(weyl::Generator i) const
Definition: standardrepk.h:287
int n_lhs() const
Definition: standardrepk.h:576
RankFlags bi_ortho
Definition: standardrepk.h:212
uA p
Definition: lists.cpp:26
Represents the restriction to $K$ of a (coherently) continued standard Harish-Chandra module...
Definition: standardrepk.h:140
HashTable< StandardRepK, seq_no > Hash
Definition: standardrepk.h:494
const RootNbrSet & radical() const
Definition: standardrepk.h:597
BitSet< constants::RANK_MAX > RankFlags
Definition: Atlas.h:60
std::pair< seq_no, q_combin > q_equation
Definition: standardrepk.h:50
bool operator<(const StandardRepK &) const
Definition: standardrepk.cpp:80
int_Matrix projection
Definition: standardrepk.h:225
Definition: standardrepk.h:223
Weight theta_lift(size_t cn, HCParam p) const
Definition: standardrepk.h:297
size_t hashCode(size_t modulus) const
Definition: standardrepk.h:236
StandardRepK std_rep_rho_plus(Weight lambda, TitsElt a) const
Definition: standardrepk.h:312
std::pair< StandardRepK, Char > CharForm
Definition: Atlas.h:397
std::pair< StandardRepK, q_Char > q_CharForm
Definition: Atlas.h:401
TitsElt titsElt(const StandardRepK &s) const
Definition: standardrepk.h:354
void add_lh(const StandardRepK &s)
Definition: standardrepk.h:572
HechtSchmid(const StandardRepK &s)
Definition: standardrepk.h:568
bool isNormal(const StandardRepK &sr, size_t &witness) const
Definition: standardrepk.h:342
Free_Abelian< StandardRepK > Char
Definition: Atlas.h:396
size_t d_cartan
Number of the Cartan to which the HC module is associated.
Definition: standardrepk.h:148
void swap(const StandardRepK &)
friend class SRK_context
Definition: standardrepk.h:143
std::vector< BinaryMap > simple_reflection_mod_2
Definition: standardrepk.h:257
const Weight & coroot_sum(size_t i) const
Definition: standardrepk.h:217
Definition: standardrepk.h:231
StandardRepK rep_no(seq_no i) const
Definition: standardrepk.h:446
~HechtSchmid()
Definition: standardrepk.h:570
Free_Abelian< RawRep, Polynomial< int > > Raw_q_Char
Definition: Atlas.h:402
HCParam d_lambda
Character of the rho cover of H^theta, on basis of $(1/2)X^*$.
Definition: standardrepk.h:159
Definition: standardrepk.h:250
bool operator==(const StandardRepK &) const
Definition: standardrepk.cpp:87
InnerClass & innerClass() const
Definition: standardrepk.h:268
unsigned int level
Definition: Atlas.h:404
bitset_entry::Pooltype proj_pool
Definition: standardrepk.h:260
RankFlags Levi_gens() const
Definition: standardrepk.h:596
Weight theta_lift(const StandardRepK &s) const
Definition: standardrepk.h:307
std::vector< combination > expanded
Definition: standardrepk.h:434
StandardRepK * rh1
Definition: standardrepk.h:564
level height(seq_no i) const
Definition: standardrepk.h:450
const KGB & kgb() const
Definition: standardrepk.h:283
const graded_compare & height_order() const
Definition: standardrepk.h:456
Free_Abelian< RawRep > RawChar
Definition: Atlas.h:399
TitsElt strong_inv
Definition: standardrepk.h:585
Hash nonfinals
Definition: standardrepk.h:428
BitMap Cartan_set
Definition: standardrepk.h:253
Definition: standardrepk.h:406
q_Char::coef_t q_CharCoeff
Definition: standardrepk.h:42
std::vector< proj_info > proj_data
Definition: standardrepk.h:262
std::vector< Weight > WeightList
Definition: Atlas.h:162
std::ostream & print(std::ostream &strm, const StandardRepK &sr) const
Definition: standardrepk.cpp:1087
std::vector< Cartan_info > C_info
Definition: standardrepk.h:254
int_Vector lift(const BitVector< dim > &v)
Definition: bitvector.cpp:819
LatticeCoeff denom
Definition: standardrepk.h:226
Definition: standardrepk.h:423
SmallSubspace fiber_modulus
Definition: standardrepk.h:208
std::vector< bitset_entry > Pooltype
Definition: standardrepk.h:234
HashTable< StandardRepK, seq_no > Hash
Definition: standardrepk.h:425
bitset_entry(base b)
Definition: standardrepk.h:235
RankFlags base
Definition: standardrepk.h:233
RootNbrSet nilpotents
Definition: standardrepk.h:588
std::vector< StandardRepK > Pooltype
Definition: standardrepk.h:185
size_t hashCode(size_t modulus) const
Definition: standardrepk.cpp:95
q_combin to_q(const combination &c)
Definition: standardrepk.cpp:1709
const WeylGroup & weylGroup() const
Definition: standardrepk.h:271
StandardRepK()
Definition: standardrepk.h:170
unsigned int KGBElt
Definition: Atlas.h:339
StandardRepK::Pooltype nonfinal_pool
Definition: standardrepk.h:496
const TitsElt & strong_involution() const
Definition: standardrepk.h:593
size_t cn
Definition: standardrepk.h:586
std::pair< Weight, TitsElt > RawRep
Definition: Atlas.h:398
const TwistedWeylGroup & twistedWeylGroup() const
Definition: standardrepk.h:272
Free_Abelian< StandardRepK, Polynomial< int > > q_Char
Definition: Atlas.h:400
size_t Cartan() const
Definition: standardrepk.h:179
const Fiber & fiber(const StandardRepK &sr) const
Definition: standardrepk.h:280
std::vector< level > height_of
Definition: standardrepk.h:499
int_Matrix freeProjector
Definition: standardrepk.h:197
unsigned int seq_no
Definition: Atlas.h:403
TwistedInvolution involution() const
Definition: standardrepk.h:594
std::vector< level > height_of
Definition: standardrepk.h:430
StandardRepK * rh2
Definition: standardrepk.h:565
seq_no nr_reps() const
Definition: standardrepk.h:513
bool operator!=(const StandardRepK &another) const
Definition: standardrepk.h:186
int LatticeCoeff
Definition: Atlas.h:167
Free_Abelian< seq_no, long int, graded_compare > combination
Definition: standardrepk.h:46
StandardRepK(size_t cn, const TorusPart &x, const HCParam &lambda)
Definition: standardrepk.h:165
Definition: standardrepk.h:560
const Cartan_info & info(size_t cn) const
Definition: standardrepk.h:285
Permutation normalize(const DynkinDiagram &d)
Definition: dynkin.cpp:386
const TwistedInvolution involution_of_Cartan(size_t cn) const
Definition: standardrepk.h:278
WeightList torsionLift
Definition: standardrepk.h:205
unsigned long n
Definition: axis.cpp:77
struct lambda_node * lambda
Definition: parse_types.h:94
graded_compare height_graded
Definition: standardrepk.h:500
seq_no nr_reps() const
Definition: standardrepk.h:444
StandardRepK * lh2
Definition: standardrepk.h:563
StandardRepK lh
Definition: standardrepk.h:562
per Cartan class information for handling |StandardRepK| values
Definition: standardrepk.h:194
const RootDatum & rootDatum() const
Definition: standardrepk.h:270
void print(char *s,...)
Definition: common.c:861
std::pair< Weight, RankFlags > HCParam
Definition: Atlas.h:394
Free_Abelian< seq_no, q_CharCoeff, graded_compare > q_combin
Definition: standardrepk.h:49
TorusPart d_fiberElt
Element of the fiber group; left torus part of the strong involution.
Definition: standardrepk.h:154
matrix::Matrix_base< C > inverse_lower_triangular(const matrix::Matrix_base< C > &L)
Definition: standardrepk.cpp:1786
const TitsCoset & basedTitsGroup() const
Definition: standardrepk.h:275
Container of a large (more than twice the machine word size) set of bits.
Definition: bitmap.h:52
Cartan_info()
Definition: standardrepk.h:215
Hash nonfinals
Definition: standardrepk.h:497
BitMatrix< constants::RANK_MAX > BinaryMap
Definition: Atlas.h:185
unsigned short RootNbr
Definition: Atlas.h:216
SmallBitVector TorusPart
Definition: Atlas.h:256
StandardRepK rep_no(seq_no i) const
Definition: standardrepk.h:515
unsigned char Generator
Definition: Atlas.h:226
Char::coef_t CharCoeff
Definition: standardrepk.h:41
WeightList sum_coroots
Definition: standardrepk.h:213
matrix::Matrix_base< C > triangularize(const std::vector< std::pair< seq_no, Free_Abelian< seq_no, C, graded_compare > > > &eq, std::vector< seq_no > &new_order)
Definition: standardrepk.cpp:1728
Weight lift(const StandardRepK &s) const
Definition: standardrepk.h:304
bool operator()(seq_no x, seq_no y) const
Definition: standardrepk.h:413
std::vector< q_combin > expanded
Definition: standardrepk.h:503
void add_rh(const StandardRepK &s)
Definition: standardrepk.h:573
int_Matrix freeLift
Definition: standardrepk.h:202
BinaryMap torsionProjector
Definition: standardrepk.h:199
RealReductiveGroup & G
Definition: standardrepk.h:252
std::vector< KGBElt > KGBEltList
Definition: Atlas.h:340
const graded_compare & height_order() const
Definition: standardrepk.h:525
int n_rhs() const
Definition: standardrepk.h:577