Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members

atlas::kgb::KGBHelp Class Reference

Collaboration diagram for atlas::kgb::KGBHelp:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 KGBHelp (realredgp::RealReductiveGroup &)
 This constructor sets |gradingOffset| for |GR|, and a trival initial value.
 KGBHelp (realredgp::RealReductiveGroup &GR, const bitmap::BitMap &Cartan_classes)
 The helper constructor with a given set of Cartan classes initializes the lists with an element for each minimal Cartan class.
 ~KGBHelp ()
KGBHelpfill ()
 Constructs the full orbit set.
size_t export_tables (std::vector< KGBEltList > &cross, std::vector< KGBEltList > &cayley, weyl::TwistedInvolutionList &twisted, std::vector< KGBInfo > &info, bool traditional) const
 deliver values to fields of a |KGB| object under construction.
bool comp (KGBElt x, KGBElt y) const

Private Member Functions

void cayleyTransform (tits::TitsElt &a, size_t s) const
const tits::TitsGrouptitsGroup () const
const weyl::WeylGroupweylGroup () const
size_t twist (size_t s) const
bool simple_grading (const tits::TitsElt &a, size_t s) const
bool is_compact (const tits::TorusPart &x, rootdata::RootNbr n) const
bool grading (tits::TitsElt a, rootdata::RootNbr n) const
void basedTwistedConjugate (tits::TitsElt &a, size_t s) const
tits::TitsElt naive_seed (realform::RealForm rf, size_t cn) const
tits::TitsElt grading_seed (realform::RealForm rf, size_t cn) const
tits::TitsElt backtrack_seed (realform::RealForm rf, size_t cn) const
void cross_extend (KGBElt parent)
 Tries to enlarge the parameter set by cross-actions, without supposing that elements are generated by increasing order of twisted involution length.
void cayleyExtend (KGBElt parent)
 Tries to enlarge the parameter set by Cayley transforms from |parent|.

Private Attributes

const size_t d_rank
const tits::TitsGroupd_titsGroup
std::vector< KGBEltListd_cross
std::vector< KGBEltListd_cayley
std::vector< KGBInfod_info
tits::TE_Entry::Pooltype d_pool
 List of Tits elements parametrizing KGB orbits.
hashtable::HashTable< tits::TE_Entry,
KGBElt
d_tits
const complexredgp::ComplexReductiveGroupd_G
const cartanclass::Fiberd_fundf
const cartanclass::StrongRealFormRep d_srf
const rootdata::RootSet d_base_compact
gradings::Grading d_gradingOffset
 Flags the noncompact imaginary roots for the basic strong involution, among the simple roots for G.
FiberData d_fiberData
 Permits reducing each Tits group element modulo its fiber denominator.

Constructor & Destructor Documentation

atlas::kgb::KGBHelp::KGBHelp realredgp::RealReductiveGroup GR  ) 
 

This constructor sets |gradingOffset| for |GR|, and a trival initial value.

So we choose a different grading offset for each real form, but always start at the same Tits element. For an approach where different real forms can share a grading offset and thus make their KGB sets mesh together, see the next constructor. About the current (more or less) constructor Fokko said: ``from the datum of the real form (or more precisely, from the corresponding fundamental grading) we recover the basic cocycle that transforms the whole construction into a Tits group computation''. By the basic (1-)cocycle he seems to have meant the map from $W$ to the $W$-module $Y/2Y$ defined by the mentioned adjoint fiber element as image of the identity, and extended by the natural grading shifts for the simple reflections (only the image of the identity was actually computed).

Currently the fields |d_srf| and |d_base_compact| are only (possibly) used by the other constructor, and so are left just default-constructed here.

Definition at line 681 of file kgb.cpp.

References atlas::kgb::FiberData::cartanClass(), d_cayley, d_cross, d_fiberData, d_info, d_pool, d_tits, d_titsGroup, atlas::kgb::grading_offset_for(), atlas::kgb::KGBElt, atlas::realredgp::RealReductiveGroup::kgbSize(), atlas::hashtable::HashTable< Entry, Number >::match(), atlas::lietype::semisimpleRank(), and atlas::kgb::UndefKGB.

