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

atlas::cartanclass::Fiber Class Reference

Describes "the fiber" (over a fixed involution of a torus) in twisted Tits group. More...

#include <cartanclass.h>

Collaboration diagram for atlas::cartanclass::Fiber:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 Fiber (const rootdata::RootDatum &, const latticetypes::LatticeMatrix &)
 Constructs the fiber for the Cartan class determined by the involution |q| of the root datum |rd|.
 ~Fiber ()
 Fiber (const Fiber &)
Fiberoperator= (const Fiber &)
void swap (Fiber &)
const tori::RealTorustorus () const
 Real torus defined over R.
const rootdata::RootSetcomplexRootSet () const
 RootSet flagging the complex roots.
const rootdata::RootSetimaginaryRootSet () const
 RootSet flagging the imaginary roots.
const rootdata::RootSetrealRootSet () const
 RootSet flagging the real roots.
const rootdata::RootListsimpleImaginary () const
 RootList holding the numbers of the simple imaginary roots.
const rootdata::RootNbr simpleImaginary (size_t i) const
size_t imaginaryRank () const
rootdata::RootNbr involution_image_of_root (rootdata::RootNbr j) const
 Action of the Cartan involution on root #j.
const latticetypes::SmallSubquotientadjointFiberGroup () const
 Fiber group for the adjoint group of G.
size_t adjointFiberRank () const
 Dimension of the adjoint fiber group as a Z/2Z vector space.
size_t adjointFiberSize () const
 Cardinality of the adjoint fiber group.
const latticetypes::SmallSubquotientfiberGroup () const
 Fiber group.
size_t fiberRank () const
 Dimension of the fiber group as a Z/2Z vector space.
size_t fiberSize () const
 Cardinality of the fiber group: 2^dimension.
rootdata::RootSet compactRoots (AdjointFiberElt x) const
 Returns the compact imaginary roots for element #x in the adjoint fiber.
rootdata::RootSet noncompactRoots (AdjointFiberElt x) const
 Returns the noncompact imaginary roots for elt #x in the adjoint fiber (whose bitset is interpreted as an element of the subquotient in |d_adjointFiberGroup|).
gradings::Grading grading (AdjointFiberElt x) const
 Flags in gr the noncompact simple imaginary roots for element #x in the adjoint fiber.
AdjointFiberElt gradingRep (const gradings::Grading &) const
 Returns an element |x| of the adjoint fiber group such that |grading(x)==gr| (if it exists, it is unique).
const latticetypes::LatticeMatrixinvolution () const
 Returns the matrix of the involution on the weight lattice of the Cartan subgroup.
latticetypes::SmallBitVector mAlpha (const rootdata::Root &) const
 Returns the fiber group element $m_\alpha$ corresponding to |cr|.
size_t minusRank () const
 Returns the dimension of the -1 eigenspace of the involution.
size_t numRealForms () const
 Number of weak real forms containing this Cartan.
size_t plusRank () const
 Returns the dimension of the +1 eigenspace of the involution.
const partition::PartitionrealFormPartition () const
 Partition of the weak real forms according to the corresponding central square classes in Z(G)/[(1+delta)Z(G)].
square_class central_square_class (adjoint_fiber_orbit wrf) const
 Returns the central square class to which a weak real form belongs.
AdjointFiberElt class_base (square_class c) const
 Returns the base element for a central square class.
const partition::PartitionstrongReal (square_class j) const
 Partitions of Fiber group cosets corresponding to the possible square classes in Z^delta/[(1+delta)Z].
const StrongRealFormRepstrongRepresentative (adjoint_fiber_orbit wrf) const
 Representative strong real form for real form #rf.
AdjointFiberElt toAdjoint (FiberElt) const
 Returns the image of x in the adjoint fiber group.
adjoint_fiber_orbit toWeakReal (fiber_orbit c, square_class csc) const
 Returns the class number in the weak real form partition of the strong real form #c in central square class #csc.
const partition::PartitionweakReal () const
 Partition of the weak real forms according to the corresponding classes in Z(G)^delta/[(1+delta)Z(G)].

Private Member Functions

latticetypes::SmallSubquotient makeFiberGroup () const
 returns the group that acts 1-transitively on each subset of the fiber with fixed central square.
latticetypes::SmallSubquotient makeAdjointFiberGroup (const rootdata::RootDatum &) const
 Makes the group that acts 1-transitively on the adjoint fiber.
latticetypes::SmallSubspace gradingGroup (const rootdata::RootDatum &) const
 Makes the stabilizer of the grading in the adjoint fiber group.
latticetypes::LatticeMatrix adjointInvolution (const rootdata::RootDatum &) const
 Returns the matrix of the transformation induced by negative of our involution on the cocharacter lattice for the adjoint group, expressed on the simple coweight basis, which is dual to the simple root basis.
gradings::Grading makeBaseGrading (rootdata::RootSet &flagged_roots, const rootdata::RootDatum &) const
 Returns the base grading (all ones) on simple imaginary roots, while flagging all noncompact imaginary roots in |flagged_roots|.
gradings::GradingList makeGradingShifts (rootdata::RootSetList &all_shifts, const rootdata::RootDatum &) const
 Computes, for each basis vector of the adjoint fiber group, the grading shifts for simple imaginary roots, and also sets |all_shifts| to flag the grading of the full set of imaginary roots.
bitset::RankFlagsList adjointMAlphas (const rootdata::RootDatum &) const
 Constructs the $m_\alpha$s (images of coroots) in the adjoint fiber group, for $\alpha$ simple imaginary.
bitset::RankFlagsList mAlphas (const rootdata::RootDatum &) const
 Constructs the $m_\alpha$s (images of coroots) in the fiber group, for $\alpha$ simple imaginary.
latticetypes::BinaryMap makeFiberMap (const rootdata::RootDatum &) const
 Computes the toAdjoint matrix.
partition::Partition makeWeakReal (const rootdata::RootDatum &) const
 Computes the partition of the adjoint fiber, whose parts correspond to the weak real forms.
partition::Partition makeRealFormPartition () const
 Computes the partition of the weak real forms according to central square classes.
std::vector< partition::PartitionmakeStrongReal (const rootdata::RootDatum &rd) const
 Computes the strong real form partitions.
std::vector< StrongRealFormRepmakeStrongRepresentatives () const

Private Attributes

