#include <cartanclass.h>
Collaboration diagram for atlas::cartanclass::CartanClass:

Public Member Functions | |
| CartanClass (const rootdata::RootDatum &, const latticetypes::LatticeMatrix &) | |
| ~CartanClass () | |
| void | swap (CartanClass &) |
| const latticetypes::LatticeMatrix & | involution () const |
| Returns the matrix of the involution on the weight lattice of the Cartan subgroup. | |
| rootdata::RootNbr | involution_image_of_root (rootdata::RootNbr j) const |
| Action of the Cartan involution on root #j. | |
| const rootdata::RootSet & | imaginaryRootSet () const |
| RootSet flagging the imaginary roots. | |
| const rootdata::RootSet & | realRootSet () const |
| RootSet flagging the real roots. | |
| const rootdata::RootList & | simpleImaginary () const |
| RootList holding the numbers of the simple imaginary roots. | |
| const rootdata::RootList & | simpleReal () const |
| RootList holding the numbers of the simple real roots. | |
| const Fiber & | fiber () const |
| Class of the fiber group H^{-tau}/[(1-tau)H] for this Cartan. | |
| const Fiber & | dualFiber () const |
| Class of the fiber group for the dual Cartan. | |
| bool | isMostSplit (adjoint_fiber_orbit wrf) const |
| Tells whether this cartan class is the most split one for weak real form corresponding to class #wrf in fiber().weakReal(). | |
| size_t | numDualRealForms () const |
| Number of weak real forms for the dual group containing the dual Cartan. | |
| size_t | numRealForms () const |
| Number of weak real forms containing this Cartan. | |
| size_t | numRealFormClasses () const |
| Number of possible squares of strong real forms mod (1+delta)Z. | |
| size_t | orbitSize () const |
| Size of the W-conjugacy class of tau. | |
| const rootdata::RootList & | simpleComplex () const |
| Roots simple for the "complex factor" of W^tau. | |
| const partition::Partition & | strongReal (square_class j) const |
| Partitions of Fiber group cosets corresponding to the possible square classes in Z^delta/[(1+delta)Z]. | |
| AdjointFiberElt | toAdjoint (FiberElt x) const |
| Returns the image of x in the adjoint fiber group. | |
| adjoint_fiber_orbit | toWeakReal (fiber_orbit c, square_class j) const |
| Returns the class number in the weak real form partition of the strong real form #c in real form class rfc. | |
| const partition::Partition & | weakReal () const |
| Partition of the weak real forms according to the corresponding classes in Z(G)^delta/[(1+delta)Z(G)]. | |
Private Member Functions | |
| rootdata::RootList | makeSimpleComplex (const rootdata::RootDatum &) const |
Computes the list of the simple roots for a complex factor in , where is the root datum involution of our Cartan class. | |
| size::Size | makeOrbitSize (const rootdata::RootDatum &) const |
| Returns the size of the twisted involution orbit for this class. | |
Private Attributes | |
| Fiber | d_fiber |
| Class of the fiber group H^{-tau}/[(1-tau)H] for this Cartan. | |
| Fiber | d_dualFiber |
| Class of the fiber group for the dual Cartan. | |
| rootdata::RootList | d_simpleComplex |
| Roots simple for the "complex factor" of W^tau. | |
| size::Size | d_orbitSize |
| Size of the W-conjugacy class of tau. | |
Mathematically this means the complex torus in the complex group, together with an involutive automorphism of this torus (the Cartan involution). (More precisely, it is a W-conjugacy class of involutive automorphisms.) As the class is now used in the software, the Cartan involution must be in the inner class specified by ComplexReductiveGroup. Most of the interesting information is contained in the two underlying Fiber classes d_fiber and d_dualFiber. First of all, that is where the Cartan involution lives (since the involution is needed to define the fibers). But the fiber classes also record for which real forms this stable conjugacy class of Cartan subgroups is defined; and, given the real form, which imaginary roots are compact and noncompact.
Definition at line 588 of file cartanclass.h.
|
||||||||||||
|
Synopsis: constructs the Cartan class with involution q. Precondition: q is an involution of the root datum rd that can be obtained from the distinguished involution by multiplication to the left by the action of a Weyl group element w, which is called the twisted involution associated to q. Definition at line 142 of file cartanclass.cpp. References atlas::cartanclass::dualFiber(), and atlas::latticetypes::LatticeMatrix. |
|
|
Definition at line 655 of file cartanclass.h. |
|
|
Class of the fiber group for the dual Cartan. Elements of the dual fiber group are characters of the group of connected components of the real points of H. Definition at line 742 of file cartanclass.h. Referenced by atlas::cartanset::CartanClassSet::dualFiberSize(), atlas::cartanset::CartanClassSet::dualRepresentative(), and atlas::realweyl::RealWeyl::RealWeyl(). |
|
|
Class of the fiber group H^{-tau}/[(1-tau)H] for this Cartan. Elements (very roughly) correspond to possible extensions of the real form tau from H to G. Definition at line 732 of file cartanclass.h. Referenced by atlas::cartanset::CartanClassSet::fiberSize(), atlas::kgb::KGBHelp::grading_seed(), isMostSplit(), atlas::kgb::KGBHelp::naive_seed(), atlas::cartan_io::printCartanClass(), atlas::complexredgp_io::printGradings(), atlas::realweyl::RealWeyl::RealWeyl(), atlas::cartanset::CartanClassSet::representative(), and atlas::cartanset::CartanClassSet::updateStatus(). |
|
|
RootSet flagging the imaginary roots.
That is, a bitmap whose set bits are those corresponding to the numbers (within the list of roots in RootDatum) of the imaginary roots (those roots Definition at line 686 of file cartanclass.h. References atlas::cartanclass::Fiber::imaginaryRootSet(), and atlas::rootdata::RootSet. Referenced by makeSimpleComplex(). |
|
|
Returns the matrix of the involution on the weight lattice of the Cartan subgroup.
Definition at line 668 of file cartanclass.h. References atlas::cartanclass::Fiber::involution(), and atlas::latticetypes::LatticeMatrix. Referenced by atlas::cartanset::CartanClassSet::addCartan(), and atlas::kgb::FiberData::FiberData(). |
|
|
Action of the Cartan involution on root #j.
Definition at line 675 of file cartanclass.h. References atlas::cartanclass::Fiber::involution_image_of_root(). Referenced by makeSimpleComplex(), and atlas::realweyl::RealWeylGenerators::RealWeylGenerators(). |
|
|
Tells whether this cartan class is the most split one for weak real form corresponding to class #wrf in fiber().weakReal(). Algorithm: this is the case iff the grading corresponding to wrf is trivial, i.e., all imaginary roots are compact. In this case it does not matter which representative fiber element |x| is chosen, since the action of the imaginary Weyl group obviously stabilises the trivial grading. [In fact there should be only one such representative by injectivity of the map from the adjoint fiber to gradings, as given by the assert statement below. MvL] Definition at line 174 of file cartanclass.cpp. References atlas::cartanclass::AdjointFiberElt, atlas::bitset::BitSet< n >::any(), atlas::partition::Partition::classRep(), atlas::partition::Partition::classSize(), fiber(), atlas::cartanclass::Fiber::grading(), atlas::gradings::Grading, atlas::bitset::BitSet< n >::none(), and atlas::cartanclass::Fiber::weakReal(). Referenced by atlas::cartanset::CartanClassSet::updateStatus(). |
|
|
Returns the size of the twisted involution orbit for this class.
Definition at line 1191 of file cartanclass.cpp. References atlas::rootdata::RootDatum::cartanMatrix(), atlas::rootdata::lieType(), simpleComplex(), simpleImaginary(), simpleReal(), atlas::size::Size, and atlas::weylsize::weylSize(). |
|
|
Computes the list of the simple roots for a complex factor in
Explanation:
NOTE: there was a bad bug here in an earlier version, which amounted to the implicit assumption that the standard positive root system for the $Phi^C$ is Definition at line 1143 of file cartanclass.cpp. References atlas::bitset::BitSet< n >::andnot(), atlas::bitset::BitSet< n >::begin(), atlas::rootdata::cartanMatrix(), atlas::dynkin::DynkinDiagram::component(), imaginaryRootSet(), involution_image_of_root(), atlas::rootdata::RootDatum::isOrthogonal(), atlas::latticetypes::LatticeMatrix, atlas::rootdata::RootDatum::numRoots(), atlas::dynkin::DynkinDiagram::rank(), atlas::bitset::RankFlags, realRootSet(), atlas::bitset::BitSet< n >::reset(), atlas::rootdata::RootDatum::simpleBasis(), and atlas::rootdata::RootDatum::twoRho(). |
|
|
Number of weak real forms for the dual group containing the dual Cartan.
Definition at line 753 of file cartanclass.h. References atlas::cartanclass::Fiber::numRealForms(). Referenced by atlas::interpreter::Cartan_class_value::print(). |
|
|
Number of possible squares of strong real forms mod (1+delta)Z. This is the number of classes in the partition of weak real forms according to Z^delta/[(1+delta)Z]. Definition at line 773 of file cartanclass.h. References atlas::partition::Partition::classCount(), and atlas::cartanclass::Fiber::realFormPartition(). Referenced by atlas::realredgp_io::printStrongReal(). |
|
|
Number of weak real forms containing this Cartan. This is the number of orbits of the imaginary Weyl group on the adjoint fiber group. Definition at line 762 of file cartanclass.h. References atlas::cartanclass::Fiber::numRealForms(). Referenced by atlas::interpreter::Cartan_class_value::print(), atlas::cartan_io::printCartanClass(), and atlas::complexredgp_io::printGradings(). |
|
|
Size of the W-conjugacy class of tau. The number of distinct involutions defining the same stable conjugacy class of Cartan subgroups. Definition at line 783 of file cartanclass.h. References atlas::size::SizeType< C >::toUlong(). Referenced by atlas::cartanset::CartanClassSet::block_size(), atlas::cartanset::CartanClassSet::KGB_size(), atlas::cartanset::CartanClassSet::numInvolutions(), atlas::realredgp_io::printBlockStabilizer(), atlas::cartan_io::printCartanClass(), and atlas::realredgp_io::printRealWeyl(). |
|
|
RootSet flagging the real roots.
That is, a bitmap whose set bits are those corresponding to the numbers (within the list of roots in RootDatum) of the real roots (those roots Definition at line 696 of file cartanclass.h. References atlas::cartanclass::Fiber::realRootSet(), and atlas::rootdata::RootSet. Referenced by makeSimpleComplex(). |
|
|
Roots simple for the "complex factor" of W^tau. The subgroup W^tau of Weyl group elements commuting with the Cartan involution tau has two obvious (commuting) normal subgroups: the Weyl group W^R of the real (that is, fixed by -tau) roots, and the Weyl group W^iR of the imaginary (that is, fixed by tau) roots. But this is not all of W^: W^tau is a semidirect product of (W^R x W^iR) with a group W^C, the first factor being normal. Here is how to describe W^C. Write RC (standing for "complex roots") for the roots orthogonal to (a) the sum of positive real roots, and also (b) the sum of positive imaginary roots. It turns out that RC as a root system is the direct sum of two isomorphic root systems RC_0 and RC_1 interchanged by tau. (There is no canonical choice of this decomposition.) The group W^tau includes W^C, the diagonal subgroup of W(RC_0) x W(RC_1). The list d_simpleComplex is the numbers of the simple roots for (a choice of) RC_0. That is, the Weyl group W^C is isomorphic to the Weyl group generated by the reflections corresponding to the numbers in d_simpleComplex. Definition at line 809 of file cartanclass.h. Referenced by makeOrbitSize(), atlas::cartan_io::printCartanClass(), and atlas::realweyl::RealWeyl::RealWeyl(). |
|
|
RootList holding the numbers of the simple imaginary roots. These are simple for the subsystem of imaginary roots. They need not be simple in the entire root system. Definition at line 706 of file cartanclass.h. References atlas::cartanclass::Fiber::simpleImaginary(). Referenced by makeOrbitSize(), atlas::cartan_io::printCartanClass(), and atlas::realweyl::RealWeyl::RealWeyl(). |
|
|
RootList holding the numbers of the simple real roots. These are simple for subsystem of real roots. They need not be simple in the entire root system. Since only the _numbers_ are needed, we can take those of the simple imaginary roots in the dual fiber (this depends on the fact that the constructor for a dual root system preserves the numbering of the roots (but exchanging roots and coroots of course). This dependency should be removed in the future, MvL. Definition at line 721 of file cartanclass.h. References atlas::cartanclass::Fiber::simpleImaginary(). Referenced by makeOrbitSize(), atlas::cartan_io::printCartanClass(), and atlas::realweyl::RealWeyl::RealWeyl(). |
|
|
Partitions of Fiber group cosets corresponding to the possible square classes in Z^delta/[(1+delta)Z]. The Fiber group acts in a simply transitive way on strong real forms (inducing tau on H) with a fixed square in Z^delta. The number of squares that occur (modulo (1+delta)Z) is equal to the number c of classes in the partition d_weakReal. The collection of strong real forms is therefore a collection of c cosets of the fiber group F. Each of these c cosets is partitioned into W_i orbits; these orbits are described by the c partitions in d_strongReal. Definition at line 825 of file cartanclass.h. References atlas::cartanclass::Fiber::strongReal(). Referenced by atlas::realredgp_io::printStrongReal(). |
|
|
Definition at line 152 of file cartanclass.cpp. References d_dualFiber, d_fiber, d_orbitSize, d_simpleComplex, and atlas::cartanclass::Fiber::swap(). |
|
|
Returns the image of x in the adjoint fiber group. Precondition: x is a valid element in the fiber group. Definition at line 834 of file cartanclass.h. References atlas::cartanclass::AdjointFiberElt, and atlas::cartanclass::Fiber::toAdjoint(). |
|
||||||||||||
|
Returns the class number in the weak real form partition of the strong real form #c in real form class rfc. The pair (c,rfc) is the software representation of an equivalence class of strong real forms (always assumed to induce tau on H). The integer rfc labels an element of Z^delta/[(1+delta)Z], thought of as a possible square value for strong real forms. The fiber group acts simply transitively on strong real forms with square equal to rfc. The integer c labels an orbit of W_i on this fiber group coset; this orbit is the equivalence class of strong real forms. Definition at line 850 of file cartanclass.h. References atlas::cartanclass::adjoint_fiber_orbit, and atlas::cartanclass::Fiber::toWeakReal(). Referenced by atlas::realredgp_io::printStrongReal(). |
|
|
Partition of the weak real forms according to the corresponding classes in Z(G)^delta/[(1+delta)Z(G)].
Definition at line 858 of file cartanclass.h. References atlas::cartanclass::Fiber::weakReal(). |
|
|
Class of the fiber group for the dual Cartan. Elements of the dual fiber group are characters of the group of connected components of the real points of H. Definition at line 607 of file cartanclass.h. Referenced by swap(). |
|
|
Class of the fiber group H^{-tau}/[(1-tau)H] for this Cartan. Elements (very roughly) correspond to possible extensions of the real form tau from H to G. Definition at line 599 of file cartanclass.h. Referenced by swap(). |
|
|
Size of the W-conjugacy class of tau. The number of distinct involutions defining the same stable conjugacy class of Cartan subgroups. Definition at line 647 of file cartanclass.h. Referenced by swap(). |
|
|
Roots simple for the "complex factor" of W^tau.
The subgroup Write $RC$ (standing for "complex roots") for the roots orthogonal to both the sum of positive real roots, and the sum of positive imaginary roots (this group depends on the choice of positive roots, but all choices lead to conjugate subgroups). It turns out that $RC$ as a root system is the direct sum of two isomorphic root systems $RC_0$ and $RC_1$ interchanged by $$. (There is no canonical choice of this decomposition.) Now $W^C$ is the set of $$-fixed elements of $W(RC_0) W(RC_1)$, in other words its diagonal subgroup. In general $W^C$ is not the Weyl group of a root subsystem, but it is isomorphic the the Weyl group of (any choice of) $RC_0$ (or of $RC_1$). We make a choice for $RC_0$, and |d_simpleComplex| lists its simple roots, so that $W^C$ is isomorphic to the Weyl group generated by the reflections corresponding to the roots whose numbers are in |d_simpleComplex|. Definition at line 639 of file cartanclass.h. Referenced by swap(). |
1.3.9.1