atlas::kgb::KGBHelp::KGBHelp realredgp::RealReductiveGroup GR,
const bitmap::BitMap Cartan_classes
 

The helper constructor with a given set of Cartan classes initializes the lists with an element for each minimal Cartan class.

The base grading is set up to correspond to (the chosen adjoint fiber element in the fundamental Cartan for) the central square class of this real form, which is done by the call to |square_class_grading_offset|.

The initial element then represents the place within its central square class of one chosen strong real form |srf| lying over this weak real form; it has the identity twisted involution, and a torus factor obtained by lifting the representative fiber group element |srf.first| via the |fromBasis| method of the fiber group back to the ``coweight lattice modulo 2'' $Y/2Y$.

Here we actually look up the strong real form in order to get a proper initial Tits group element associated to this Cartan

Definition at line 739 of file kgb.cpp.

References atlas::complexredgp::ComplexReductiveGroup::cartanClasses(), atlas::cartanclass::Fiber::central_square_class(), d_cayley, d_cross, d_fundf, d_G, d_info, d_pool, d_srf, d_tits, grading_seed(), atlas::weyl::WeylGroup::involutionLength(), atlas::cartanset::CartanClassSet::KGB_size(), atlas::kgb::KGBElt, atlas::hashtable::HashTable< Entry, Number >::match(), atlas::poset::Poset::minima(), atlas::cartanset::CartanClassSet::ordering(), atlas::realredgp::RealReductiveGroup::realForm(), atlas::lietype::semisimpleRank(), atlas::kgb::square_class_grading_offset(), atlas::tits::TitsElt::tw(), atlas::kgb::UndefKGB, and atlas::realredgp::RealReductiveGroup::weylGroup().

atlas::kgb::KGBHelp::~KGBHelp  )  [inline]
 

Definition at line 189 of file kgb.cpp.


Member Function Documentation

tits::TitsElt atlas::kgb::KGBHelp::backtrack_seed realform::RealForm  rf,
size_t  cn
const [private]
 

Definition at line 1022 of file kgb.cpp.

References basedTwistedConjugate(), atlas::complexredgp::ComplexReductiveGroup::cartanClasses(), atlas::cartanset::cayley_and_cross_part(), cayleyTransform(), d_fiberData, d_fundf, d_G, d_srf, d_titsGroup, atlas::cartanclass::Fiber::fiberGroup(), atlas::cartanclass::Fiber::fiberRank(), atlas::subquotient::Subquotient< dim >::fromBasis(), atlas::weyl::WeylGroup::involution_expr(), is_compact(), atlas::kgb::FiberData::reduce(), atlas::complexredgp::ComplexReductiveGroup::rootDatum(), atlas::rootdata::RootDatum::rootReflect(), simple_grading(), atlas::partition::Partition::size(), atlas::latticetypes::SmallBitVector, atlas::cartanclass::Fiber::strongReal(), atlas::tits::TorusPart, atlas::tits::TitsElt::tw(), atlas::cartanset::CartanClassSet::twistedInvolution(), atlas::weyl::TwistedInvolution, and atlas::complexredgp::ComplexReductiveGroup::weylGroup().

void atlas::kgb::KGBHelp::basedTwistedConjugate tits::TitsElt a,
size_t  s
const [inline, private]
 

Definition at line 299 of file kgb.cpp.

References atlas::tits::TitsGroup::left_add(), and atlas::tits::TitsGroup::simpleCoroot().

Referenced by backtrack_seed(), cross_extend(), and grading().

void atlas::kgb::KGBHelp::cayleyExtend KGBElt  parent  )  [private]
 

Tries to enlarge the parameter set by Cayley transforms from |parent|.

Precondition: |parent| is a |KGBElt| whose |status| field in |d_info| has been set to the proper value.

Calling this function also sets the fields |d_cayley[s][parent]| either to the appropriate value or to |UndefKGB| (it was 0, which is neither of those)