tori::RealTorusd_torus
 Pointer to a torus defined over R.
InvolutionData d_involutionData
latticetypes::SmallSubquotient d_fiberGroup
 Fiber group.
latticetypes::SmallSubquotient d_adjointFiberGroup
 Fiber group for the adjoint group of G.
rootdata::RootSet d_baseNoncompact
 Flags the noncompact imaginary roots for the base grading among all the roots.
gradings::Grading d_baseGrading
 Grading with all simple imaginary roots noncompact.
rootdata::RootSetList d_noncompactShift
 RootSet #j flags the imaginary roots whose grading is changed by canonical basis vector #j of the adjoint fiber group.
gradings::GradingList d_gradingShift
 Grading #j flags the simple imaginary roots whose grading is changed by canonical basis vector #j in the adjoint fiber group.
latticetypes::BinaryMap d_toAdjoint
 Matrix (over Z/2Z) of the map from the fiber group F for G to the fiber group F_ad for G_ad.
partition::Partition d_weakReal
 Partition of the adjoint fiber group according to weak real forms.
partition::Partition d_realFormPartition
 Partition of the weak real forms according to the corresponding classes in Z(G)^delta/[(1+delta)Z(G)].
std::vector< partition::Partitiond_strongReal
 Partitions of Fiber group cosets corresponding to the possible square classes in Z^delta/[(1+delta)Z].
std::vector< StrongRealFormRepd_strongRealFormReps
 Representative strong real form for each weak real form.

Detailed Description

Describes "the fiber" (over a fixed involution of a torus) in twisted Tits group.

This is an important but somewhat subtle class. In fact none of the data stored directly describes the mentioned fiber, nor is it relevant here where the "elements of the fiber" really live. There is a "fiber group" (which is a vector space over $Z/2Z$) that acts simply transitively on the fiber, in other words, the fiber is an affine space over $Z/2Z$ with the fiber group as space of translations. After a choice of a base point, the fiber itself can be identified which this fiber group. The way a fiber element manifests itself is via a grading it defines on the imaginary roots; this grading is determined for the entire fiber by giving the "base grading" for the base point, and the "grading shifts" for translations by each of a set of generators of the grading group.

We fix an involutive automorphism tau of the complex torus H, and consider the collection of all strong real forms x of G (which are elements of G semidirect delta) that induce tau on H, modulo the conjugation action of H on the collection. Such a strong real form has square equal to some element z in Z(G)^delta. Changing the element z by (1+delta)Z is innocuous, and there are finitely many possibilities for Z^delta/[(1+delta)Z]. For each fixed value of z, this collection of strong real form representatives in $G.\delta$ (modulo H conjugation) has a simply transitive action (left multiplication) of the fiber group H^{-tau}/(1-tau)H, the component group of the complex group H^{-tau} of fixed points of -tau. The fiber group is a Z/2Z vector space that can be realized as a subquotient of the group H(2) of elements of order 2 (or 1) in H.

Equivalence classes of strong real forms (still with a fixed value of z) give a partition of the fiber group (depending on z). These partitions are stored in d_strongReal, and accessed by the function strongReal.

An equivalence class of strong real forms may be labelled by a pair of integers: the second labelling the element z (or rather its coset modulo [(1+delta)Z]), and the first the equivalence class in the fiber group.

Definition at line 119 of file cartanclass.h.


Constructor & Destructor Documentation

atlas::cartanclass::Fiber::Fiber const rootdata::RootDatum rd,
const latticetypes::LatticeMatrix q
 

Constructs the fiber for the Cartan class determined by the involution |q| of the root datum |rd|.

Definition at line 200 of file cartanclass.cpp.

References gradingGroup(), and atlas::latticetypes::LatticeMatrix.

Referenced by operator=().

atlas::cartanclass::Fiber::~Fiber  ) 
 

Definition at line 240 of file cartanclass.cpp.

Referenced by operator=().

atlas::cartanclass::Fiber::Fiber const Fiber  ) 
 

Definition at line 248 of file cartanclass.cpp.


Member Function Documentation

const latticetypes::SmallSubquotient& atlas::cartanclass::Fiber::adjointFiberGroup  )  const [inline]
 

Fiber group for the adjoint group of G.

Writing H_ad for the complex torus in G_ad, and still writing tau for the Cartan involution, this is F_ad=H_ad^{-tau}/(1-tau)H_ad. The adjoint covering G-->G_ad defines a natural map F-->F_ad, but this map may be neither injective nor surjective.

The adjoint fiber is computed from the action of tau on the adjoint lattice of one-parameter subgroups Y_ad just as the fiber group is computed. The lattice Y_ad has as basis the fundamental coweights.

Definition at line 374 of file cartanclass.h.

References atlas::latticetypes::SmallSubquotient.

size_t atlas::cartanclass::Fiber::adjointFiberRank  )  const [inline]
 

Dimension of the adjoint fiber group as a Z/2Z vector space.

Definition at line 381 of file cartanclass.h.

References atlas::subquotient::Subquotient< dim >::dimension().

Referenced by grading(), atlas::cartanset::makeRepresentative(), makeStrongRepresentatives(), noncompactRoots(), and toAdjoint().

size_t atlas::cartanclass::Fiber::adjointFiberSize  )  const [inline]
 

Cardinality of the adjoint fiber group.

Definition at line 388 of file cartanclass.h.

References atlas::subquotient::Subquotient< dim >::size().

Referenced by makeWeakReal(), and atlas::cartanclass::specialGrading().

latticetypes::LatticeMatrix atlas::cartanclass::Fiber::adjointInvolution const rootdata::RootDatum rd  )  const [private]
 

Returns the matrix of the transformation induced by negative of our involution on the cocharacter lattice for the adjoint group, expressed on the simple coweight basis, which is dual to the simple root basis.

So we first transform the involution to one on the root basis, and then take the negative transpose.

Definition at line 330 of file cartanclass.cpp.

References atlas::latticetypes::LatticeMatrix, and atlas::matrix::Matrix< C >::negative_transposed().

bitset::RankFlagsList atlas::cartanclass::Fiber::adjointMAlphas const rootdata::RootDatum rd  )  const [private]
 

Constructs the $m_\alpha$s (images of coroots) in the adjoint fiber group, for $\alpha$ simple imaginary.

The number of bits of each $m_\alpha$ is |d_adjointFiberGroup.dimension()|

