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

atlas::cartanset::CartanClassSet Class Reference

Stores the set of stable conjugacy classes of Cartan subgroups of G. More...

#include <cartanset.h>

Collaboration diagram for atlas::cartanset::CartanClassSet:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 CartanClassSet (const complexredgp::ComplexReductiveGroup &parent, const latticetypes::LatticeMatrix &distinguished)
 Entry #j is the sum of the positive real roots for d_twistedInvolution[j]. Entry #j is intended to flag the imaginary roots for d_twistedInvolution[j]. Entry #j is intended to flag the simple imaginary roots for d_twistedInvolution[j].
 ~CartanClassSet ()
 CartanClassSet (const complexredgp::ComplexReductiveGroup &parent, const CartanClassSet &)
const cartanclass::CartanClasscartan (size_t cn) const
 Returns data for stable conjugacy class #cn of Cartan subgroups.
const latticetypes::LatticeMatrixdistinguished () const
 Recover the matrix of the involution for the fundamental Cartan.
const latticetypes::LatticeMatrixdualDistinguished () const
 Matrix of involution for the fundamental Cartan in the dual group.
unsigned long fiberSize (realform::RealForm rf, size_t cn) const
 Returns the size of the fiber orbits corresponding to the strong real forms lying over (weak) real form #rf, in cartan #cn.
const cartanclass::Fiberfundamental () const
 Fiber class for the fundamental Cartan subgroup.
unsigned long dualFiberSize (realform::RealForm, size_t) const
 Returns the size of the dual fiber orbits corresponding to the dual strong real forms lying over dual real form #rf, in Cartan #cn.
const cartanclass::FiberdualFundamental () const
 Fiber class for the fundamental Cartan in the dual group.
bool isDefined (realform::RealForm rf, size_t cn) const
 Tells whether Cartan #cn is defined in real form #rf.
size_t mostSplit (realform::RealForm rf) const
 Entry #rf is the number of the most split Cartan for real form #rf.
rootdata::RootSet noncompactRoots (realform::RealForm rf) const
 Returns the set of noncompact imaginary roots for (the representative in the adjoint fiber of) the real form #rf.
size_t numCartan () const
 Returns the number of stable conjugacy classes of Cartans for G.
size_t numDualRealForms () const
 Returns the number of weak real forms of the dual group of G.
size_t numDualRealForms (size_t cn) const
 Returns the number of weak real forms of the dual group for which the dual of Cartan #cn is defined.
size_t numInvolutions () const
 Returns the total number of involutions corresponding to the currently defined set of Cartans.
size_t numInvolutions (const bitmap::BitMap &Cartan_classes) const
 Returns the total number of involutions corresponding to the indicated set of Cartans.
size_t numRealForms () const
 Returns the number of weak real forms of G.
size_t numRealForms (size_t cn) const
 Returns the number of weak real forms of G for which Cartan #cn is defined.
const poset::Posetordering () const
 Returns the partial ordering of the set of Cartans.
realform::RealForm quasisplit () const
 Returns the (inner) number of the quasisplit real form.
const realform::RealFormListrealFormLabels (size_t cn) const
 Lists the real forms for which Cartan #cn is defined.
const realform::RealFormListdualRealFormLabels (size_t cn) const
 Entry #cn lists the dual real forms in which dual Cartan #cn is defined.
cartanclass::adjoint_fiber_orbit real_form_part (realform::RealForm rf, size_t cn) const
cartanclass::adjoint_fiber_orbit dual_real_form_part (realform::RealForm drf, size_t cn) const
unsigned long representative (realform::RealForm rf, size_t cn) const
 Returns a representative for real form #rf in Cartan #cn.
unsigned long dualRepresentative (realform::RealForm, size_t) const
 Returns a representative for dual real form #rf in Cartan #cn.
const rootdata::RootDatumrootDatum () const
const bitmap::BitMapsupport (realform::RealForm rf) const
 Entry #rf flags the Cartans defined in real form #rf.
const bitmap::BitMapdualSupport (realform::RealForm rf) const
 Entry #rf flags the dual Cartans defined in dual real form #rf.
const weyl::WeylGroupweylGroup () const
const TwistedInvolutiontwistedInvolution (size_t cn) const
 (Representative) twisted involutions for each class of Cartan subgroup.
const weyl::WeylElt canonicalize (TwistedInvolution &) const
 Make |sigma| canonical and return Weyl group |w| element that twisted conjugates the canonical representative back to original |sigma|.
latticetypes::LatticeMatrix involutionMatrix (const TwistedInvolution &tw) const
 matrix giving involution action of |tw| on weight lattice
void twistedAct (const weyl::TwistedInvolution &tw, latticetypes::LatticeElt &v) const
 Modify |v| through through involution associated to |tw|.
unsigned long KGB_size (realform::RealForm rf, const bitmap::BitMap &Cartan_classes) const
 Returns the cardinality of the subset of $K\backslash G/B$ associated to |rf| whose twisted involutions belong to |Cartan_classes|.
unsigned long block_size (realform::RealForm, realform::RealForm, const bitmap::BitMap &Cartan_classes) const
latticetypes::LatticeElt posRealRootSum (const TwistedInvolution &) const
 Sum of the real roots.
latticetypes::LatticeElt posImaginaryRootSum (const TwistedInvolution &) const
 Sum of the imaginary roots.
