#include <blocks.h>
Collaboration diagram for atlas::blocks::Block:

Public Member Functions | |
| Block (complexredgp::ComplexReductiveGroup &, realform::RealForm rf, realform::RealForm drf, bool select_Cartans=false) | |
| Constructor for the block class. | |
| ~Block () | |
| const descents::DescentStatus & | descent (BlockElt z) const |
| vector of descent statuses of all simple roots | |
| descents::DescentStatus::Value | descentValue (size_t s, BlockElt z) const |
| descent type of s at z | |
| bool | isWeakDescent (size_t s, BlockElt z) const |
| whether |s| is a weak descent for |z| | |
| realform::RealForm | dualForm () const |
| size_t | firstStrictDescent (BlockElt z) const |
| Returns the first descent for z (the number of a simple root) that is not imaginary compact, or rank() if there is no such descent. | |
| size_t | firstStrictGoodDescent (BlockElt z) const |
| Returns the first descent for z (the number of a simple root) that is either complex or real type I; if there is no such descent returns |rank()|. | |
| BlockElt | cross (size_t s, BlockElt z) const |
| cross action | |
| BlockEltPair | cayley (size_t s, BlockElt z) const |
| Cayley transform. | |
| BlockEltPair | inverseCayley (size_t s, BlockElt z) const |
| inverse Cayley transform | |
| const bitset::RankFlags & | involutionSupport (size_t z) const |
the simple roots occurring in . | |
| bool | isStrictAscent (size_t, BlockElt) const |
| Tells if s is a strict ascent generator for z. | |
| bool | isStrictDescent (size_t, BlockElt) const |
| Tells if s is a strict descent generator for z. | |
| size_t | length (BlockElt z) const |
| length of block element | |
| size_t | Cartan_class (BlockElt z) const |
| Cartan class of block element. | |
| BlockEltPair | link (size_t alpha, size_t beta, BlockElt y) const |
the functor | |
| size_t | rank () const |
| semisimple rank of the group this block is constructed for | |
| realform::RealForm | realForm () const |
| size_t | size () const |
| size of the block | |
| const weyl::TwistedInvolution & | involution (BlockElt z) const |
| Returns the twisted involution corresponding to z. | |
| const weyl::WeylGroup & | weylGroup () const |
| kgb::KGBElt | x (BlockElt z) const |
| kgb::KGBElt | y (BlockElt z) const |
| BlockElt | element (kgb::KGBElt x, kgb::KGBElt y) const |
| Look up element by |x|, |y| coordinates. | |
| std::pair< BlockElt, BlockElt > | R_packet (BlockElt z) const |
| size_t | xsize () const |
| size_t | ysize () const |
| bruhat::BruhatOrder & | bruhatOrder () |
Private Types | |
| enum | State { BruhatConstructed, NumStates } |
Private Member Functions | |
| weyl::TwistedInvolution | dualInvolution (const weyl::TwistedInvolution &tw, weyl::WeylInterface to_dual) const |
| Returns the twisted involution dual to tw. | |
| void | generate (realredgp::RealReductiveGroup &G, realredgp::RealReductiveGroup &dG, bool select_Cartans) |
| void | fillBruhat () |
| Constructs the BruhatOrder. | |
Private Attributes | |
| realform::RealForm | d_realForm |
| Number (in the list maintained by the complex reductive group) of the real form of G where the block lives. | |
| realform::RealForm | d_dualForm |
| Number of the real form of G^vee defining the block. | |
| size_t | d_rank |
| Semisimple rank of G. | |
| const weyl::WeylGroup & | d_weylGroup |
| size_t | d_xrange |
| Number of K orbits on G/B. | |
| size_t | d_yrange |
| Number of K^vee orbits on G^vee/B^vee. | |
| kgb::KGBEltList | d_x |
| Element d_x[z] identifies the K orbit x on G/B for z. | |
| kgb::KGBEltList | d_y |
| Element d_y[z] identifies the K^vee orbit y on G^vee/B^vee for z. | |
| std::vector< BlockElt > | d_first_z_of_x |
| maps KGB element |x| to the first block element |z| with |d_x[z]>=x|. | |
| std::vector< BlockEltList > | d_cross |
| d_cross[s][z] is $s * z$ (for s a simple root, z a BlockElt). | |
| std::vector< BlockEltPairList > | d_cayley |
| For $s$ a simple root and $z$ a |BlockElt|, |d_cayley[s][z]| is the Cayley transform $c_s(z)$ (noncompact imaginary case) or the inverse Cayley transform $c^s(z)$ (real type 1 or 2) or undefined (otherwise). | |
| descents::DescentStatusList | d_descent |
| Entry z flags the descent status of the simple roots for block element z. | |
| std::vector< size_t > | d_length |
| Entry z is the length of block element z. | |
| std::vector< size_t > | d_Cartan |
| Entry z is the Cartan class of block element z. | |
| weyl::TwistedInvolutionList | d_involution |
Entry z (multiplied by the fixed outer automorphism ) is the involution of H attached to z (in other words, d_involution[z] is the twisted involution attached to z; MvL). | |
| std::vector< bitset::RankFlags > | d_involutionSupport |
Entry z flags the simple roots occurring in . | |
| bitset::BitSet< NumStates > | d_state |
| Records state bits (in fact one: whether the Bruhat order is computed). | |
| bruhat::BruhatOrder * | d_bruhat |
| Bruhat order on the block. | |
For our fixed inner form, orbits of $K$ on $G/B$ are parametrized by classes of elements $x$ in $N_G(H).$ (which is the normalizer in the second half $G.$ of the extended group $G^Gamma=G disju G.$, where $$ is (i.e., acts on $G$ as) an involution that itself normalises $H$) modulo the {conjugation} action of $H$. (Dangerous bend: this $H$ conjugacy class of $x$ is a subset, usually proper, of the coset $xH$. The collection of all $x$ is therefore NOT a subset of the extended Weyl group $N(H)/H$, but something more subtle.) The requirement on $x$ is that it belong to to the $G$-conjugacy class of strong involutions defining the inner form.
Each $x$ therefore defines an involution $theta_x$ of $H$. Describing the set of $x$ with a fixed involution is accomplished by the Fiber class.
A block is characterized by specifying also an inner form of the dual group $G^vee$. For this inner form, $K^vee$ orbits on $G^vee/B^vee$ are parametrized by elements $y$. The basic theorem is that the block of representations is parametrized by pairs $(x,y)$ as above, subject to the requirement that $theta_y$ is the negative transpose of $theta_x$.
Definition at line 81 of file blocks.h.
|
|
|
|
||||||||||||||||||||
|
Constructor for the block class. Constructs a block from the datum of a real form rf for G and a real form df for G^vee (_not_ strong real forms: up to isomorphism, the result depends only on the underlying real forms!). Definition at line 171 of file blocks.cpp. References atlas::blocks::BlockElt, cross(), d_involution, d_involutionSupport, d_length, d_rank, descentValue(), firstStrictDescent(), generate(), inverseCayley(), atlas::bitset::RankFlags, atlas::lietype::semisimpleRank(), atlas::bitset::BitSet< n >::set(), size(), weylGroup(), and atlas::weyl::WeylGroup::word(). |
|
|
Definition at line 239 of file blocks.cpp. |
|
|
Definition at line 322 of file blocks.h. Referenced by atlas::blockorder_f(), atlas::kl_io::printAllKL(), and atlas::kl_io::printPrimitiveKL(). |
|
|
Cartan class of block element.
Definition at line 256 of file blocks.h. Referenced by atlas::block_io::printBlock(), atlas::block_io::printBlockD(), and atlas::block_io::printBlockU(). |
|
||||||||||||
|
Cayley transform.
Definition at line 223 of file blocks.h. References atlas::blocks::BlockEltPair, and atlas::blocks::UndefBlock. Referenced by atlas::klsupport::KLSupport::cayley(), atlas::blocks::insertAscents(), link(), atlas::klsupport::KLSupport::primitivize(), atlas::block_io::printBlock(), atlas::block_io::printBlockD(), atlas::block_io::printBlockU(), and atlas::filekl::write_block_file(). |
|
||||||||||||
|
cross action
Definition at line 216 of file blocks.h. References atlas::blocks::BlockElt. Referenced by Block(), atlas::klsupport::KLSupport::cross(), atlas::blocks::insertAscents(), link(), atlas::blocks::makeHasse(), atlas::klsupport::KLSupport::primitivize(), atlas::block_io::printBlock(), atlas::block_io::printBlockD(), atlas::block_io::printBlockU(), and atlas::filekl::write_block_file(). |
|
|
vector of descent statuses of all simple roots
Definition at line 192 of file blocks.h. Referenced by link(), atlas::block_io::printBlock(), atlas::block_io::printBlockD(), and atlas::block_io::printBlockU(). |
|
||||||||||||
|
descent type of s at z
Definition at line 198 of file blocks.h. Referenced by Block(), atlas::klsupport::KLSupport::descentValue(), firstStrictGoodDescent(), atlas::blocks::insertAscents(), isStrictAscent(), isStrictDescent(), atlas::blocks::makeHasse(), and atlas::filekl::write_block_file(). |
|
|
|
|
||||||||||||
|
Returns the twisted involution dual to tw.
Definition at line 563 of file blocks.cpp. References atlas::weyl::WeylGroup::inverse(), atlas::weyl::WeylGroup::longest(), atlas::weyl::WeylGroup::prod(), atlas::weyl::WeylGroup::translation(), atlas::weyl::WeylGroup::twisted(), and atlas::weyl::TwistedInvolution. Referenced by generate(). |
|
||||||||||||
|
Look up element by |x|, |y| coordinates. Precondition: |x| and |y| should be compatible: such a block element exists This uses the |d_first_z_of_x| table to locate the range where the |x| coordinates are correct; then comparing the given |y| value with the first one present for |x| (there must be at least one) we can predict the value directly, since for each fixed |x| value the values of |y| are consecutive. Definition at line 258 of file blocks.cpp. References atlas::blocks::BlockElt, d_first_z_of_x, d_x, d_y, and size(). Referenced by atlas::blocks::dual_map(), and generate(). |
|
|
Constructs the BruhatOrder. NOTE: may throw a MemoryOverflow error. Commit-or-rollback is guaranteed. Definition at line 497 of file blocks.cpp. References BruhatConstructed, d_bruhat, d_state, atlas::blocks::makeHasse(), atlas::bitset::BitSet< n >::set(), and atlas::bitset::BitSet< n >::test(). |
|
|
Returns the first descent for z (the number of a simple root) that is not imaginary compact, or rank() if there is no such descent.
Definition at line 298 of file blocks.cpp. References isStrictDescent(), and rank(). Referenced by Block(). |
|
|
Returns the first descent for z (the number of a simple root) that is either complex or real type I; if there is no such descent returns |rank()|.
Definition at line 311 of file blocks.cpp. References descentValue(), isStrictDescent(), and rank(). Referenced by atlas::blocks::makeHasse(). |
|
||||||||||||||||
|
||||||||||||
|
inverse Cayley transform
Definition at line 232 of file blocks.h. References atlas::blocks::BlockEltPair, and atlas::blocks::UndefBlock. Referenced by Block(), link(), atlas::blocks::makeHasse(), atlas::block_io::printBlock(), atlas::block_io::printBlockD(), and atlas::block_io::printBlockU(). |
|
|
Returns the twisted involution corresponding to z. This is the corresponding Weyl group element w, such that w.delta is the root datum involution tau corresponding to z Definition at line 284 of file blocks.h. References atlas::weyl::TwistedInvolution. Referenced by atlas::block_io::printBlock(), atlas::block_io::printBlockD(), and atlas::block_io::printBlockU(). |
|
|
the simple roots occurring in
Definition at line 241 of file blocks.h. References atlas::bitset::RankFlags. Referenced by atlas::block_io::printBlockU(). |
|
||||||||||||
|
Tells if s is a strict ascent generator for z. Explanation: this means that d_descent[z][s] is one of ComplexAscent, ImaginaryTypeI or ImaginaryTypeII. Definition at line 272 of file blocks.cpp. References atlas::blocks::descents(), and descentValue(). |
|
||||||||||||
|
Tells if s is a strict descent generator for z. Explanation: this means that d_descent[z][s] is one of ComplexDescent, RealTypeI or RealTypeII. Definition at line 286 of file blocks.cpp. References descentValue(). Referenced by firstStrictDescent(), and firstStrictGoodDescent(). |
|
||||||||||||
|
whether |s| is a weak descent for |z|
Definition at line 205 of file blocks.h. Referenced by link(), atlas::block_io::printBlock(), atlas::block_io::printBlockD(), atlas::block_io::printBlockU(), and atlas::filekl::write_block_file(). |
|
|
length of block element
Definition at line 251 of file blocks.h. Referenced by atlas::fillLengthLess(), atlas::klsupport::KLSupport::length(), atlas::block_io::printBlock(), atlas::block_io::printBlockD(), atlas::block_io::printBlockU(), and atlas::filekl::write_block_file(). |
|
||||||||||||||||
|
the functor Precondition: alpha and beta are adjacent roots, of which alpha is a (weak) descent for y, while beta is not a descent for y. In fact if this is not satisfied, we return a pair of UndefBlock elements Definition at line 330 of file blocks.cpp. References atlas::blocks::BlockElt, atlas::blocks::BlockEltPair, cayley(), cross(), descent(), inverseCayley(), isWeakDescent(), and atlas::blocks::UndefBlock. |
|
|
Definition at line 307 of file blocks.h. References atlas::blocks::BlockElt. Referenced by atlas::kl::helper::Helper::completePacket(), atlas::kl::helper::Helper::fillKLRow(), and atlas::kl::helper::Helper::fillThickets(). |
|
|
semisimple rank of the group this block is constructed for
Definition at line 265 of file blocks.h. Referenced by firstStrictDescent(), firstStrictGoodDescent(), atlas::blocks::makeHasse(), atlas::block_io::printBlock(), atlas::block_io::printBlockD(), atlas::block_io::printBlockU(), and atlas::filekl::write_block_file(). |
|
|
|
|
|
size of the block
Definition at line 274 of file blocks.h. References atlas::bitmap::BitMap::size(). Referenced by Block(), atlas::blockorder_f(), atlas::blocks::dual_map(), element(), atlas::klsupport::KLSupport::fillDownsets(), atlas::fillLengthLess(), generate(), atlas::blocks::makeHasse(), atlas::block_io::printBlock(), atlas::block_io::printBlockD(), atlas::block_io::printBlockU(), and atlas::filekl::write_block_file(). |
|
|
Definition at line 290 of file blocks.h. Referenced by Block(), atlas::block_io::printBlock(), atlas::block_io::printBlockD(), and atlas::block_io::printBlockU(). |
|
|
Definition at line 294 of file blocks.h. Referenced by atlas::blocks::dual_map(), generate(), atlas::block_io::printBlock(), atlas::block_io::printBlockD(), and atlas::block_io::printBlockU(). |
|
|
Definition at line 314 of file blocks.h. Referenced by atlas::block_io::printBlock(), atlas::block_io::printBlockD(), and atlas::block_io::printBlockU(). |
|
|
Definition at line 299 of file blocks.h. Referenced by atlas::blocks::dual_map(), generate(), atlas::block_io::printBlock(), atlas::block_io::printBlockD(), and atlas::block_io::printBlockU(). |
|
|
Definition at line 317 of file blocks.h. Referenced by atlas::block_io::printBlock(), atlas::block_io::printBlockD(), and atlas::block_io::printBlockU(). |
|
|
Bruhat order on the block. Definition now corrected mathematically from the bad definition of Vogan's Park City notes to one equivalent to the transitive closure of non-vanishing KL polynomial. Definition at line 178 of file blocks.h. Referenced by fillBruhat(). |
|
|
Entry z is the Cartan class of block element z.
Definition at line 151 of file blocks.h. Referenced by generate(). |
|
|
For $s$ a simple root and $z$ a |BlockElt|, |d_cayley[s][z]| is the Cayley transform $c_s(z)$ (noncompact imaginary case) or the inverse Cayley transform $c^s(z)$ (real type 1 or 2) or undefined (otherwise).
Definition at line 134 of file blocks.h. Referenced by generate(). |
|
|
d_cross[s][z] is $s * z$ (for s a simple root, z a BlockElt).
Definition at line 128 of file blocks.h. Referenced by generate(). |
|
|
Entry z flags the descent status of the simple roots for block element z.
Definition at line 141 of file blocks.h. Referenced by generate(). |
|
|
Number of the real form of G^vee defining the block.
Definition at line 94 of file blocks.h. Referenced by generate(). |
|
|
maps KGB element |x| to the first block element |z| with |d_x[z]>=x|.
Definition at line 123 of file blocks.h. Referenced by element(), and generate(). |
|
|
Entry z (multiplied by the fixed outer automorphism ) is the involution
Definition at line 159 of file blocks.h. Referenced by Block(), and generate(). |
|
|
Entry z flags the simple roots occurring in
Definition at line 164 of file blocks.h. Referenced by Block(). |
|
|
Entry z is the length of block element z.
Definition at line 146 of file blocks.h. Referenced by Block(), and generate(). |
|
|
Semisimple rank of G.
Definition at line 97 of file blocks.h. Referenced by Block(). |
|
|
Number (in the list maintained by the complex reductive group) of the real form of G where the block lives.
Definition at line 89 of file blocks.h. Referenced by generate(). |
|
|
Records state bits (in fact one: whether the Bruhat order is computed).
Definition at line 169 of file blocks.h. Referenced by fillBruhat(). |
|
|
Definition at line 99 of file blocks.h. Referenced by generate(). |
|
|
Element d_x[z] identifies the K orbit x on G/B for z.
Definition at line 114 of file blocks.h. Referenced by element(), and generate(). |
|
|
Number of K orbits on G/B.
Definition at line 104 of file blocks.h. Referenced by generate(). |
|
|
Element d_y[z] identifies the K^vee orbit y on G^vee/B^vee for z.
Definition at line 119 of file blocks.h. Referenced by element(), and generate(). |
|
|
Number of K^vee orbits on G^vee/B^vee.
Definition at line 109 of file blocks.h. Referenced by generate(). |
1.3.9.1