Algorithm: the cocharacter lattice for the adjoint group is spanned by the simple coweights. To get the coordinates of an element in that basis (which is dual to that of the simple roots), it is enough to pair it with the simple roots. The resulting element for the coroot of a simple imaginary $\alpha$ is automatically $\tau$-invariant, since $\alpha$ is, so its reduction modulo 2 lies in $V_+$ (for the cocharacter lattice). Then what is left to do is to convert to the basis of the adjoint fiber group, which amounts to reducing modulo $V_-$.

Definition at line 553 of file cartanclass.cpp.

References atlas::rootdata::RootDatum::coroot(), d_adjointFiberGroup, imaginaryRank(), atlas::rootdata::RootDatum::semisimpleRank(), simpleImaginary(), atlas::rootdata::RootDatum::simpleRoot(), atlas::latticetypes::SmallBitVector, and atlas::subquotient::Subquotient< dim >::toBasis().

Referenced by makeWeakReal().

square_class atlas::cartanclass::Fiber::central_square_class adjoint_fiber_orbit  wrf  )  const [inline]
 

Returns the central square class to which a weak real form belongs.

Definition at line 462 of file cartanclass.h.

References atlas::cartanclass::square_class.

Referenced by atlas::cartanset::CartanClassSet::dualFiberSize(), atlas::cartanset::CartanClassSet::fiberSize(), atlas::kgb::KGBHelp::KGBHelp(), makeStrongRepresentatives(), and atlas::kgb::KGBHelp::naive_seed().

AdjointFiberElt atlas::cartanclass::Fiber::class_base square_class  c  )  const [inline]
 

Returns the base element for a central square class.

Definition at line 470 of file cartanclass.h.

References atlas::cartanclass::AdjointFiberElt, and atlas::partition::Partition::classRep().

Referenced by makeStrongRepresentatives(), atlas::kgb::square_class_grading_offset(), and toWeakReal().

rootdata::RootSet atlas::cartanclass::Fiber::compactRoots AdjointFiberElt  x  )  const
 

Returns the compact imaginary roots for element #x in the adjoint fiber.

Definition at line 843 of file cartanclass.cpp.

References atlas::bitmap::BitMap::andnot(), imaginaryRootSet(), noncompactRoots(), and atlas::rootdata::RootSet.

Referenced by atlas::cartanclass::compactTwoRho(), and atlas::realweyl::RealWeyl::RealWeyl().

const rootdata::RootSet& atlas::cartanclass::Fiber::complexRootSet  )  const [inline]
 

RootSet flagging the complex roots.

That is, a bitmap whose set bits are those corresponding to the numbers (within the list of roots in RootDatum) of the complex roots (those roots alpha with tau(alpha) equal neither to alpha nor to -alpha).

Definition at line 310 of file cartanclass.h.

References atlas::cartanclass::InvolutionData::complex_roots(), and atlas::rootdata::RootSet.

const latticetypes::SmallSubquotient& atlas::cartanclass::Fiber::fiberGroup  )  const [inline]
 

Fiber group.

Definition at line 396 of file cartanclass.h.

References atlas::latticetypes::SmallSubquotient.

Referenced by atlas::kgb::KGBHelp::backtrack_seed(), and atlas::kgb::KGBHelp::naive_seed().

size_t atlas::cartanclass::Fiber::fiberRank  )  const [inline]
 

Dimension of the fiber group as a Z/2Z vector space.

Definition at line 403 of file cartanclass.h.

References atlas::subquotient::Subquotient< dim >::dimension().

Referenced by atlas::kgb::KGBHelp::backtrack_seed(), gradingRep(), makeStrongRepresentatives(), atlas::kgb::KGBHelp::naive_seed(), atlas::cartan_io::printCartanClass(), atlas::rGenerators(), and toAdjoint().

size_t atlas::cartanclass::Fiber::fiberSize  )  const [inline]
 

Cardinality of the fiber group: 2^dimension.

Definition at line 410 of file cartanclass.h.

References atlas::subquotient::Subquotient< dim >::size().

Referenced by atlas::cartan_io::printCartanClass().

gradings::Grading atlas::cartanclass::Fiber::grading AdjointFiberElt  x  )  const
 

Flags in gr the noncompact simple imaginary roots for element #x in the adjoint fiber.

Precondition: |x| represents an element of the subquotient in |d_adjointFiberGroup|.

Definition at line 857 of file cartanclass.cpp.

References adjointFiberRank(), atlas::bitvector::combination(), d_gradingShift, atlas::gradings::Grading, and atlas::bitset::RankFlags.

Referenced by atlas::cartanset::CartanClassSet::correlateDualForms(), atlas::cartanset::CartanClassSet::correlateForms(), atlas::kgb::KGBHelp::grading_seed(), atlas::cartanclass::CartanClass::isMostSplit(), and atlas::cartan_io::printGradings().

latticetypes::SmallSubspace atlas::cartanclass::Fiber::gradingGroup const rootdata::RootDatum rd  )  const [private]
 

Makes the stabilizer of the grading in the adjoint fiber group.

Explanation: each real form defines a grading of the imaginary root system, obtained by pairing with the simple imaginary roots. It should be the case that the grading entirely defines the real form, i.e., the corresponding W_i-orbit. However, this doesn't mean that the map from real form parameters to gradings has to be injective. It could a priori be the case that some real form parameters in the same W_i-orbit give identical gradings of the imaginary root system; this would mean that the nonzero adjoint fiber element that transforms one into the other gives a null pairing with every imaginary root. It seems that this never happens, whence the constructor for |Fiber| just calls this function to |assert| that the result is trivial.

Definition at line 379 of file cartanclass.cpp.

References atlas::latticetypes::BinaryMap, atlas::bitvector::BitMatrix< dim >::kernel(), atlas::latticetypes::scalarProduct(), atlas::bitvector::BitVector< dim >::set(), atlas::latticetypes::SmallBitVector, atlas::latticetypes::SmallBitVectorList, atlas::latticetypes::SmallSubspace, and atlas::subquotient::Subquotient< dim >::space().

Referenced by Fiber().

AdjointFiberElt atlas::cartanclass::Fiber::gradingRep const gradings::Grading gr  )  const
 

Returns an element |x| of the adjoint fiber group such that |grading(x)==gr| (if it exists, it is unique).