size_t cayley (size_t, size_t, weyl::WeylElt *) const
 returns index of canonical form of the product of twisted involution |d_twistedInvolution[j]| with the reflection through its |i|-th imaginary simple root. If |conjugator| is non-null, the conjugating element as returnd by |canonicalize| is assigned to |conjugator|.
size_t classNumber (TwistedInvolution) const
 find index of canonical representative of |sigma| in |d_twistedInvolution|, under the assumption that it is (already) present
void extend (realform::RealForm)
 Extends the CartanClassSet structure so that it contains all Cartans for the real form |rf|.

Private Member Functions

 CartanClassSet (const CartanClassSet &)
CartanClassSetoperator= (const CartanClassSet &)
weyl::TwistedInvolution reflection (rootdata::RootNbr rn, const TwistedInvolution &tw) const
 Returns |tw| composed to the left with the reflection |s_rn| corresponding to root #rn.
rootdata::RootSet noncompactPosRootSet (realform::RealForm, size_t) const
 Flags in rs the set of noncompact positive roots for Cartan #j.
std::vector< weyl::WeylEltListexpand () const
 Returns the various conjugacy classes of twisted involutions for the currently known Cartans.
void addCartan (TwistedInvolution tw)
 Adds a new cartan, with Cartan involution given by |tw|.
void addCartan (rootdata::RootNbr rn, size_t j)
 Adds a new cartan to |d_cartan|, obtained from cartan #j by Cayley transform through root #rn. NO LONGER USED.
void correlateForms ()
 Adds a new real form label list to d_realFormLabels.
void correlateDualForms (const rootdata::RootDatum &rd, const weyl::WeylGroup &W)
void updateStatus (size_t prev_Cartan_size)
 Updates d_status.
void updateSupports (size_t last_Cartan_class_added)
 Updates d_support and d_dualSupport.
void updateTwistedInvolutions (std::vector< weyl::WeylEltList > &known, const TwistedInvolution &tw)
 Updates the known list by adding the twisted class of tw to it.

Private Attributes

const complexredgp::ComplexReductiveGroupd_parent
 The inner class to which we are associated (and accessed from).
std::vector< cartanclass::CartanClass * > d_cartan
 List of stable conjugacy classes of Cartan subgroups.
TwistedInvolutionList d_twistedInvolution
 (Representative) twisted involutions for each class of Cartan subgroup. Choice at |j| must match corresponding |cartan(j).involution()|
poset::Poset d_ordering
 Partial order of Cartan subgroups.
cartanclass::Fiber d_fundamental
 Fiber class for the fundamental Cartan subgroup.
cartanclass::Fiber d_dualFundamental
 Fiber class for the fundamental Cartan in the dual group.
std::vector< realform::RealFormListd_realFormLabels
 Entry #n lists the real forms in which Cartan #n is defined.
std::vector< realform::RealFormListd_dualRealFormLabels
 Entry #n lists the dual real forms in which dual Cartan #n is defined.
std::vector< bitmap::BitMapd_support
 Entry #rf flags the Cartans defined in real form #rf.
std::vector< bitmap::BitMapd_dualSupport
 Entry #rf flags the dual Cartans defined in dual real form #rf.
bitmap::BitMap d_status
 Flags the set of real forms for which the full set of Cartan classes is constructed.
std::vector< size_t > d_mostSplit
 Entry #rf is the number of the most split Cartan for real form #rf.

Detailed Description

Stores the set of stable conjugacy classes of Cartan subgroups of G.

Each stable conjugacy classes of Cartan subgroups corresponds to a W-conjugacy class of involutions in the Gamma-enlarged Weyl group (W semidirect <gamma>, where <gamma>=Z/2Z acts on W), contained in the complement of its subgroup W. Since such involutions are of the form (w,Gamma), they can be represented by their element w, which is called a twisted involution. The condition for being a twisted involution $t$ is $t(t)=e$ and "twisted conjugacy" of $t$ by $w\in W$ is given by $w\cdot t=wt\Gamma(w^{-1})$. The stable conjugacy classes of Cartan subgroups will each be represented by a canonical representative of the corresponding twisted conjugacy class of twisted involutions.

In addition to describing the set of Cartan classes, this class provides access (via the |d_cartan| array) to data for each individual one of them, and (via |d_ordering|) to the partial order relation between them. For the latter, let |tau_i| be involutions acting on the complex torus |H| for various classes of Cartan subgroups; (H,tau_1) is considered "more compact" than (H,tau_2) if the identity component of the fixed point set H^tau_2 is W-conjugate to a subtorus of H^tau_1.

The problem for the dual group of G is identical, the bijection taking the negative transpose of a twisted involution. This bijection reverses the partial order on Cartans. The class provides also access to Cartans in the dual group.

Definition at line 80 of file cartanset.h.


Constructor & Destructor Documentation

atlas::cartanset::CartanClassSet::CartanClassSet const complexredgp::ComplexReductiveGroup parent,
const latticetypes::LatticeMatrix distinguished
 

Entry #j is the sum of the positive real roots for d_twistedInvolution[j]. Entry #j is intended to flag the imaginary roots for d_twistedInvolution[j]. Entry #j is intended to flag the simple imaginary roots for d_twistedInvolution[j].

[Not yet implemented. DV 8/5/06.]

Definition at line 111 of file cartanset.cpp.