It is assumed that the it is an invariant of the |KGBHelp| structure that all downward links are already filled in.

Definition at line 1212 of file kgb.cpp.

References atlas::kgb::FiberData::cartanClass(), cayleyTransform(), d_cayley, d_fiberData, d_info, d_tits, atlas::kgb::KGBElt, atlas::interpreter::length(), atlas::hashtable::HashTable< Entry, Number >::match(), atlas::kgb::FiberData::reduce(), titsGroup(), and atlas::tits::TitsElt::tw().

Referenced by fill().

void atlas::kgb::KGBHelp::cayleyTransform tits::TitsElt a,
size_t  s
const [inline, private]
 

Definition at line 215 of file kgb.cpp.

Referenced by backtrack_seed(), and cayleyExtend().

bool atlas::kgb::KGBHelp::comp KGBElt  x,
KGBElt  y
const [inline]
 

Definition at line 204 of file kgb.cpp.

Referenced by export_tables(), and atlas::kgb::IndexCompare::operator()().

void atlas::kgb::KGBHelp::cross_extend KGBElt  parent  )  [private]
 

Tries to enlarge the parameter set by cross-actions, without supposing that elements are generated by increasing order of twisted involution length.

Precondition: |parent| is the index into |d_tits| of the parameter we are extending from.

Definition at line 1108 of file kgb.cpp.

References basedTwistedConjugate(), atlas::kgb::FiberData::cartanClass(), d_cross, d_fiberData, d_info, d_tits, atlas::weyl::WeylGroup::hasDescent(), atlas::kgb::KGBElt, atlas::weyl::WeylGroup::length_change(), atlas::hashtable::HashTable< Entry, Number >::match(), atlas::kgb::FiberData::reduce(), simple_grading(), atlas::tits::TitsElt::tw(), atlas::tits::TitsElt::w(), and weylGroup().

Referenced by fill().

size_t atlas::kgb::KGBHelp::export_tables std::vector< KGBEltList > &  cross,
std::vector< KGBEltList > &  cayley,
weyl::TwistedInvolutionList twisted,
std::vector< KGBInfo > &  info,
bool  traditional
const
 

deliver values to fields of a |KGB| object under construction.

Definition at line 818 of file kgb.cpp.

References comp(), d_cayley, d_cross, d_info, d_pool, d_rank, atlas::kgb::KGBElt, atlas::setutils::Permutation::pull_back(), atlas::setutils::Permutation::renumber(), atlas::hashtable::HashTable< Entry, Number >::size(), and atlas::kgb::UndefKGB.

KGBHelp & atlas::kgb::KGBHelp::fill  ) 
 

Constructs the full orbit set.

Precondition: the object is in the initial state, the one it is put in by the call to its constructor (at least one seed element is present).

Algorithm: The idea is just to start out from the given element, and then to saturate through cross actions and Cayley transforms.

It is important that for each element the cross actions are defined before the Cayley transforms is tried, because the status information set by the former is used by the latter.

Definition at line 808 of file kgb.cpp.

References cayleyExtend(), cross_extend(), d_pool, and atlas::kgb::KGBElt.

bool atlas::kgb::KGBHelp::grading tits::TitsElt  a,
rootdata::RootNbr  n
const [private]
 

Definition at line 874 of file kgb.cpp.

References basedTwistedConjugate(), d_G, atlas::rootdata::RootDatum::isPosRoot(), atlas::complexredgp::ComplexReductiveGroup::rootDatum(), atlas::rootdata::RootDatum::rootMinus(), atlas::rootdata::RootDatum::rootReflect(), atlas::rootdata::RootDatum::scalarProduct(), atlas::rootdata::RootDatum::semisimpleRank(), simple_grading(), and atlas::rootdata::RootDatum::simpleRootNbr().

Referenced by grading_seed().

tits::TitsElt atlas::kgb::KGBHelp::grading_seed realform::RealForm  rf,
size_t  cn
const [private]
 

Definition at line 965 of file kgb.cpp.