Algorithm: the grading must be reached from the base grading (with all ones) by adding a linear combination of grading shifts. So we set up and solve the system asking for the appropriate linear combination of grading shifts.

Definition at line 875 of file cartanclass.cpp.

References atlas::cartanclass::AdjointFiberElt, d_baseGrading, d_gradingShift, fiberRank(), atlas::bitvector::firstSolution(), atlas::gradings::Grading, imaginaryRank(), atlas::bitset::RankFlags, atlas::latticetypes::SmallBitVector, atlas::latticetypes::SmallBitVectorList, and atlas::bitset::BitSet< n >::to_ulong().

size_t atlas::cartanclass::Fiber::imaginaryRank  )  const [inline]
 

Definition at line 351 of file cartanclass.h.

Referenced by adjointMAlphas(), atlas::kgb::KGBHelp::grading_seed(), gradingRep(), makeWeakReal(), and mAlphas().

const rootdata::RootSet& atlas::cartanclass::Fiber::imaginaryRootSet  )  const [inline]
 

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 alpha with tau(alpha)=alpha).

Definition at line 321 of file cartanclass.h.

References atlas::cartanclass::InvolutionData::imaginary_roots(), and atlas::rootdata::RootSet.

Referenced by compactRoots(), atlas::cartanset::CartanClassSet::correlateDualForms(), atlas::cartanset::CartanClassSet::correlateForms(), atlas::cartanclass::CartanClass::imaginaryRootSet(), and atlas::cartanclass::toMostSplit().

const latticetypes::LatticeMatrix & atlas::cartanclass::Fiber::involution  )  const
 

Returns the matrix of the involution on the weight lattice of the Cartan subgroup.

NOTE: this is not inlined to avoid a dependency upon tori.h in the .h file.

Definition at line 898 of file cartanclass.cpp.

References d_torus, atlas::tori::RealTorus::involution(), and atlas::latticetypes::LatticeMatrix.

Referenced by atlas::cartanset::CartanClassSet::correlateDualForms(), atlas::cartanset::CartanClassSet::distinguished(), atlas::cartanset::CartanClassSet::dualDistinguished(), atlas::cartanclass::CartanClass::involution(), and makeFiberGroup().

rootdata::RootNbr atlas::cartanclass::Fiber::involution_image_of_root rootdata::RootNbr  j  )  const [inline]
 

Action of the Cartan involution on root #j.

Definition at line 358 of file cartanclass.h.

References atlas::cartanclass::InvolutionData::root_involution().

Referenced by atlas::cartanclass::CartanClass::involution_image_of_root().

latticetypes::SmallSubquotient atlas::cartanclass::Fiber::makeAdjointFiberGroup const rootdata::RootDatum rd  )  const [private]
 

Makes the group that acts 1-transitively on the adjoint fiber.

Algorithm: this is the subquotient $V_+ + V_-/V_+$ for the negative transpose of the involution induced by $\tau$ on the root lattice (which is computed by |adjointInvolution|).

Definition at line 353 of file cartanclass.cpp.

References atlas::tori::dualPi0(), atlas::subquotient::Subquotient< dim >::rank(), and atlas::latticetypes::SmallSubquotient.

gradings::Grading atlas::cartanclass::Fiber::makeBaseGrading rootdata::RootSet flagged_roots,
const rootdata::RootDatum rd
const [private]
 

Returns the base grading (all ones) on simple imaginary roots, while flagging all noncompact imaginary roots in |flagged_roots|.

Algorithm: for the noncompact roots, express imaginary roots in terms of the simple ones, and see if the sum of coordinates is even.

Definition at line 427 of file cartanclass.cpp.

References atlas::gradings::Grading, atlas::rootdata::RootSet, and atlas::bitvector::BitMatrix< dim >::set_mod2().

latticetypes::SmallSubquotient atlas::cartanclass::Fiber::makeFiberGroup  )  const [private]
 

returns the group that acts 1-transitively on each subset of the fiber with fixed central square.

Explanation: the value returned is the subquotient $V_+ + V_-/V_+$ as constructed by |toridualPi0|, but for the negative transpose of our involution. Note that only the involution is used, not the root datum.

Definition at line 312 of file cartanclass.cpp.

References atlas::tori::dualPi0(), involution(), and atlas::latticetypes::SmallSubquotient.

latticetypes::BinaryMap atlas::cartanclass::Fiber::makeFiberMap const rootdata::RootDatum rd  )  const [private]
 

Computes the toAdjoint matrix.

Explanation: this is the matrix of the natural map from the fiber group to the adjoint fiber group. Such a map exists because (1) the root lattice is a sublattice of the weight lattice, so there is a restriction map from the coweight lattice $X^*$ (dual to the weight lattice) to the lattice $Y^*$ spanned by the fundamental coweights (dual to the root lattice), and (2) this map sends $X^*_+$ to $Y^*_+$ and $X^*_-$ to $Y^*_-$ and of course $2X^*$ to $2Y^*$, so it induces a map on the respective subquotients of the form $(V_+ + V_-)/V_-$, where $V_+$ is the modulo $2X^*$ image of $X^*_+$ (or similarly for $Y^*_-$). While the map $X^* Y^*$ is injective (only) in the semisimple case, little can be said about the induced map.

The above argument shows that the vector |v| computed below of scalar products of a generator of the fiber group with simple roots can be validly incorporated (by calling |d_adjointFiberGroup.toBasis|) into the adjoint fiber group; notably, it represents an element of $V_+ + V_-$ in $Y^* / 2Y^*$. (without space that formula would have ended our comment!)

Definition at line 593 of file cartanclass.cpp.

References atlas::bitset::BitSet< n >::begin(), atlas::rootdata::RootDatum::beginSimpleRoot(), atlas::latticetypes::BinaryMap, d_adjointFiberGroup, d_fiberGroup, atlas::subquotient::Subquotient< dim >::dimension(), atlas::rootdata::RootDatum::endSimpleRoot(), atlas::bitset::RankFlags, atlas::rootdata::RootDatum::semisimpleRank(), atlas::bitvector::BitVector< dim >::set(), atlas::latticetypes::SmallBitVector, atlas::latticetypes::SmallBitVectorList, atlas::subquotient::Subquotient< dim >::space(), atlas::subquotient::Subquotient< dim >::support(), and atlas::subquotient::Subquotient< dim >::toBasis().