References atlas::latticetypes::LatticeMatrix.

atlas::cartanset::CartanClassSet::~CartanClassSet  ) 
 

The only data explicitly allocated by the CartanClass is that for the CartanClass pointers.

Definition at line 165 of file cartanset.cpp.

References d_cartan.

atlas::cartanset::CartanClassSet::CartanClassSet const CartanClassSet  )  [private]
 

atlas::cartanset::CartanClassSet::CartanClassSet const complexredgp::ComplexReductiveGroup parent,
const CartanClassSet
 


Member Function Documentation

void atlas::cartanset::CartanClassSet::addCartan rootdata::RootNbr  rn,
size_t  j
[private]
 

Adds a new cartan to |d_cartan|, obtained from cartan #j by Cayley transform through root #rn. NO LONGER USED.

Definition at line 298 of file cartanset.cpp.

References cartan(), d_cartan, atlas::cartanclass::CartanClass::involution(), atlas::latticetypes::LatticeMatrix, rootDatum(), and atlas::rootdata::RootDatum::rootReflection().

void atlas::cartanset::CartanClassSet::addCartan TwistedInvolution  tw  )  [inline, private]
 

Adds a new cartan, with Cartan involution given by |tw|.

Definition at line 497 of file cartanset.h.

References atlas::weyl::TwistedInvolution.

Referenced by extend().

unsigned long atlas::cartanset::CartanClassSet::block_size realform::RealForm  ,
realform::RealForm  ,
const bitmap::BitMap Cartan_classes
const
 

Definition at line 904 of file cartanset.cpp.

References atlas::bitmap::BitMap::begin(), cartan(), dualFiberSize(), fiberSize(), and atlas::cartanclass::CartanClass::orbitSize().

Referenced by atlas::cartanset::blockSize().

const weyl::WeylElt atlas::cartanset::CartanClassSet::canonicalize TwistedInvolution sigma  )  const
 

Make |sigma| canonical and return Weyl group |w| element that twisted conjugates the canonical representative back to original |sigma|.

