#include <complexredgp.h>
Collaboration diagram for atlas::complexredgp::ComplexReductiveGroup:

Public Member Functions | |
| ComplexReductiveGroup (const rootdata::RootDatum *, const latticetypes::LatticeMatrix &) | |
| main constructor | |
| ComplexReductiveGroup (const ComplexReductiveGroup &, tags::DualTag) | |
| constructs the complex reductive group dual to G. | |
| ~ComplexReductiveGroup () | |
| unsigned long | blockSize (realform::RealForm, realform::RealForm) const |
| the size of the block defined by the weak real form rf and the weak dual real form drf. | |
| const cartanclass::CartanClass & | cartan (size_t) const |
| returns Cartan subgroup number #cn in the group. | |
| const poset::Poset & | cartanOrdering () const |
| returns the ordering of the Cartan subgroups | |
| const bitmap::BitMap & | cartanSet (realform::RealForm) const |
| returns the support of the set of Cartan classes for rf | |
| const bitmap::BitMap & | dualCartanSet (realform::RealForm) const |
| returns the support of the set of Cartan classes for the dual real form rf | |
| const latticetypes::LatticeMatrix & | distinguished () const |
| returns the matrix of the distinguished involution. | |
| latticetypes::LatticeMatrix | involutionMatrix (const weyl::TwistedInvolution &) const |
| unsigned long | dualFiberSize (realform::RealForm, size_t) const |
| returns the size of the fiber size corresponding to dual real form #drf and cartan #cn. | |
| const cartanclass::Fiber & | dualFundamental () const |
| returns the dual fundamental fiber. | |
| const realform::RealFormList & | dualRealFormLabels (size_t) const |
| returns the dual real form labels for cartan #cn | |
| unsigned long | dualRepresentative (realform::RealForm, size_t) const |
| returns an element of the orbit corresponding to drf in the classification of weak real forms for cartan #cn. | |
| unsigned long | fiberSize (realform::RealForm, size_t) const |
| returns the size of the fiber size corresponding to real form #rf and cartan #cn. | |
| const cartanclass::Fiber & | fundamental () const |
| returns the fundamental fiber. | |
| rootdata::RootSet | noncompactRoots (realform::RealForm) const |
| Returns the set of noncompact imaginary roots for the representative of rf. | |
| unsigned long | kgbSize (realform::RealForm) const |
| returns the number of elements in K\G/B for real form #rf. | |
| size_t | mostSplit (realform::RealForm) const |
| returns the most split cartan subgroup for real form #rf. | |
| size_t | numCartanClasses () const |
| returns the number of conjugacy classes of Cartan subgroups currently constructed for G. Only after fillCartan() has been called is it ensured that this gives the total number of Cartan subgroups for this inner class. | |
| size_t | numDualRealForms () const |
| returns the number of weak dual real forms for this inner class. | |
| size_t | numInvolutions () const |
| returns the number of involutions for the currently defined Cartans. | |
| size_t | numInvolutions (const bitmap::BitMap &Cartan_classes) const |
| returns the number of involutions for the indicated Cartans. | |
| size_t | numRealForms () const |
| returns the number of weak real forms for this inner class. | |
| realform::RealForm | quasisplit () const |
| returns the quasisplit real form. | |
| size_t | rank () const |
| returns the rank of the group. | |
| const realform::RealFormList & | realFormLabels (size_t) const |
| returns the real form labels for cartan #cn | |
| unsigned long | representative (realform::RealForm, size_t) const |
| returns an element of the orbit corresponding to rf in the classification of weak real forms for cartan #cn. | |
| const rootdata::RootDatum & | rootDatum () const |
| size_t | semisimpleRank () const |
| returns the semisimple rank of the group. | |
| const weyl::WeylGroup & | weylGroup () const |
| returns a reference to the Weyl group, which is now owned by the Tits group. | |
| const tits::TitsGroup & | titsGroup () const |
| const cartanset::CartanClassSet & | cartanClasses () const |
| const weyl::TwistedInvolution & | twistedInvolution (size_t) const |
| returns the twisted involution representative for class #cn. | |
| void | fillCartan (realform::RealForm rf) |
| fills in the Cartan classes that are defined for the real form x. | |
| void | fillCartan () |
Private Member Functions | |
| ComplexReductiveGroup (const ComplexReductiveGroup &) | |
| ComplexReductiveGroup & | operator= (const ComplexReductiveGroup &) |
| void | swap (ComplexReductiveGroup &G) |
Private Attributes | |
| const rootdata::RootDatum & | d_rootDatum |
| The based root datum. | |
| tits::TitsGroup & | d_titsGroup |
| The Tits group of the based root datum, extended by an involutive automorphism. | |
| cartanset::CartanClassSet & | d_cartanSet |
| Storage of data for each stable conjugacy class of Cartan subgroups of the inner class of real forms determined by the based root datum with involution. | |
This class computes those aspects of the structure theory of (an inner class of) real reductive groups G(R) that will be needed to describe the Langlands classification of irreducible representations of G(R). Since we look at an inner class of real forms, the first problem is to enumerate the different real forms constituting this inner class.
We list in d_cartanSet the conjugacy classes of real Cartan subgroups up to stable conjugacy; this classification does not refer to a particular real form. However, the enumeration of the real forms actually takes place during the construction of the first (fundamental) Cartan subgroup. Each stable class corresponds to at most one conjugacy class of real Cartan subgroups in each real form; so for each stable class of Cartan subgroups, we enumerate the real forms over which it is defined (the fundamental Cartan subgroup is defined for all real forms).
We compute the structure of the real Cartan subgroups (notably the groups of connected components); this depends only on the stable conjugacy class. We determine the real Weyl groups of Cartan subgroups (which are _almost_ constant across the stable class, but not quite).
Everything is determined by (and computed from) two things: the based root datum recorded in the RootDatum class d_rootDatum, and its involutive automorphism. Many computations take place inside the Tits group, which is an extension of the (complex) Weyl group by the elements of order 2 in the torus. (In fact the structure we store in |d_titsGroup| allows computing in an even larger group, the semidirect product of the Tits group just described by a factor Z/2Z whose action on the other factor is determined by the given automorphism of the based root datum.)
The actual structure of this class is subdivided into three parts, implemented by three other classes. The field |d_rootDatum| stores the root datum, which must have been consructed before. The field |d_titsGroup| holds the mentioned (enlarged) Tits group, which is constructed upon entry from the root datum and the involution; it also gives access to just the (complex) Weyl group when that is necessary. Finally |d_cartanSet| stores all the information relative to (stable conjugacy classes of) Cartan subgroupes and real forms.
Because this class is one of the outer interfaces for the structure library, we prefer to use references for its data members, so that forward declarations of their classes suffice for users of this class. The choice to use references instead of pointers (as had been done intially) is a deliberate one to emphasise the rigid connection between the parts; there should be no operation that can dissociate the three parts from the top-level structure grouping them together (such as |swap| initially did).
Definition at line 97 of file complexredgp.h.
|
|
|
|
||||||||||||
|
main constructor constructs a ComplexReductiveGroup from its root datum and a distinguished involution. Precondition: d is a based root datum involution: it globally fixes the set of positive roots NOTE: the ComplexReductiveGroup assumes ownership of the RootDatum pointed to by rd; users beware of this. Definition at line 79 of file complexredgp.cpp. References atlas::latticetypes::LatticeMatrix. |
|
||||||||||||
|
constructs the complex reductive group dual to G. The reference implementation of data members forces us to compute the dual based involution twice, since we have no variables available during initialisation to store the previous value (and d_titsGroup does not save it) Definition at line 94 of file complexredgp.cpp. References atlas::rootdata::dualBasedInvolution(). |
|
|
Definition at line 104 of file complexredgp.cpp. |
|
||||||||||||
|
the size of the block defined by the weak real form rf and the weak dual real form drf.
Definition at line 133 of file complexredgp.cpp. References atlas::cartanset::blockSize(), and d_cartanSet. Referenced by atlas::blocks::Block::generate(). |
|
|
returns Cartan subgroup number #cn in the group.
Definition at line 143 of file complexredgp.cpp. References atlas::cartanset::CartanClassSet::cartan(), and d_cartanSet. Referenced by atlas::kgb::FiberData::FiberData(), atlas::kgb::KGBHelp::grading_seed(), atlas::kgb::KGBHelp::naive_seed(), atlas::realredgp_io::printBlockStabilizer(), atlas::cartan_io::printCartanClass(), atlas::complexredgp_io::printGradings(), atlas::realredgp_io::printRealWeyl(), and atlas::realredgp_io::printStrongReal(). |
|
|
|
returns the ordering of the Cartan subgroups
Definition at line 151 of file complexredgp.cpp. References d_cartanSet, and atlas::cartanset::CartanClassSet::ordering(). Referenced by atlas::realredgp::RealReductiveGroup::cartanOrdering(). |
|
|
returns the support of the set of Cartan classes for rf
Definition at line 159 of file complexredgp.cpp. References d_cartanSet, and atlas::cartanset::CartanClassSet::support(). Referenced by atlas::realredgp::RealReductiveGroup::cartanSet(), and atlas::interpreter::real_forms_of_Cartan_wrapper(). |
|
|
returns the matrix of the distinguished involution.
Definition at line 179 of file complexredgp.cpp. References d_cartanSet, atlas::cartanset::CartanClassSet::distinguished(), and atlas::latticetypes::LatticeMatrix. Referenced by atlas::realredgp::RealReductiveGroup::distinguished(), atlas::kgb::FiberData::FiberData(), and atlas::realredgp::RealReductiveGroup::RealReductiveGroup(). |
|
|
returns the support of the set of Cartan classes for the dual real form rf
Definition at line 170 of file complexredgp.cpp. Referenced by atlas::blocks::common_Cartans(), and atlas::interpreter::dual_real_forms_of_Cartan_wrapper(). |
|
||||||||||||
|
returns the size of the fiber size corresponding to dual real form #drf and cartan #cn. Explanation: this is the size of the orbits, for the shifted action of the dual imaginary Weyl group (a.k.a. the real Weyl group), that correspond to drf in the classification of strong real forms (they all have the same size.) This is a technical function used for size computations. Definition at line 203 of file complexredgp.cpp. Referenced by atlas::realredgp_io::printBlockStabilizer(). |
|
|
returns the dual fundamental fiber. This is a technical data structure containing the data for the classification of weak and strong dual real forms of G. Definition at line 214 of file complexredgp.cpp. References d_cartanSet, and atlas::cartanset::CartanClassSet::dualFundamental(). Referenced by atlas::realform_io::Interface::Interface(). |
|
|
returns the dual real form labels for cartan #cn
Definition at line 223 of file complexredgp.cpp. References d_cartanSet, and atlas::cartanset::CartanClassSet::dualRealFormLabels(). Referenced by atlas::block_mode_entry(), and atlas::dual_kgb_f(). |
|
||||||||||||
|
returns an element of the orbit corresponding to drf in the classification of weak real forms for cartan #cn. Precondition: cartan #cn is defined for drf. Definition at line 235 of file complexredgp.cpp. References atlas::cartanset::CartanClassSet::dualRepresentative(). Referenced by atlas::realredgp_io::printBlockStabilizer(). |
|
||||||||||||
|
returns the size of the fiber size corresponding to real form #rf and cartan #cn. Explanation: this is the size of the orbits, for the shifted action of the imaginary Weyl group, that correspond to rf in the classification of strong real forms (they all have the same size.) This is a technical function used for size computations. Definition at line 251 of file complexredgp.cpp. References atlas::cartanset::CartanClassSet::fiberSize(). Referenced by atlas::realredgp_io::printBlockStabilizer(), and atlas::realredgp_io::printRealWeyl(). |
|
|
Definition at line 219 of file complexredgp.h. |
|
|
fills in the Cartan classes that are defined for the real form x.
Definition at line 424 of file complexredgp.cpp. References d_cartanSet, and atlas::cartanset::CartanClassSet::extend(). Referenced by atlas::blocksizes_f(), atlas::dual_kgb_f(), atlas::realredgp::RealReductiveGroup::fillCartan(), and atlas::involutions::helper::Helper::Helper(). |
|
|
returns the fundamental fiber. This is a technical data structure containing the data for the classification of weak and strong real forms of G. Definition at line 262 of file complexredgp.cpp. References d_cartanSet, and atlas::cartanset::CartanClassSet::fundamental(). Referenced by atlas::realform_io::Interface::Interface(), atlas::realredgp::RealReductiveGroup::RealReductiveGroup(), and atlas::kgb::square_class_grading_offset(). |
|
|
Definition at line 185 of file complexredgp.cpp. References d_cartanSet, atlas::cartanset::CartanClassSet::involutionMatrix(), and atlas::weyl::TwistedInvolution. |
|
|
returns the number of elements in K\G/B for real form #rf. Precondition: the Cartan classes for this real form have been generated Explanation: this is exactly the number of elements in the one-sided parameter set corresponding to any strong real form of G lying over rf. Definition at line 285 of file complexredgp.cpp. References d_cartanSet, and atlas::cartanset::kgbSize(). Referenced by atlas::realredgp::RealReductiveGroup::kgbSize(). |
|
|
returns the most split cartan subgroup for real form #rf. Precondition: fillCartan() has been called for rf. Definition at line 301 of file complexredgp.cpp. References atlas::cartanset::CartanClassSet::mostSplit(). Referenced by atlas::dual_kgb_f(), and atlas::realredgp::RealReductiveGroup::mostSplit(). |
|
|
Returns the set of noncompact imaginary roots for the representative of rf.
Definition at line 272 of file complexredgp.cpp. References d_cartanSet, and atlas::cartanset::CartanClassSet::noncompactRoots(). Referenced by atlas::realredgp::RealReductiveGroup::noncompactRoots(). |
|
|
returns the number of conjugacy classes of Cartan subgroups currently constructed for G. Only after fillCartan() has been called is it ensured that this gives the total number of Cartan subgroups for this inner class.
Definition at line 296 of file complexredgp.cpp. References d_cartanSet, and atlas::cartanset::CartanClassSet::numCartan(). Referenced by atlas::interpreter::Cartan_class_value::Cartan_class_value(), and atlas::involutions::helper::Helper::fillCartan(). |
|
|
returns the number of weak dual real forms for this inner class.
Definition at line 317 of file complexredgp.cpp. References d_cartanSet, and atlas::cartanset::CartanClassSet::numDualRealForms(). Referenced by atlas::interpreter::dual_real_forms_of_Cartan_wrapper(), atlas::realform_io::Interface::Interface(), and atlas::interpreter::inner_class_value::print(). |
|
|
returns the number of involutions for the indicated Cartans.
Definition at line 336 of file complexredgp.cpp. References d_cartanSet, and atlas::cartanset::CartanClassSet::numInvolutions(). |
|
|
returns the number of involutions for the currently defined Cartans.
Definition at line 327 of file complexredgp.cpp. References d_cartanSet, and atlas::cartanset::CartanClassSet::numInvolutions(). Referenced by atlas::kgb::FiberData::FiberData(), atlas::involutions::helper::Helper::Helper(), atlas::kgb::KGB::KGB(), and atlas::realredgp::RealReductiveGroup::numInvolutions(). |
|
|
returns the number of weak real forms for this inner class.
Definition at line 346 of file complexredgp.cpp. References d_cartanSet, and atlas::cartanset::CartanClassSet::numRealForms(). Referenced by atlas::realform_io::Interface::Interface(), atlas::interpreter::inner_class_value::print(), and atlas::interpreter::real_forms_of_Cartan_wrapper(). |
|
|
|
|
|
returns the quasisplit real form.
Definition at line 355 of file complexredgp.cpp. References d_cartanSet, and atlas::cartanset::CartanClassSet::quasisplit(). Referenced by atlas::dual_kgb_f(), and atlas::realredgp::RealReductiveGroup::RealReductiveGroup(). |
|
|
returns the rank of the group.
Definition at line 363 of file complexredgp.cpp. References d_rootDatum, and atlas::rootdata::RootDatum::rank(). Referenced by atlas::kgb::FiberData::FiberData(), and atlas::kgb::KGBHelp::grading_seed(). |
|
|
returns the real form labels for cartan #cn More precisely, realFormLabels(cn)[i] is the (inner) number of the real form that corresponds to part i of the partition cartan(n).fiber().weakReal() Definition at line 375 of file complexredgp.cpp. References d_cartanSet, and atlas::cartanset::CartanClassSet::realFormLabels(). Referenced by atlas::cartan_io::printCartanClass(). |
|
||||||||||||
|
returns an element of the orbit corresponding to rf in the classification of weak real forms for cartan #cn. Precondition: cartan #cn is defined for rf. Definition at line 388 of file complexredgp.cpp. References atlas::cartanset::CartanClassSet::representative(). Referenced by atlas::realredgp_io::printBlockStabilizer(), and atlas::realredgp_io::printRealWeyl(). |
|
|
|
returns the semisimple rank of the group.
Definition at line 396 of file complexredgp.cpp. References d_rootDatum, and atlas::rootdata::RootDatum::semisimpleRank(). Referenced by atlas::kgb::FiberData::FiberData(), and atlas::involutions::helper::Helper::Helper(). |
|
|
|
|
|
Definition at line 193 of file complexredgp.h. Referenced by atlas::realredgp::RealReductiveGroup::titsGroup(). |
|
|
returns the twisted involution representative for class #cn.
Definition at line 414 of file complexredgp.cpp. References d_cartanSet, and atlas::cartanset::CartanClassSet::twistedInvolution(). Referenced by atlas::kgb::FiberData::FiberData(), and atlas::involutions::helper::Helper::fillCartan(). |
|
|
returns a reference to the Weyl group, which is now owned by the Tits group.
Definition at line 405 of file complexredgp.cpp. References d_titsGroup, and atlas::tits::TitsGroup::weylGroup(). Referenced by atlas::kgb::KGBHelp::backtrack_seed(), atlas::kgb::FiberData::FiberData(), atlas::involutions::helper::Helper::fill(), atlas::involutions::helper::Helper::fillCartan(), atlas::cartan_io::printCartanClass(), atlas::realredgp_io::printRealWeyl(), atlas::involutions::helper::Helper::weylCorrelation(), atlas::realredgp::RealReductiveGroup::weylGroup(), and atlas::cartanset::CartanClassSet::weylGroup(). |
|
|
Storage of data for each stable conjugacy class of Cartan subgroups of the inner class of real forms determined by the based root datum with involution.
Definition at line 117 of file complexredgp.h. Referenced by blockSize(), cartan(), cartanOrdering(), cartanSet(), distinguished(), dualFundamental(), dualRealFormLabels(), fillCartan(), fundamental(), involutionMatrix(), kgbSize(), noncompactRoots(), numCartanClasses(), numDualRealForms(), numInvolutions(), numRealForms(), quasisplit(), realFormLabels(), and twistedInvolution(). |
|
|
The based root datum.
Definition at line 104 of file complexredgp.h. Referenced by rank(), and semisimpleRank(). |
|
|
The Tits group of the based root datum, extended by an involutive automorphism.
Definition at line 110 of file complexredgp.h. Referenced by weylGroup(). |
1.3.9.1