gradings::GradingList atlas::cartanclass::Fiber::makeGradingShifts rootdata::RootSetList all_shifts,
const rootdata::RootDatum rd
const [private]
 

Computes, for each basis vector of the adjoint fiber group, the grading shifts for simple imaginary roots, and also sets |all_shifts| to flag the grading of the full set of imaginary roots.

Explanation: component |j| of the result contains the grading on the set of simple imaginary roots given by the canonical basis vector |j| of the adjoint fiber group. This is not the grading of a real form, but the amount by which the grading changes by the action of that basis vector, whence the name grading shift. Similarly, |all_shifts[j]| is set to contain the action on all imaginary roots. With these data and the "base" grading corresponding to the real form parameter numbered $0$, it is easy to compute the grading for an arbitrary real form parameter (as represented by the element of the adjoint fiber group moving the base element there).

Algorithm: the basis for the adjoint fiber group is expressed in the reduction modulo 2 of the simple coweight basis. Therefore, in order to apply to a root, it is enough to express that root in the simple root basis, and do the scalar product mod 2. Note that in contrast to |makeBaseGrading| above, and in spite of the reuse of the same names, we express in the (full) simple root basis here, not on the simple imaginary root basis.

Definition at line 471 of file cartanclass.cpp.

References atlas::bitset::BitSet< n >::begin(), atlas::gradings::Grading, atlas::bitset::RankFlags, atlas::rootdata::RootSet, atlas::latticetypes::scalarProduct(), atlas::bitset::BitSet< n >::set(), and atlas::latticetypes::SmallBitVectorList.

partition::Partition atlas::cartanclass::Fiber::makeRealFormPartition  )  const [private]
 

Computes the partition of the weak real forms according to central square classes.

Explanation: while weak real forms correspond to orbits in the adjoint fiber, they can be grouped into even coarser "central square classes", defined by the condition that the corresponding orbits belong to the same coset in the adjoint fiber (group) by the image (under |toAdjoint|) of the fiber group. The imaginary Weyl group $W_{im}$ acts on both the fiber group and the adjoint fiber group, and |toAdjoint| intertwines these actions, so that an orbit defining a weak real form is always contained in a single coset of the image of |toAdjoint|; therefore we really have a partition of the set of weak real forms. Its parts are called central square classes, since for these weak real forms any $x=g.\delta\in G.\delta$ whose $H$-conjugacy class defines a fiber element in a strong real form lying over the weak real form gives the same value of $x^2\in Z(G)$ modulo $(1+\delta)(Z(G))$. From the above it follows there are $2^m$ central square classes where $m=adjointFiberRank-rank(toAdjoint)$.

Algorithm: we compute the quotient of the adjoint fiber group by the fiber group as a |Subquotient| object whose |space()| is the whole adjoint fiber group. Its |toBasis| method will map each weak real form to a vector on the basis of the (sub)quotient whose |to_ulong()| value will be used to characterise the central square class. Since we want to preserve this numbering when construting the resulting partition (rather than reordering by smallest element), we call the constructor with a |tags::UnnormalizedTag| argument.

Definition at line 669 of file cartanclass.cpp.

References atlas::partition::Partition::classCount(), atlas::partition::Partition::classRep(), d_adjointFiberGroup, d_toAdjoint, d_weakReal, atlas::subquotient::Subquotient< dim >::dimension(), atlas::bitvector::BitMatrix< dim >::image(), atlas::matrix::initBasis(), numRealForms(), atlas::bitset::RankFlags, atlas::partition::Partition::size(), atlas::latticetypes::SmallBitVector, atlas::latticetypes::SmallBitVectorList, and atlas::latticetypes::SmallSubquotient.

std::vector< partition::Partition > atlas::cartanclass::Fiber::makeStrongReal const rootdata::RootDatum rd  )  const [private]
 

Computes the strong real form partitions.

In the software, strong real forms are represented by orbits of "fiber elements" under the imaginary Weyl group, where the fiber elements live in a union of affine spaces over $Z/2Z$, one for each central square class. Each of these affine spaces has the fiber group as associated vector space, but the action of the imaginary Weyl group is different for each one. Therefore there is a separate partition of the fiber group for each central square class of weak real forms (as determined by |makeRealFormPartition|). The function |makeStrongReal| computes all of these partitions.

Method: We traverse the central square classes of |d_realFormPartition|; for each class we choose a weak real form |rf| in it, which itself labels an orbit on the adjoint fiber, and then choose a point |y| in that orbit. Altogether, the values of |y| are just coset representatives of the image of the |toAdjoint| map in the adjoint fiber group. The affine space of fiber elements for this class of strong real forms will map to that coset by a map the sends the base point (the one represented by the number $0$) to |y|, and which induces the linear map |toAdjoint| on the associated vector spaces. It follows that we must associate to the base point the same grading as to |y|, and this determines the action of the imaginary Weyl group on this affine space of fiber elements (together with the fact that the grading shift for any vector $v$ in the fiber group is to one associated to $toAdjoint(v)$). The orbits of this action then define the strong real form partition associated to this central square class.

The grading defined by |y| is {not} independent of the choices of |rf| and |y|. However, if $y'$ is another possibility for |y|, then by construction there is an element $d$ of the fiber group such that $y'=y+toAdjoint[d]$, and the partitions defined by the gradings of $y$ and $y'$ will differ by translation in the fiber group over |d|, in other words they correspond to another choice of a base point in the affine space.

Definition at line 736 of file cartanclass.cpp.

References atlas::bitvector::combination(), atlas::gradings::Grading, atlas::partition::makeOrbits(), and atlas::cartanclass::square_class.

std::vector< StrongRealFormRep > atlas::cartanclass::Fiber::makeStrongRepresentatives  )  const [private]
 

Definition at line 770 of file cartanclass.cpp.

References adjointFiberRank(), central_square_class(), class_base(), atlas::partition::Partition::classRep(), atlas::bitvector::BitMatrix< dim >::column(), d_toAdjoint, d_weakReal, atlas::cartanclass::FiberElt, fiberRank(), atlas::bitvector::firstSolution(), numRealForms(), RankFlags, atlas::bitset::RankFlags, atlas::latticetypes::SmallBitVector, and atlas::latticetypes::SmallBitVectorList.