References atlas::latticetypes::BinaryEquation, atlas::latticetypes::BinaryEquationList, atlas::complexredgp::ComplexReductiveGroup::cartan(), atlas::complexredgp::ComplexReductiveGroup::cartanClasses(), atlas::partition::Partition::classRep(), d_fiberData, d_G, d_titsGroup, atlas::cartanclass::CartanClass::fiber(), atlas::bitvector::firstSolution(), atlas::cartanclass::Fiber::grading(), grading(), atlas::gradings::Grading, atlas::cartanclass::Fiber::imaginaryRank(), atlas::tits::TitsGroup::left_add(), atlas::bitvector::BitVector< dim >::pushBack(), atlas::complexredgp::ComplexReductiveGroup::rank(), atlas::cartanset::CartanClassSet::real_form_part(), atlas::kgb::FiberData::reduce(), atlas::rootdata::RootDatum::root(), atlas::complexredgp::ComplexReductiveGroup::rootDatum(), atlas::bitset::BitSet< n >::set(), atlas::cartanclass::Fiber::simpleImaginary(), titsGroup(), atlas::tits::TorusPart, atlas::cartanset::CartanClassSet::twistedInvolution(), and atlas::cartanclass::Fiber::weakReal().

Referenced by KGBHelp().

bool atlas::kgb::KGBHelp::is_compact const tits::TorusPart x,
rootdata::RootNbr  n
const [private]
 

Definition at line 864 of file kgb.cpp.

References d_base_compact, d_G, atlas::bitmap::BitMap::isMember(), atlas::rootdata::RootDatum::root(), atlas::complexredgp::ComplexReductiveGroup::rootDatum(), atlas::latticetypes::scalarProduct(), atlas::latticetypes::SmallBitVector, and atlas::tits::TorusPart.

Referenced by backtrack_seed().

tits::TitsElt atlas::kgb::KGBHelp::naive_seed realform::RealForm  rf,
size_t  cn
const [private]
 

Definition at line 923 of file kgb.cpp.

References atlas::complexredgp::ComplexReductiveGroup::cartan(), atlas::complexredgp::ComplexReductiveGroup::cartanClasses(), atlas::cartanclass::Fiber::central_square_class(), d_fiberData, d_G, d_titsGroup, atlas::cartanclass::CartanClass::fiber(), atlas::cartanclass::Fiber::fiberGroup(), atlas::cartanclass::Fiber::fiberRank(), atlas::subquotient::Subquotient< dim >::fromBasis(), atlas::tits::TitsGroup::mult(), atlas::bitset::RankFlags, atlas::cartanset::CartanClassSet::real_form_part(), atlas::kgb::FiberData::reduce(), atlas::latticetypes::SmallBitVector, atlas::cartanclass::Fiber::strongRepresentative(), atlas::tits::TorusPart, atlas::cartanset::CartanClassSet::twistedInvolution(), and atlas::weyl::TwistedInvolution.

bool atlas::kgb::KGBHelp::simple_grading const tits::TitsElt a,
size_t  s
const [inline, private]
 

Definition at line 260 of file kgb.cpp.

References atlas::latticetypes::scalarProduct().

Referenced by backtrack_seed(), cross_extend(), and grading().

const tits::TitsGroup& atlas::kgb::KGBHelp::titsGroup  )  const [inline, private]
 

Definition at line 219 of file kgb.cpp.

Referenced by cayleyExtend(), and grading_seed().

size_t atlas::kgb::KGBHelp::twist size_t  s  )  const [inline, private]
 

Definition at line 227 of file kgb.cpp.

References atlas::tits::TitsGroup::twist().

const weyl::WeylGroup& atlas::kgb::KGBHelp::weylGroup  )  const [inline, private]
 

Definition at line 223 of file kgb.cpp.

References atlas::tits::TitsGroup::weylGroup().

Referenced by cross_extend().


Member Data Documentation

const rootdata::RootSet atlas::kgb::KGBHelp::d_base_compact [private]
 