We find conjugating generators starting at the original `|sigma|' end, so these form the letters of |w| from left to right.

Definition at line 755 of file cartanset.cpp.

References atlas::bitset::BitSet< n >::begin(), atlas::weyl::WeylGroup::mult(), posImaginaryRootSum(), posRealRootSum(), atlas::bitset::RankFlags, atlas::rootdata::RootDatum::reflection(), atlas::bitset::BitSet< n >::reset(), rootDatum(), atlas::latticetypes::scalarProduct(), atlas::rootdata::RootDatum::semisimpleRank(), atlas::bitset::BitSet< n >::set(), atlas::rootdata::RootDatum::simpleCoroot(), atlas::rootdata::RootDatum::simpleRootNbr(), twistedAct(), atlas::weyl::WeylGroup::twistedConjugate(), atlas::weyl::TwistedInvolution, atlas::rootdata::RootDatum::twoRho(), and weylGroup().

Referenced by cayley(), classNumber(), and extend().

const cartanclass::CartanClass& atlas::cartanset::CartanClassSet::cartan size_t  cn  )  const [inline]
 

Returns data for stable conjugacy class #cn of Cartan subgroups.

Definition at line 235 of file cartanset.h.

Referenced by addCartan(), block_size(), atlas::complexredgp::ComplexReductiveGroup::cartan(), dualFiberSize(), dualRepresentative(), fiberSize(), KGB_size(), numInvolutions(), representative(), and updateStatus().

size_t atlas::cartanset::CartanClassSet::cayley size_t  j,
size_t  i,
weyl::WeylElt conjugator
const
 

returns index of canonical form of the product of twisted involution |d_twistedInvolution[j]| with the reflection through its |i|-th imaginary simple root. If |conjugator| is non-null, the conjugating element as returnd by |canonicalize| is assigned to |conjugator|.

Note that the mentioned reflection twisted-commutes with |d_twistedInvolution[j]|, so that the product is again a twisted involution.

Definition at line 867 of file cartanset.cpp.

References canonicalize(), d_twistedInvolution, atlas::setutils::find_index(), involutionMatrix(), atlas::weyl::WeylGroup::leftMult(), atlas::rootdata::RootDatum::reflectionWord(), rootDatum(), atlas::weyl::TwistedInvolution, and weylGroup().

size_t atlas::cartanset::CartanClassSet::classNumber TwistedInvolution  sigma  )  const
 

find index of canonical representative of |sigma| in |d_twistedInvolution|, under the assumption that it is (already) present

Definition at line 851 of file cartanset.cpp.

References canonicalize(), d_twistedInvolution, atlas::setutils::find_index(), and atlas::weyl::TwistedInvolution.

void atlas::cartanset::CartanClassSet::correlateDualForms const rootdata::RootDatum rd,
const weyl::WeylGroup W
[private]
 

Definition at line 431 of file cartanset.cpp.

References atlas::cartanset::cayley_and_cross_part(), atlas::cartanset::checkDecomposition(), atlas::partition::Partition::classRep(), atlas::bits::copy(), atlas::cartanset::crossTransform(), d_cartan, d_dualRealFormLabels, dualFundamental(), atlas::cartanclass::Fiber::grading(), atlas::gradings::Grading, atlas::cartanclass::Fiber::imaginaryRootSet(), atlas::cartanclass::Fiber::involution(), atlas::bitmap::BitMap::isMember(), atlas::latticetypes::LatticeMatrix, atlas::cartanset::makeRepresentative(), atlas::cartanclass::Fiber::numRealForms(), atlas::rootdata::RootList, atlas::bitset::BitSet< n >::set(), atlas::cartanclass::Fiber::simpleImaginary(), atlas::cartanset::transformGrading(), atlas::weyl::TwistedInvolution, atlas::cartanclass::Fiber::weakReal(), atlas::typenumber::WeylElt, atlas::weyl::WeylWord, and atlas::rootdata::RootDatum::word_of_inverse_matrix().

Referenced by extend().

void atlas::cartanset::CartanClassSet::correlateForms  )  [private]
 

Adds a new real form label list to d_realFormLabels.

Algorithm: the gradings of the imaginary root system corresponding to the various real forms for which the new cartan is defined are known. We find a cross-action followed by a composite Cayley transform, taking the fundamental cartan to the new one. Then for each real form, we take a representative grading, and compute a grading for the fundamental cartan transforming to it. This amounts to solving a system of linear equations mod 2.

Explanation: this is called when a new cartan class has just been added to d_cartan. Then this function finds the labels corresponding to the real forms for which this cartan is defined (the labelling of real forms being defined by the adjoint orbit picture in the fundamental fiber.)

Definition at line 361 of file cartanset.cpp.

References atlas::cartanset::cayley_and_cross_part(), atlas::cartanset::checkDecomposition(), atlas::partition::Partition::classRep(), atlas::bits::copy(), atlas::cartanset::crossTransform(), d_cartan, d_realFormLabels, d_twistedInvolution, distinguished(), fundamental(), atlas::cartanclass::Fiber::grading(), atlas::gradings::Grading, atlas::cartanclass::Fiber::imaginaryRootSet(), atlas::bitmap::BitMap::isMember(), atlas::cartanset::makeRepresentative(), atlas::cartanclass::Fiber::numRealForms(), rootDatum(), atlas::rootdata::RootList, atlas::bitset::BitSet< n >::set(), atlas::cartanclass::Fiber::simpleImaginary(), atlas::cartanset::transformGrading(), atlas::weyl::TwistedInvolution, atlas::cartanclass::Fiber::weakReal(), weylGroup(), and atlas::weyl::WeylWord.

Referenced by extend().

const latticetypes::LatticeMatrix& atlas::cartanset::CartanClassSet::distinguished  )  const [inline]
 

Recover the matrix of the involution for the fundamental Cartan.

This is the one permuting the simple roots, the distinguished one among the involutions in this inner class of G.

Definition at line 245 of file cartanset.h.

References atlas::cartanclass::Fiber::involution(), and atlas::latticetypes::LatticeMatrix.

Referenced by correlateForms(), atlas::complexredgp::ComplexReductiveGroup::distinguished(), and involutionMatrix().

cartanclass::adjoint_fiber_orbit atlas::cartanset::CartanClassSet::dual_real_form_part realform::RealForm  drf,
size_t  cn
const [inline]
 

get part in the |weakReal| partition of the dual fiber in Cartan #cn corresponding to dual real form |drf|

Definition at line 394 of file cartanset.h.

References atlas::setutils::find_index().

Referenced by dualFiberSize(), and dualRepresentative().

const latticetypes::LatticeMatrix& atlas::cartanset::CartanClassSet::dualDistinguished  )  const [inline]
 

Matrix of involution for the fundamental Cartan in the dual group.

This is -w_0 times the transpose of the fundamental involution.

Definition at line 255 of file cartanset.h.

References atlas::cartanclass::Fiber::involution(), and atlas::latticetypes::LatticeMatrix.

unsigned long atlas::cartanset::CartanClassSet::dualFiberSize realform::RealForm  rf,
size_t  cn
const
 

Returns the size of the dual fiber orbits corresponding to the dual strong real forms lying over dual real form #rf, in Cartan #cn.

Precondition: real form #rf is defined for cartan #cn.

Definition at line 620 of file cartanset.cpp.

References cartan(), atlas::cartanclass::Fiber::central_square_class(), atlas::partition::Partition::classSize(), dual_real_form_part(), atlas::cartanclass::CartanClass::dualFiber(), atlas::cartanclass::Fiber::strongReal(), and atlas::cartanclass::Fiber::strongRepresentative().

Referenced by block_size().

const cartanclass::Fiber& atlas::cartanset::CartanClassSet::dualFundamental  )  const [inline]
 

Fiber class for the fundamental Cartan in the dual group.

The fiber group here is the group of characters of the component group of the quasisplit Cartan.

Definition at line 284 of file cartanset.h.

Referenced by correlateDualForms(), and atlas::complexredgp::ComplexReductiveGroup::dualFundamental().

const realform::RealFormList& atlas::cartanset::CartanClassSet::dualRealFormLabels size_t  cn  )  const [inline]
 

Entry #cn lists the dual real forms in which dual Cartan #cn is defined.

Definition at line 377 of file cartanset.h.

Referenced by atlas::complexredgp::ComplexReductiveGroup::dualRealFormLabels(), and updateSupports().

unsigned long atlas::cartanset::CartanClassSet::dualRepresentative realform::RealForm  ,
size_t 
const
 

Returns a representative for dual real form #rf in Cartan #cn.

Precondition: cartan #cn is defined for rf.

Definition at line 686 of file cartanset.cpp.

References cartan(), atlas::partition::Partition::classRep(), dual_real_form_part(), atlas::cartanclass::CartanClass::dualFiber(), and atlas::cartanclass::Fiber::weakReal().

Referenced by atlas::complexredgp::ComplexReductiveGroup::dualRepresentative().

const bitmap::BitMap& atlas::cartanset::CartanClassSet::dualSupport realform::RealForm  rf  )  const [inline]
 

Entry #rf flags the dual Cartans defined in dual real form #rf.

Definition at line 429 of file cartanset.h.

Referenced by atlas::cartanset::blockSize().

std::vector< weyl::WeylEltList > atlas::cartanset::CartanClassSet::expand  )  const [private]
 

Returns the various conjugacy classes of twisted involutions for the currently known Cartans.

This method is NO LONGER USED during constructiont of a |CartanClassSet|.

Note: the lists come out sorted, to allow binary look-up; this is in fact dependent on the implementation of |weyl::WeylGroup::twistedConjugacyClass|

Definition at line 281 of file cartanset.cpp.

References d_cartan, d_twistedInvolution, atlas::weyl::WeylGroup::twistedConjugacyClass(), and weylGroup().

void atlas::cartanset::CartanClassSet::extend realform::RealForm  rf  ) 
 

Extends the CartanClassSet structure so that it contains all Cartans for the real form |rf|.

This is done by traversing all the known Cartan classes |j| defined for the real form |rf| (which includes at least the distinguished Cartan for the inner class), and all non-compact positive imaginary roots $\alpha$ for |(rf,j)|; the twisted involution |tw| for the Cartan class |j| is then left-multiplied by $s_\alpha$ to obtain a new twisted involution |ti|, and if |ti| is not member of any of the known classes of twisted involutions, it starts a new Cartan class defined in |rf|, which will later itself be considered in the loop described here.

While generating the Cartan classes, the ordering is extended by a link from the Cartan class |j| to the Cartan class of any twisted involution |ti| obtained directly from it.

Definition at line 195 of file cartanset.cpp.

References addCartan(), atlas::bitmap::BitMap::andnot(), atlas::bitmap::BitMap::begin(), canonicalize(), correlateDualForms(), correlateForms(), d_cartan, d_dualRealFormLabels, d_dualSupport, d_mostSplit, d_ordering, d_realFormLabels, d_status, d_support, d_twistedInvolution, atlas::poset::Poset::extend(), atlas::setutils::find_index(), isDefined(), atlas::bitmap::BitMap::isMember(), noncompactPosRootSet(), numRealForms(), reflection(), atlas::poset::Poset::resize(), rootDatum(), atlas::rootdata::RootSet, atlas::bitmap::BitMap::swap(), atlas::weyl::TwistedInvolution, updateStatus(), updateSupports(), and weylGroup().

Referenced by atlas::complexredgp::ComplexReductiveGroup::fillCartan().

unsigned long atlas::cartanset::CartanClassSet::fiberSize realform::RealForm  rf,
size_t  cn
const
 

Returns the size of the fiber orbits corresponding to the strong real forms lying over (weak) real form #rf, in cartan #cn.

Precondition: Real form #rf is defined for cartan #cn.

Definition at line 592 of file cartanset.cpp.

References cartan(), atlas::cartanclass::Fiber::central_square_class(), atlas::partition::Partition::classSize(), atlas::cartanclass::CartanClass::fiber(), real_form_part(), atlas::cartanclass::Fiber::strongReal(), and atlas::cartanclass::Fiber::strongRepresentative().

Referenced by block_size(), atlas::complexredgp::ComplexReductiveGroup::fiberSize(), and KGB_size().

const cartanclass::Fiber& atlas::cartanset::CartanClassSet::fundamental  )  const [inline]
 

Fiber class for the fundamental Cartan subgroup.

The involution is delta, which preserves the simple roots.

Definition at line 272 of file cartanset.h.

Referenced by correlateForms(), and atlas::complexredgp::ComplexReductiveGroup::fundamental().

latticetypes::LatticeMatrix atlas::cartanset::CartanClassSet::involutionMatrix const TwistedInvolution tw  )  const
 

matrix giving involution action of |tw| on weight lattice

Definition at line 695 of file cartanset.cpp.

References distinguished(), atlas::latticetypes::LatticeMatrix, atlas::weyl::WeylGroup::out(), rootDatum(), atlas::rootdata::toMatrix(), atlas::weyl::TwistedInvolution, atlas::weyl::WeylElt::w(), and weylGroup().

Referenced by cayley(), atlas::complexredgp::ComplexReductiveGroup::involutionMatrix(), posImaginaryRootSum(), and posRealRootSum().

bool atlas::cartanset::CartanClassSet::isDefined realform::RealForm  rf,
size_t  cn
const [inline]
 

Tells whether Cartan #cn is defined in real form #rf.

Definition at line 291 of file cartanset.h.

Referenced by extend().

unsigned long atlas::cartanset::CartanClassSet::KGB_size realform::RealForm  rf,
const bitmap::BitMap Cartan_classes
const
 

Returns the cardinality of the subset of $K\backslash G/B$ associated to |rf| whose twisted involutions belong to |Cartan_classes|.

Precondition: the Cartan classes for this real form have been generated

Definition at line 892 of file cartanset.cpp.

References atlas::bitmap::BitMap::begin(), cartan(), fiberSize(), and atlas::cartanclass::CartanClass::orbitSize().

Referenced by atlas::kgb::KGB::KGB(), atlas::kgb::KGBHelp::KGBHelp(), atlas::cartanset::kgbSize(), atlas::small_dual_kgb_f(), and atlas::small_kgb_f().

size_t atlas::cartanset::CartanClassSet::mostSplit realform::RealForm  rf  )  const [inline]
 

Entry #rf is the number of the most split Cartan for real form #rf.

Definition at line 298 of file cartanset.h.

Referenced by atlas::complexredgp::ComplexReductiveGroup::mostSplit().

rootdata::RootSet atlas::cartanset::CartanClassSet::noncompactPosRootSet realform::RealForm  rf,
size_t  j
const [private]
 

Flags in rs the set of noncompact positive roots for Cartan #j.

Definition at line 345 of file cartanset.cpp.

References atlas::cartanclass::Fiber::noncompactRoots(), and atlas::rootdata::RootSet.

Referenced by extend().

rootdata::RootSet atlas::cartanset::CartanClassSet::noncompactRoots realform::RealForm  rf  )  const [inline]
 

Returns the set of noncompact imaginary roots for (the representative in the adjoint fiber of) the real form #rf.

Definition at line 306 of file cartanset.h.

References atlas::partition::Partition::classRep(), atlas::cartanclass::Fiber::noncompactRoots(), atlas::rootdata::RootSet, and atlas::cartanclass::Fiber::weakReal().

Referenced by atlas::complexredgp::ComplexReductiveGroup::noncompactRoots().

size_t atlas::cartanset::CartanClassSet::numCartan  )  const [inline]
 

Returns the number of stable conjugacy classes of Cartans for G.

Definition at line 315 of file cartanset.h.

References atlas::bitmap::BitMap::size().

Referenced by atlas::complexredgp::ComplexReductiveGroup::numCartanClasses().

size_t atlas::cartanset::CartanClassSet::numDualRealForms size_t  cn  )  const [inline]
 

Returns the number of weak real forms of the dual group for which the dual of Cartan #cn is defined.

Definition at line 330 of file cartanset.h.

size_t atlas::cartanset::CartanClassSet::numDualRealForms  )  const [inline]
 

Returns the number of weak real forms of the dual group of G.

Definition at line 322 of file cartanset.h.

References atlas::cartanclass::Fiber::numRealForms().

Referenced by atlas::complexredgp::ComplexReductiveGroup::numDualRealForms().

size_t atlas::cartanset::CartanClassSet::numInvolutions const bitmap::BitMap Cartan_classes  )  const
 

Returns the total number of involutions corresponding to the indicated set of Cartans.

Definition at line 655 of file cartanset.cpp.

References atlas::bitmap::BitMap::begin(), cartan(), and atlas::cartanclass::CartanClass::orbitSize().

size_t atlas::cartanset::CartanClassSet::numInvolutions  )  const
 

Returns the total number of involutions corresponding to the currently defined set of Cartans.

Definition at line 641 of file cartanset.cpp.

References cartan(), d_cartan, and atlas::cartanclass::CartanClass::orbitSize().

Referenced by atlas::complexredgp::ComplexReductiveGroup::numInvolutions().

size_t atlas::cartanset::CartanClassSet::numRealForms size_t  cn  )  const [inline]
 

Returns the number of weak real forms of G for which Cartan #cn is defined.

Definition at line 348 of file cartanset.h.

References atlas::cartanclass::Fiber::numRealForms().

size_t atlas::cartanset::CartanClassSet::numRealForms  )  const [inline]
 

Returns the number of weak real forms of G.

Definition at line 340 of file cartanset.h.

References atlas::cartanclass::Fiber::numRealForms().

Referenced by extend(), and atlas::complexredgp::ComplexReductiveGroup::numRealForms().

CartanClassSet& atlas::cartanset::CartanClassSet::operator= const CartanClassSet  )  [private]
 

const poset::Poset& atlas::cartanset::CartanClassSet::ordering  )  const [inline]
 

Returns the partial ordering of the set of Cartans.

Definition at line 355 of file cartanset.h.

Referenced by atlas::complexredgp::ComplexReductiveGroup::cartanOrdering(), and atlas::kgb::KGBHelp::KGBHelp().

latticetypes::LatticeElt atlas::cartanset::CartanClassSet::posImaginaryRootSum const TwistedInvolution tw  )  const
 

Sum of the imaginary roots.

Definition at line 742 of file cartanset.cpp.

References atlas::cartanclass::InvolutionData::imaginary_roots(), involutionMatrix(), rootDatum(), atlas::weyl::TwistedInvolution, and atlas::rootdata::RootDatum::twoRho().

Referenced by canonicalize().

latticetypes::LatticeElt atlas::cartanset::CartanClassSet::posRealRootSum const TwistedInvolution tw  )  const
 

Sum of the real roots.

Definition at line 732 of file cartanset.cpp.

References involutionMatrix(), atlas::cartanclass::InvolutionData::real_roots(), rootDatum(), atlas::weyl::TwistedInvolution, and atlas::rootdata::RootDatum::twoRho().

Referenced by canonicalize().

realform::RealForm atlas::cartanset::CartanClassSet::quasisplit  )  const [inline]
 

Returns the (inner) number of the quasisplit real form.

Definition at line 362 of file cartanset.h.

References atlas::realform::RealForm.

Referenced by atlas::complexredgp::ComplexReductiveGroup::quasisplit().

cartanclass::adjoint_fiber_orbit atlas::cartanset::CartanClassSet::real_form_part realform::RealForm  rf,
size_t  cn
const [inline]
 

get part in the |weakReal| partition of the fiber in Cartan #cn corresponding to real form |rf|

Definition at line 385 of file cartanset.h.

References atlas::setutils::find_index().

Referenced by fiberSize(), atlas::kgb::KGBHelp::grading_seed(), atlas::kgb::KGBHelp::naive_seed(), and representative().

const realform::RealFormList& atlas::cartanset::CartanClassSet::realFormLabels size_t  cn  )  const [inline]
 

Lists the real forms for which Cartan #cn is defined.

Definition at line 369 of file cartanset.h.

Referenced by atlas::complexredgp::ComplexReductiveGroup::realFormLabels(), updateStatus(), and updateSupports().

TwistedInvolution atlas::cartanset::CartanClassSet::reflection rootdata::RootNbr  rn,
const TwistedInvolution tw
const [private]
 

Returns |tw| composed to the left with the reflection |s_rn| corresponding to root #rn.

This is a twisted involution if |s_rn| twisted-commutes with |tw|; in practice root #rn will in fact be imaginary for |tw|

Definition at line 330 of file cartanset.cpp.

References atlas::weyl::WeylGroup::leftMult(), atlas::rootdata::RootDatum::reflectionWord(), rootDatum(), atlas::weyl::TwistedInvolution, and weylGroup().

Referenced by extend().

unsigned long atlas::cartanset::CartanClassSet::representative realform::RealForm  rf,
size_t  cn
const
 

Returns a representative for real form #rf in Cartan #cn.

Precondition: cartan #cn is defined for rf.

Definition at line 673 of file cartanset.cpp.

References cartan(), atlas::partition::Partition::classRep(), atlas::cartanclass::CartanClass::fiber(), real_form_part(), and atlas::cartanclass::Fiber::weakReal().

Referenced by atlas::complexredgp::ComplexReductiveGroup::representative().

const rootdata::RootDatum& atlas::cartanset::CartanClassSet::rootDatum  )  const [inline]
 

Definition at line 415 of file cartanset.h.

References atlas::complexredgp::ComplexReductiveGroup::rootDatum().

Referenced by addCartan(), canonicalize(), cayley(), correlateForms(), extend(), involutionMatrix(), posImaginaryRootSum(), posRealRootSum(), and reflection().

const bitmap::BitMap& atlas::cartanset::CartanClassSet::support realform::RealForm  rf  )  const [inline]
 

Entry #rf flags the Cartans defined in real form #rf.

Definition at line 422 of file cartanset.h.

Referenced by atlas::cartanset::blockSize(), atlas::complexredgp::ComplexReductiveGroup::cartanSet(), and atlas::cartanset::kgbSize().

void atlas::cartanset::CartanClassSet::twistedAct const weyl::TwistedInvolution tw,
latticetypes::LatticeElt v
const
 

Modify |v| through through involution associated to |tw|.

Definition at line 710 of file cartanset.cpp.

References atlas::matrix::Matrix< C >::apply(), and atlas::weyl::TwistedInvolution.

Referenced by canonicalize().

const TwistedInvolution& atlas::cartanset::CartanClassSet::twistedInvolution size_t  cn  )  const [inline]
 

(Representative) twisted involutions for each class of Cartan subgroup.

Definition at line 441 of file cartanset.h.

References atlas::weyl::TwistedInvolution.

Referenced by atlas::kgb::KGBHelp::backtrack_seed(), atlas::kgb::KGBHelp::grading_seed(), atlas::kgb::KGBHelp::naive_seed(), atlas::cartan_io::printCartanClass(), and atlas::complexredgp::ComplexReductiveGroup::twistedInvolution().

void atlas::cartanset::CartanClassSet::updateStatus size_t  prev  )  [private]
 

Updates d_status.

Precondition: prev is the previous size of d_cartan;

Explanation: d_status holds the subset of the set of real forms for which the full set of Cartan classes is constructed; equivalently, those for which the most split Cartan has been reached.

Definition at line 489 of file cartanset.cpp.

References cartan(), atlas::partition::Partition::classCount(), d_cartan, d_mostSplit, d_status, atlas::cartanclass::CartanClass::fiber(), atlas::bitmap::BitMap::insert(), atlas::cartanclass::CartanClass::isMostSplit(), realFormLabels(), and atlas::cartanclass::Fiber::weakReal().

Referenced by extend().

void atlas::cartanset::CartanClassSet::updateSupports size_t  last  )  [private]
 

Updates d_support and d_dualSupport.

Explanation: for each real form rf, d_support[rf] contains the subset of the set of the currently defined cartans which are defined for rf; and analogously for d_dualSupport[rf]. This information is in fact a "cross-section" of the realFormLabels lists, which for each Cartan list the set of real forms for which the Cartan is defined. This function is called each time a new Cartan is added, and updates these lists.

Definition at line 524 of file cartanset.cpp.

References d_dualSupport, d_support, dualRealFormLabels(), atlas::bitmap::BitMap::insert(), realFormLabels(), and atlas::bitmap::BitMap::set_capacity().

Referenced by extend().

void atlas::cartanset::CartanClassSet::updateTwistedInvolutions std::vector< weyl::WeylEltList > &  known,
const TwistedInvolution tw
[private]
 

Updates the known list by adding the twisted class of tw to it.

Definition at line 560 of file cartanset.cpp.

References atlas::bitmap::BitMap::swap(), and atlas::weyl::TwistedInvolution.

const weyl::WeylGroup& atlas::cartanset::CartanClassSet::weylGroup  )  const [inline]
 

Definition at line 433 of file cartanset.h.

References atlas::complexredgp::ComplexReductiveGroup::weylGroup().

Referenced by canonicalize(), cayley(), correlateForms(), expand(), extend(), involutionMatrix(), and reflection().


Member Data Documentation

std::vector<cartanclass::CartanClass*> atlas::cartanset::CartanClassSet::d_cartan [private]
 

List of stable conjugacy classes of Cartan subgroups.

The list includes only Cartans appearing in real forms considered so far.

Definition at line 92 of file cartanset.h.

Referenced by addCartan(), correlateDualForms(), correlateForms(), expand(), extend(), numInvolutions(), updateStatus(), and ~CartanClassSet().

cartanclass::Fiber atlas::cartanset::CartanClassSet::d_dualFundamental [private]
 

Fiber class for the fundamental Cartan in the dual group.

The fiber group here is the group of characters (i.e., the dual group) of the component group of the quasisplit Cartan.

Definition at line 133 of file cartanset.h.

std::vector<realform::RealFormList> atlas::cartanset::CartanClassSet::d_dualRealFormLabels [private]
 

Entry #n lists the dual real forms in which dual Cartan #n is defined.

More precisely, d_dualRealFormLabels[n][i] is the inner number of the dual real form that corresponds to part i of the partition cartan(n).dualFiber().weakReal()

Definition at line 152 of file cartanset.h.

Referenced by correlateDualForms(), and extend().

std::vector<bitmap::BitMap> atlas::cartanset::CartanClassSet::d_dualSupport [private]
 

Entry #rf flags the dual Cartans defined in dual real form #rf.

Definition at line 162 of file cartanset.h.

Referenced by extend(), and updateSupports().

cartanclass::Fiber atlas::cartanset::CartanClassSet::d_fundamental [private]
 

Fiber class for the fundamental Cartan subgroup.

The involution is delta, which is stored here. It permutes the simple roots.

Definition at line 125 of file cartanset.h.

std::vector<size_t> atlas::cartanset::CartanClassSet::d_mostSplit [private]
 

Entry #rf is the number of the most split Cartan for real form #rf.

Definition at line 176 of file cartanset.h.

Referenced by extend(), and updateStatus().

poset::Poset atlas::cartanset::CartanClassSet::d_ordering [private]
 

Partial order of Cartan subgroups.

This is the ordering by containment of H^theta up to conjugacy: (H,theta_1) precedes (H,theta_2) if (H^theta_2)_0 is W-conjugate to a subtorus of H^theta_1. Numbering of elements is as in d_twistedInvolution

Definition at line 118 of file cartanset.h.

Referenced by extend().

const complexredgp::ComplexReductiveGroup& atlas::cartanset::CartanClassSet::d_parent [private]
 

The inner class to which we are associated (and accessed from).

Definition at line 85 of file cartanset.h.

std::vector<realform::RealFormList> atlas::cartanset::CartanClassSet::d_realFormLabels [private]
 

Entry #n lists the real forms in which Cartan #n is defined.

More precisely, d_realFormLabels[n][i] is the inner number of the real form that corresponds to part i of the partition cartan(n).fiber().weakReal()

Definition at line 142 of file cartanset.h.

Referenced by correlateForms(), and extend().

bitmap::BitMap atlas::cartanset::CartanClassSet::d_status [private]
 

Flags the set of real forms for which the full set of Cartan classes is constructed.

Because of the way the construction proceeds, these are exactly the real forms for which the most split Cartan has been reached.

Definition at line 171 of file cartanset.h.

Referenced by extend(), and updateStatus().

std::vector<bitmap::BitMap> atlas::cartanset::CartanClassSet::d_support [private]
 

Entry #rf flags the Cartans defined in real form #rf.

Definition at line 157 of file cartanset.h.

Referenced by extend(), and updateSupports().

TwistedInvolutionList atlas::cartanset::CartanClassSet::d_twistedInvolution [private]
 

(Representative) twisted involutions for each class of Cartan subgroup. Choice at |j| must match corresponding |cartan(j).involution()|

In this version the representative involutions are the canonical ones. They satisfy:

(1) the sum of the positive real roots is dominant (call it $SR$) (2) in the subsystem of roots orthogonal to $SR$, which contains all the imaginary roots, the sum of the imaginary roots is dominant for the subsystem (call it $SI$) (3) in the subsystem of roots orthogonal to both $SR$ and $SI$, the involution corresponding to twisted involution fixes (globally) the dominant chamber of the subsystem (it permutes its simple roots).

Definition at line 109 of file cartanset.h.

Referenced by cayley(), classNumber(), correlateForms(), expand(), and extend().


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