partition::Partition atlas::cartanclass::Fiber::makeWeakReal const rootdata::RootDatum rd  )  const [private]
 

Computes the partition of the adjoint fiber, whose parts correspond to the weak real forms.

Algorithm: we construct the FiberAction object corresponding to the action of the imaginary Weyl group on the adjoint fiber, and then call |makeOrbits| to make the partition. For the fiber action we can use the base grading and the grading shifts "as is", while the fiber group elements $m_\alpha$ are computed by |adjointMAlpha|.

Definition at line 628 of file cartanclass.cpp.

References adjointFiberSize(), adjointMAlphas(), d_baseGrading, d_gradingShift, imaginaryRank(), and atlas::partition::makeOrbits().

latticetypes::SmallBitVector atlas::cartanclass::Fiber::mAlpha const rootdata::Root cr  )  const
 

Returns the fiber group element $m_\alpha$ corresponding to |cr|.

Precondition: |cr| a weight vector for an imaginary coroot $\alpha^\vee$ for this Cartan.

Definition at line 909 of file cartanclass.cpp.

References d_fiberGroup, atlas::latticetypes::SmallBitVector, and atlas::subquotient::Subquotient< dim >::toBasis().

Referenced by atlas::rGenerators().

bitset::RankFlagsList atlas::cartanclass::Fiber::mAlphas const rootdata::RootDatum rd  )  const [private]
 

Constructs the $m_\alpha$s (images of coroots) in the fiber group, for $\alpha$ simple imaginary.

The effective number of bits of each $m_\alpha$ is |d_fiberGroup.dimension()|

We take the coroots corresponding to the imaginary simple roots, which in the root datum are already expressed in the basis of the coweight lattice $X^*$ dual to the weight lattice; we reduce the coordinates modulo 2 (this is hidden in the call of |toBasis|, which converts its argument to a |SmallBitVector| first), and interpret the result in the subquotient |d_fiberGroup| of $X^* / 2X^*$.

Definition at line 527 of file cartanclass.cpp.

References atlas::rootdata::RootDatum::coroot(), d_fiberGroup, imaginaryRank(), simpleImaginary(), and atlas::subquotient::Subquotient< dim >::toBasis().

size_t atlas::cartanclass::Fiber::minusRank  )  const
 

Returns the dimension of the -1 eigenspace of the involution.

NOTE: this is not inlined to avoid a dependency upon tori.h in the .h file.

Definition at line 926 of file cartanclass.cpp.

References d_torus, and atlas::tori::RealTorus::minusRank().

rootdata::RootSet atlas::cartanclass::Fiber::noncompactRoots AdjointFiberElt  x  )  const
 

Returns the noncompact imaginary roots for elt #x in the adjoint fiber (whose bitset is interpreted as an element of the subquotient in |d_adjointFiberGroup|).

Definition at line 828 of file cartanclass.cpp.

References adjointFiberRank(), d_noncompactShift, atlas::bitset::RankFlags, and atlas::rootdata::RootSet.

Referenced by compactRoots(), atlas::cartanset::makeRepresentative(), atlas::cartanset::CartanClassSet::noncompactPosRootSet(), atlas::cartanset::CartanClassSet::noncompactRoots(), atlas::orthogonalMAlpha(), atlas::cartanclass::specialGrading(), atlas::kgb::square_class_grading_offset(), and atlas::cartanclass::toMostSplit().

size_t atlas::cartanclass::Fiber::numRealForms  )  const [inline]
 

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 442 of file cartanclass.h.

References atlas::partition::Partition::classCount().

Referenced by atlas::cartanset::CartanClassSet::correlateDualForms(), atlas::cartanset::CartanClassSet::correlateForms(), makeRealFormPartition(), makeStrongRepresentatives(), atlas::cartanset::CartanClassSet::numDualRealForms(), atlas::cartanclass::CartanClass::numDualRealForms(), atlas::cartanset::CartanClassSet::numRealForms(), and atlas::cartanclass::CartanClass::numRealForms().

Fiber & atlas::cartanclass::Fiber::operator= const Fiber other  ) 
 

Synopsis: assignment operator.

Use copy constructor. This requires a check for self-assignment, or the source would be destroyed!

Definition at line 264 of file cartanclass.cpp.

References Fiber(), and ~Fiber().

size_t atlas::cartanclass::Fiber::plusRank  )  const
 

Returns the dimension of the +1 eigenspace of the involution.

NOTE: this is not inlined to avoid a dependency upon tori.h in the .h file.

Definition at line 914 of file cartanclass.cpp.

References d_torus, and atlas::tori::RealTorus::plusRank().

const partition::Partition& atlas::cartanclass::Fiber::realFormPartition  )  const [inline]
 

Partition of the weak real forms according to the corresponding central square classes in Z(G)/[(1+delta)Z(G)].

A weak real form (always containing our fixed real torus) is an orbit of W_i on the adjoint fiber group.

Definition at line 455 of file cartanclass.h.

Referenced by atlas::cartanclass::CartanClass::numRealFormClasses().

const rootdata::RootSet& atlas::cartanclass::Fiber::realRootSet  )  const [inline]
 

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 alpha with tau(alpha)=-alpha).

Definition at line 332 of file cartanclass.h.

References atlas::cartanclass::InvolutionData::real_roots(), and atlas::rootdata::RootSet.

Referenced by atlas::cartanclass::CartanClass::realRootSet().

const rootdata::RootNbr atlas::cartanclass::Fiber::simpleImaginary size_t  i  )  const [inline]
 

Definition at line 347 of file cartanclass.h.

References atlas::cartanclass::InvolutionData::imaginary_basis().

const rootdata::RootList& atlas::cartanclass::Fiber::simpleImaginary  )  const [inline]
 

RootList holding the numbers of the simple imaginary roots.

These are simple for the positive imaginary roots given by the (based) RootDatum. They need not be simple in the entire root system.

Definition at line 344 of file cartanclass.h.

References atlas::cartanclass::InvolutionData::imaginary_basis().

Referenced by adjointMAlphas(), atlas::cartanset::CartanClassSet::correlateDualForms(), atlas::cartanset::CartanClassSet::correlateForms(), atlas::kgb::KGBHelp::grading_seed(), mAlphas(), atlas::cartan_io::printGradings(), atlas::cartanclass::CartanClass::simpleImaginary(), and atlas::cartanclass::CartanClass::simpleReal().