Definition at line 157 of file kgb.cpp.

Referenced by is_compact().

std::vector<KGBEltList> atlas::kgb::KGBHelp::d_cayley [private]
 

Definition at line 139 of file kgb.cpp.

Referenced by cayleyExtend(), export_tables(), and KGBHelp().

std::vector<KGBEltList> atlas::kgb::KGBHelp::d_cross [private]
 

Definition at line 138 of file kgb.cpp.

Referenced by cross_extend(), export_tables(), and KGBHelp().

FiberData atlas::kgb::KGBHelp::d_fiberData [private]
 

Permits reducing each Tits group element modulo its fiber denominator.

Definition at line 180 of file kgb.cpp.

Referenced by backtrack_seed(), cayleyExtend(), cross_extend(), grading_seed(), KGBHelp(), and naive_seed().

const cartanclass::Fiber& atlas::kgb::KGBHelp::d_fundf [private]
 

Definition at line 153 of file kgb.cpp.

Referenced by backtrack_seed(), and KGBHelp().

const complexredgp::ComplexReductiveGroup& atlas::kgb::KGBHelp::d_G [private]
 

Definition at line 152 of file kgb.cpp.

Referenced by backtrack_seed(), grading(), grading_seed(), is_compact(), KGBHelp(), and naive_seed().

gradings::Grading atlas::kgb::KGBHelp::d_gradingOffset [private]
 

Flags the noncompact imaginary roots for the basic strong involution, among the simple roots for G.

This is an important parameter in the KGB generation. It depends on an implicitly chosen "basic strong involution" in the fundamental fiber, i.e., one of the form $x_0\delta$ with $x_0\in H$. The element $x_0$ is determined, up a factor in $Z(G)$, by the evaluations of simple roots at it; these are given by $\alpha_i(x_0)=(-1)^{g_i}$ for all $i$, where $g_i$ denotes |d_gradingOffset[i]|. When $\alpha_i$ is imaginary for $\delta$, the value $g_i$ is fixed by the choice of a $W_{im}$ orbit representative in the real form; otherwise ($\alpha_i$ is complex for $\delta$) we choose $g_i=0$, which choice can be accommodated by $H$-conjugation of $x_0\delta$. Thanks to the latter convention, we are able to compute, using |d_gradingOffset|, gradings at simple roots that are imaginary in the fiber given by {any} twisted involution, even if those roots were complex in the fundamental fiber.

Definition at line 177 of file kgb.cpp.

std::vector<KGBInfo> atlas::kgb::KGBHelp::d_info [private]
 

Definition at line 140 of file kgb.cpp.

Referenced by cayleyExtend(), cross_extend(), export_tables(), and KGBHelp().

tits::TE_Entry::Pooltype atlas::kgb::KGBHelp::d_pool [private]
 

List of Tits elements parametrizing KGB orbits.

Accessed usually via the hash table |d_tits| (and |d_tits[i]| is |d_pool[i]|)

Definition at line 148 of file kgb.cpp.

Referenced by export_tables(), fill(), and KGBHelp().

const size_t atlas::kgb::KGBHelp::d_rank [private]
 

Definition at line 134 of file kgb.cpp.

Referenced by export_tables().

const cartanclass::StrongRealFormRep atlas::kgb::KGBHelp::d_srf [private]
 

Definition at line 155 of file kgb.cpp.

Referenced by backtrack_seed(), and KGBHelp().

hashtable::HashTable<tits::TE_Entry,KGBElt> atlas::kgb::KGBHelp::d_tits [private]
 

Definition at line 149 of file kgb.cpp.

Referenced by cayleyExtend(), cross_extend(), and KGBHelp().

const tits::TitsGroup& atlas::kgb::KGBHelp::d_titsGroup [private]
 

Definition at line 135 of file kgb.cpp.

Referenced by backtrack_seed(), grading_seed(), KGBHelp(), and naive_seed().


The documentation for this class was generated from the following file:
Generated on Wed Mar 26 16:52:52 2008 for atlas by  doxygen 1.3.9.1