const partition::Partition& atlas::cartanclass::Fiber::strongReal square_class  j  )  const [inline]
 

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 487 of file cartanclass.h.

Referenced by atlas::kgb::KGBHelp::backtrack_seed(), atlas::cartanset::CartanClassSet::dualFiberSize(), atlas::cartanset::CartanClassSet::fiberSize(), and atlas::cartanclass::CartanClass::strongReal().

const StrongRealFormRep& atlas::cartanclass::Fiber::strongRepresentative adjoint_fiber_orbit  wrf  )  const [inline]
 

Representative strong real form for real form #rf.

A StrongRealFormRep is a pair of numbers. The second indexes the value of the square of the strong real form in Z^delta/[(1+delta)Z]. The first indexes a W_im orbit on the corresponding coset of the fiber group.

Definition at line 499 of file cartanclass.h.

References atlas::cartanclass::StrongRealFormRep.

Referenced by atlas::cartanset::CartanClassSet::dualFiberSize(), atlas::cartanset::CartanClassSet::fiberSize(), and atlas::kgb::KGBHelp::naive_seed().

void atlas::cartanclass::Fiber::swap Fiber  ) 
 

Definition at line 283 of file cartanclass.cpp.

References d_adjointFiberGroup, d_baseGrading, d_baseNoncompact, d_fiberGroup, d_gradingShift, d_involutionData, d_noncompactShift, d_realFormPartition, d_strongReal, d_strongRealFormReps, d_toAdjoint, d_torus, d_weakReal, atlas::partition::Partition::swap(), atlas::bitvector::BitMatrix< dim >::swap(), atlas::bitmap::BitMap::swap(), atlas::bitset::BitSet< n >::swap(), atlas::subquotient::Subquotient< dim >::swap(), and atlas::cartanclass::InvolutionData::swap().

Referenced by atlas::cartanclass::CartanClass::swap().

AdjointFiberElt atlas::cartanclass::Fiber::toAdjoint FiberElt   )  const
 

Returns the image of x in the adjoint fiber group.

This map is induced by the inclusion of the root lattice in the character lattice

Definition at line 944 of file cartanclass.cpp.

References atlas::cartanclass::AdjointFiberElt, adjointFiberRank(), atlas::bitvector::BitMatrix< dim >::apply(), d_toAdjoint, atlas::bitvector::BitVector< dim >::data(), fiberRank(), atlas::bitset::RankFlags, atlas::latticetypes::SmallBitVector, and atlas::bitset::BitSet< n >::to_ulong().

Referenced by atlas::cartanclass::CartanClass::toAdjoint(), and toWeakReal().

const tori::RealTorus& atlas::cartanclass::Fiber::torus  )  const [inline]
 

Real torus defined over R.

Represented as the lattice Z^n endowed with an involutive automorphism (represented by its n x n integer matrix).

Definition at line 298 of file cartanclass.h.

Referenced by atlas::cartan_io::printCartanClass().

adjoint_fiber_orbit atlas::cartanclass::Fiber::toWeakReal fiber_orbit  c,
square_class  csc
const
 

Returns the class number in the weak real form partition of the strong real form #c in central square class #csc.

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 |csc| 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 |csc|. The integer c labels an orbit of W_i on this fiber group coset; this orbit is the equivalence class of strong real forms.

This function computes the weak real form (W_i orbit on the adjoint fiber group) corresponding to (c,csc).

First, |csc| also labels a coset of the fiber group image in the adjoint fiber group. The coset |csc| is a union of weak real forms (W_i orbits on the adjoint fiber group). The integer brf indexes the base W_i orbit on csc, and "by" is the base adjoint fiber group element in brf.

The fiber group coset corresponding to csc is labelled by the fiber group itself using a base point with image by. The integer x is a representative in the fiber group of the orbit csc. Its image in the adjoint fiber group is y. Translating y by the base point "by" gives an adjoint fiber group element representing the weak real form we want.

Definition at line 984 of file cartanclass.cpp.

References atlas::cartanclass::adjoint_fiber_orbit, atlas::cartanclass::AdjointFiberElt, class_base(), d_strongReal, d_weakReal, and toAdjoint().

Referenced by atlas::cartanclass::CartanClass::toWeakReal().

const partition::Partition& atlas::cartanclass::Fiber::weakReal  )  const [inline]
 

Partition of the weak real forms according to the corresponding classes in Z(G)^delta/[(1+delta)Z(G)].

Definition at line 521 of file cartanclass.h.

Referenced by atlas::cartanset::CartanClassSet::correlateDualForms(), atlas::cartanset::CartanClassSet::correlateForms(), atlas::cartanset::CartanClassSet::dualRepresentative(), atlas::kgb::KGBHelp::grading_seed(), atlas::cartanclass::CartanClass::isMostSplit(), atlas::cartanset::CartanClassSet::noncompactRoots(), atlas::cartan_io::printFiber(), atlas::cartan_io::printGradings(), atlas::cartanset::CartanClassSet::representative(), atlas::cartanclass::specialGrading(), atlas::cartanclass::toMostSplit(), atlas::cartanset::CartanClassSet::updateStatus(), and atlas::cartanclass::CartanClass::weakReal().


Member Data Documentation

latticetypes::SmallSubquotient atlas::cartanclass::Fiber::d_adjointFiberGroup [private]
 

Fiber group for the adjoint group of G.

Writing H_ad for the complex torus in G_ad, and still writing tau for the Cartan involution, this is F_ad=H_ad^{-tau}/(1-tau)H_ad. The adjoint covering G-->G_ad defines a natural map F-->F_ad, but this map may be neither injective nor surjective.

The adjoint fiber is computed from the action of tau on the adjoint lattice of one-parameter subgroups Y_ad just as the fiber group is computed. The lattice Y_ad has as basis the fundamental coweights.

Definition at line 185 of file cartanclass.h.

Referenced by adjointMAlphas(), makeFiberMap(), makeRealFormPartition(), and swap().

gradings::Grading atlas::cartanclass::Fiber::d_baseGrading [private]
 

Grading with all simple imaginary roots noncompact.

The grading is a RankFlags; that is, a BitSet<RANK_MAX>. It flags the noncompact imaginary roots among the simple imaginary roots; so all the bits up to imaginaryRank are 1.

Definition at line 200 of file cartanclass.h.

Referenced by gradingRep(), makeWeakReal(), and swap().

rootdata::RootSet atlas::cartanclass::Fiber::d_baseNoncompact [private]
 

Flags the noncompact imaginary roots for the base grading among all the roots.

Definition at line 191 of file cartanclass.h.

Referenced by swap().

latticetypes::SmallSubquotient atlas::cartanclass::Fiber::d_fiberGroup [private]
 

Fiber group.

In terms of the complex torus $H$ and the Cartan involution $\tau$, it is equal to $F=H^{-\tau}/(1-\tau)H$: the group of fixed points of $\-tau$, modulo its identity component. Here additive notation is used for multiplicative composition; e.g., $1-\tau$ maps $z\in H$ to $z/\tau(z)$; this notation is natural when $\tau$ is viewed as operating on the weight lattice, in which case $1-\tau$ acts as the identity matrix minus the matrix giving $\tau$.

Recall that the group of real points $H(R)$ is a product of $p$ unit circle groups, $q$ groups $R^$, and $r$ groups $C^$. It is easy to see that $F=(/2)^p$, with one factor $/2$ coming from each circle.

The fiber group is represented as a subquotient of the group $H(2)$ of elements of order 2 (or 1) in the torus. Write $Y$ for the lattice of coweights of $H$; then one has natural isomorphisms $H(2)=(1/2)Y/Y=Y/2Y$. The Cartan involution $\tau$ is always represented by the matrix $q$ of its action on the character lattice $X$, which is dual to $Y$; so its action on $Y$ is given by the matrix $q^t$. The action of $-\tau$ on $Y$ is given by $-q^t$.

Because $H$ is the product (not direct) of the connected groups $(H^\tau)_0$ and $(H^{-\tau})_0$, the group $H^\tau$ meets every component of $H^{-tau}$. The intersection of $H^\tau$ and $H^{-\tau}$ consists of $H(2)^\tau$, the $\tau$-fixed elements of order 2. It follows that the component group $F$ may be identified with $H(2)^\tau/(H(2)\cap (1-\tau)H)$. Thus $F$ can be represented by a subquotient of $H(2)=Y/2Y=(Z/2Z)^n$.

The larger group $H(2)^\tau$ is computed as the kernel of the action of $(1+\tau)$ on $H(2)$, which via the isomorphism $H(2)=(Z/2Z)^n$ means the kernel of the reduction mod 2 of the matrix $I+q^t$. The smaller group $H(2)\cap (1-\tau)H$ consists of the elements of order 2 in the connected group $(H^{-\tau})_0$. It is computed as the reduction mod 2 of the $-1$ eigenlattice $Y^{-\tau}$ (the latter is the lattice of coweights of $(H^{-tau})_0$).

Definition at line 171 of file cartanclass.h.

Referenced by makeFiberMap(), mAlpha(), mAlphas(), and swap().

gradings::GradingList atlas::cartanclass::Fiber::d_gradingShift [private]
 

Grading #j flags the simple imaginary roots whose grading is changed by canonical basis vector #j in the adjoint fiber group.

Definition at line 213 of file cartanclass.h.

Referenced by grading(), gradingRep(), makeWeakReal(), and swap().

InvolutionData atlas::cartanclass::Fiber::d_involutionData [private]
 

Definition at line 131 of file cartanclass.h.

Referenced by swap().

rootdata::RootSetList atlas::cartanclass::Fiber::d_noncompactShift [private]
 

RootSet #j flags the imaginary roots whose grading is changed by canonical basis vector #j of the adjoint fiber group.

Definition at line 206 of file cartanclass.h.

Referenced by noncompactRoots(), and swap().

partition::Partition atlas::cartanclass::Fiber::d_realFormPartition [private]
 

Partition of the weak real forms according to the corresponding classes in Z(G)^delta/[(1+delta)Z(G)].

Constructed by the function realFormPartition in the Helper class of the unnamed namespace of cartanclass.cpp; details in that documentation.

Definition at line 247 of file cartanclass.h.

Referenced by swap().

std::vector<partition::Partition> atlas::cartanclass::Fiber::d_strongReal [private]
 

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 partitions into orbits are described by the c partitions in d_strongReal.

Definition at line 261 of file cartanclass.h.

Referenced by swap(), and toWeakReal().

std::vector<StrongRealFormRep> atlas::cartanclass::Fiber::d_strongRealFormReps [private]
 

Representative strong real form for each weak real form.

A StrongRealFormRep is a pair of numbers. The second indexes the value of the square of the strong real form in Z^delta/[(1+delta)Z]. The first indexes a W_im orbit on the corresponding coset of the fiber group.

Definition at line 271 of file cartanclass.h.

Referenced by swap().

latticetypes::BinaryMap atlas::cartanclass::Fiber::d_toAdjoint [private]
 

Matrix (over Z/2Z) of the map from the fiber group F for G to the fiber group F_ad for G_ad.

Although the map is induced by Y/2Y-->Y_ad/2Y_ad, whose matrix is the reduction mod 2 of the matrix of Y-->Y_ad, that is _not_ the matrix in d_toAdjoint, which must take into account the subquotients at both sides. Each subquotient F and F_ad is equipped (by the row reduction algorithms in Subquotient) with a distinguished basis, and what is recorded in d_toAdjoint is the (dim F_ad) x (dim F) matrix with respect to those bases.

Definition at line 226 of file cartanclass.h.

Referenced by makeRealFormPartition(), makeStrongRepresentatives(), swap(), and toAdjoint().

tori::RealTorus* atlas::cartanclass::Fiber::d_torus [private]
 

Pointer to a torus defined over R.

Represented as the lattice Z^n endowed with an involutive automorphism (represented by its n x n integer matrix).

Definition at line 129 of file cartanclass.h.

Referenced by involution(), minusRank(), plusRank(), and swap().

partition::Partition atlas::cartanclass::Fiber::d_weakReal [private]
 

Partition of the adjoint fiber group according to weak real forms.

The imaginary Weyl group acts on the adjoint fiber group; the partition is by orbits of this action. It is constructed by the function weakReal in the Helper class of the unnamed namespace of cartanclass.cpp.

Definition at line 237 of file cartanclass.h.

Referenced by makeRealFormPartition(), makeStrongRepresentatives(), swap(), and toWeakReal().


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