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

atlas::rootdata Namespace Reference


Classes

struct  atlas::rootdata::RootBasisTag
class  atlas::rootdata::RootDatum
 Based root datum for a complex reductive group. More...
class  atlas::rootdata::RootIterator< I >
 Iterator for traversing a set of roots. More...

Typedefs

typedef unsigned long RootNbr
 Integer representing the location of a root on the list maintained by a RootDatum.
typedef latticetypes::LatticeElt Root
 Type for a root, coroot, character, or cocharacter: an element of the lattice Z^n.
typedef std::vector< RootNbrRootList
 List of _numbers_ of roots, referring to the list of roots in RootDatum.
typedef RootIterator< RootList::const_iterator > WRootIterator
typedef bitmap::BitMap RootSet
 BitMap representing a set of roots (such as the set of positive roots, or noncompact roots).
typedef std::vector< RootSetRootSetList

Functions

void cartanMatrix (latticetypes::LatticeMatrix &c, const RootDatum &rd)
 Puts in c the Cartan matrix of the root datum.
void cartanMatrix (latticetypes::LatticeMatrix &c, const RootList &rb, const RootDatum &rd)
 Puts in c the Cartan matrix of the root basis rb.
void dualBasedInvolution (LT::LatticeMatrix &di, const LT::LatticeMatrix &i, const RootDatum &rd)
 Puts i^vee in di.
LT::LatticeMatrix dualBasedInvolution (const LT::LatticeMatrix &i, const RootDatum &rd)
void lieType (lietype::LieType &lt, const RootList &rb, const RootDatum &rd)
 puts in lt the Lie type of the root system spanned by rb.
void longest (LT::LatticeMatrix &q, const RootDatum &rd)
 Puts in q the matrix of the action of w_0;.
void makeOrthogonal (RootList &orth, const RootList &rl, const RootList &rs, const RootDatum &rd)
 Puts in orth the elements of rs which are orthogonal to all elements of rl.
void reflectionMatrix (LT::LatticeMatrix &qs, RootNbr n, const RootDatum &rd)
 Writes in qs the matrix of the reflection through root #n.
void rootBasis (RootList &rb, const RootList &rl, const RootDatum &rd)
 Puts in rb the canonical basis (set of simple roots) of rl.
void rootBasis (RootList &rb, RootSet rs, const RootDatum &rd)
 puts in rb the canonical basis (set of simple roots) of rs.
void strongOrthogonalize (RootList &rl, const RootDatum &rd)
 Makes rl into a strongly orthogonal system.
bool sumIsRoot (const Weight &a, const Weight &b, const RootDatum &rd)
 Tells if a+b is a root.
void toDistinguished (LatticeMatrix &q, const RootDatum &rd)
 Transforms q into w.q, where w is the unique element such that w.q fixes the positive Weyl chamber.
void toMatrix (LatticeMatrix &q, const weyl::WeylWord &ww, const RootDatum &rd)
 Writes in q the matrix represented by ww.
void toMatrix (LatticeMatrix &q, const RootList &rl, const RootDatum &rd)
 Writes in q the matrix represented by rl (the product of the root reflections for the various roots in rl.).
void toPositive (weyl::WeylWord &ww, const Weight &d_v, const RootDatum &rd)
 Puts in ww a list of simple reflections constituting a reduced expression of the unique shortest element w in the Weyl group such that w.v is in the positive chamber.
void toWeylWord (weyl::WeylWord &ww, RootNbr rn, const RootDatum &rd)
 Writes in ww the expression of the reflection about root #rn as a product of simple reflections.
void cartanMatrix (LT::LatticeMatrix &, const RootDatum &)
void cartanMatrix (LT::LatticeMatrix &, const RootList &, const RootDatum &)
void reflectionMatrix (LT::LatticeMatrix &, RootNbr, const RootDatum &, RootBasisTag)
bool sumIsRoot (const LT::Weight &, const LT::Weight &, const RootDatum &)
void toDistinguished (LT::LatticeMatrix &, const RootDatum &)
void toMatrix (LT::LatticeMatrix &, const weyl::WeylWord &, const RootDatum &)
void toMatrix (LT::LatticeMatrix &, const RootList &, const RootDatum &)
void toPositive (weyl::WeylWord &, const LT::Weight &, const RootDatum &)
template<typename I>
RootIterator< I > operator+ (typename RootIterator< I >::difference_type n, RootIterator< I > i)


Typedef Documentation

typedef latticetypes::LatticeElt atlas::rootdata::Root
 

Type for a root, coroot, character, or cocharacter: an element of the lattice Z^n.

Definition at line 42 of file rootdata_fwd.h.

Referenced by atlas::rootdata::RootDatum::RootDatum(), and atlas::rootdata::RootDatum::rootPermutation().

typedef std::vector<RootNbr> atlas::rootdata::RootList
 

List of _numbers_ of roots, referring to the list of roots in RootDatum.

According to Fokko, this type should therefore have been called RootNbrList.

Definition at line 50 of file rootdata_fwd.h.

Referenced by atlas::compactEquations(), atlas::cartanset::CartanClassSet::correlateDualForms(), atlas::cartanset::CartanClassSet::correlateForms(), atlas::gradings::findGrading(), atlas::gradings::gradingType(), atlas::realform_io::Interface::Interface(), atlas::realredgp::RealReductiveGroup::RealReductiveGroup(), atlas::rootdata::RootDatum::simpleBasis(), and atlas::rootdata::RootDatum::simpleRootList().

typedef unsigned long atlas::rootdata::RootNbr
 

Integer representing the location of a root on the list maintained by a RootDatum.

The roots in a root datum should almost always be referred to by their numbers.

Definition at line 33 of file rootdata_fwd.h.

Referenced by atlas::gradings::gradingType(), atlas::rootdata::RootDatum::posRootNbr(), atlas::rootdata::RootDatum::reflectedRoot(), atlas::rootdata::RootDatum::RootDatum(), atlas::rootdata::RootDatum::rootMinus(), atlas::rootdata::RootDatum::rootNbr(), atlas::rootdata::RootDatum::simpleRootNbr(), and atlas::cartanclass::toMostSplit().

typedef bitmap::BitMap atlas::rootdata::RootSet
 

BitMap representing a set of roots (such as the set of positive roots, or noncompact roots).

Definition at line 56 of file rootdata_fwd.h.

Referenced by atlas::cartanclass::Fiber::compactRoots(), atlas::cartanclass::InvolutionData::complex_roots(), atlas::cartanclass::Fiber::complexRootSet(), atlas::cartanset::CartanClassSet::extend(), atlas::gradings::findGrading(), atlas::kgb::grading_offset_for(), atlas::cartanclass::InvolutionData::imaginary_roots(), atlas::cartanclass::CartanClass::imaginaryRootSet(), atlas::cartanclass::Fiber::imaginaryRootSet(), atlas::cartanclass::Fiber::makeBaseGrading(), atlas::cartanclass::Fiber::makeGradingShifts(), atlas::cartanset::makeRepresentative(), atlas::cartanset::CartanClassSet::noncompactPosRootSet(), atlas::realredgp::RealReductiveGroup::noncompactRoots(), atlas::cartanset::CartanClassSet::noncompactRoots(), atlas::cartanclass::Fiber::noncompactRoots(), atlas::orthogonalMAlpha(), atlas::rootdata::RootDatum::posRootSet(), atlas::prettyprint::printInRootBasis(), atlas::cartanclass::InvolutionData::real_roots(), atlas::cartanclass::CartanClass::realRootSet(), atlas::cartanclass::Fiber::realRootSet(), atlas::cartanclass::restrictGrading(), rootBasis(), atlas::rootdata::RootDatum::simpleBasis(), atlas::rootdata::RootDatum::simpleRootSet(), atlas::kgb::square_class_grading_offset(), atlas::cartanclass::toMostSplit(), and atlas::rootdata::RootDatum::twoRho().

typedef std::vector<RootSet> atlas::rootdata::RootSetList
 

Definition at line 57 of file rootdata_fwd.h.

typedef RootIterator<RootList::const_iterator> atlas::rootdata::WRootIterator
 

Definition at line 51 of file rootdata_fwd.h.

Referenced by atlas::rootdata::RootDatum::beginPosCoroot(), atlas::rootdata::RootDatum::beginPosRoot(), atlas::rootdata::RootDatum::beginSimpleCoroot(), atlas::rootdata::RootDatum::beginSimpleRoot(), atlas::interpreter::check_involution(), atlas::rootdata::RootDatum::endPosCoroot(), atlas::rootdata::RootDatum::endPosRoot(), atlas::rootdata::RootDatum::endSimpleCoroot(), atlas::rootdata::RootDatum::endSimpleRoot(), atlas::fillRoots(), atlas::poscoroots_f(), atlas::posroots_f(), atlas::rootdata::RootDatum::RootDatum(), atlas::simplecoroots_f(), and atlas::simpleroots_f().


Function Documentation

void cartanMatrix LT::LatticeMatrix ,
const RootList ,
const RootDatum & 
 

Referenced by atlas::interpreter::Cartan_matrix_wrapper(), atlas::interpreter::check_involution(), atlas::cmatrix_f(), atlas::testrun::CoveringIterator::CoveringIterator(), atlas::interpreter::datum_Cartan_wrapper(), atlas::complexredgp::lieType(), atlas::cartanclass::CartanClass::makeSimpleComplex(), atlas::interpreter::print_gradings_wrapper(), atlas::cartan_io::printGradings(), atlas::interpreter::root_datum_wrapper(), atlas::interactive_lattice::smithBasis(), atlas::interpreter::smithBasis(), atlas::interpreter::type_of_datum(), and atlas::involutions::helper::Helper::weylCorrelation().

void cartanMatrix LT::LatticeMatrix ,
const RootDatum & 
 

void cartanMatrix latticetypes::LatticeMatrix c,
const RootList rb,
const RootDatum &  rd
 

Puts in c the Cartan matrix of the root basis rb.

Precondition: rb contains a basis of a sub-root system of the root system of rd.

Definition at line 720 of file rootdata.cpp.

References atlas::rootdata::RootDatum::coroot(), atlas::latticetypes::LatticeMatrix, atlas::matrix::Matrix< C >::resize(), atlas::rootdata::RootDatum::root(), and atlas::latticetypes::scalarProduct().

void cartanMatrix latticetypes::LatticeMatrix c,
const RootDatum &  rd
 

Puts in c the Cartan matrix of the root datum.

Definition at line 702 of file rootdata.cpp.

References atlas::rootdata::RootDatum::cartan(), atlas::latticetypes::LatticeMatrix, atlas::matrix::Matrix< C >::resize(), and atlas::rootdata::RootDatum::semisimpleRank().

Referenced by lieType().

LT::LatticeMatrix atlas::rootdata::dualBasedInvolution const LT::LatticeMatrix i,
const RootDatum &  rd
 

Definition at line 773 of file rootdata.cpp.

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

void atlas::rootdata::dualBasedInvolution LT::LatticeMatrix di,
const LT::LatticeMatrix i,
const RootDatum &  rd
 

Puts i^vee in di.

Precondition: i is an involution of rd as a _based_ root datum;

Postcondition: di is an involution of the dual based root datum;

Algorithm: di is (w_0^t)(-i^t). (The first factor is the long element of the Weyl group, acting on the dual root datum, and the second factor is the negative transpose of i.)

[DV 13 July 2006: since RootDatum no longer contains the involution defining the inner class, this function seems not to belong in the rootdata namespace. Not sure where would be a better home.]

Definition at line 742 of file rootdata.cpp.

References atlas::latticetypes::LatticeMatrix, longest(), atlas::matrix::Matrix< C >::negate(), and atlas::matrix::Matrix< C >::transpose().

Referenced by atlas::complexredgp::ComplexReductiveGroup::ComplexReductiveGroup(), and dualBasedInvolution().

void atlas::rootdata::lieType lietype::LieType lt,
const RootList rb,
const RootDatum &  rd
 

puts in lt the Lie type of the root system spanned by rb.

Precondition: rb contains a basis of a sub-rootsystem of the root system of rd.

Definition at line 785 of file rootdata.cpp.

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

Referenced by atlas::interpreter::check_involution(), atlas::complexredgp::lieType(), atlas::cartanclass::CartanClass::makeOrbitSize(), atlas::interpreter::print_Cartan_info_wrapper(), atlas::interpreter::print_gradings_wrapper(), atlas::testprint::printBlockData(), atlas::cartan_io::printCartanClass(), atlas::realweyl::RealWeyl::RealWeyl(), atlas::interpreter::type_of_Cartan_matrix_wrapper(), and atlas::interpreter::type_of_datum().

void atlas::rootdata::longest LT::LatticeMatrix q,
const RootDatum &  rd
 

Puts in q the matrix of the action of w_0;.

Algorithm: w_0 is the element making -twoRho positive.

NOTE: not intended for heavy use. Should be precomputed if that is the case.

Definition at line 803 of file rootdata.cpp.

References atlas::matrix::identityMatrix(), atlas::latticetypes::LatticeMatrix, atlas::rootdata::RootDatum::rank(), atlas::rootdata::RootDatum::rootReflection(), atlas::rootdata::RootDatum::simpleRootNbr(), toPositive(), atlas::rootdata::RootDatum::twoRho(), atlas::latticetypes::Weight, and atlas::weyl::WeylWord.

Referenced by dualBasedInvolution().

void atlas::rootdata::makeOrthogonal RootList orth,
const RootList rl,
const RootList rs,
const RootDatum &  rd
 

Puts in orth the elements of rs which are orthogonal to all elements of rl.

Definition at line 825 of file rootdata.cpp.

References atlas::rootdata::RootDatum::isOrthogonal(), and atlas::matrix::Matrix< C >::resize().

Referenced by atlas::interactive_lattice::getLattice().

template<typename I>
RootIterator<I> operator+ typename RootIterator< I >::difference_type  n,
RootIterator< I >  i
[inline]
 

Definition at line 574 of file rootdata.h.

void reflectionMatrix LT::LatticeMatrix ,
RootNbr  ,
const RootDatum &  ,
RootBasisTag 
 

void atlas::rootdata::reflectionMatrix LT::LatticeMatrix qs,
RootNbr  n,
const RootDatum &  rd
 

Writes in qs the matrix of the reflection through root #n.

Definition at line 846 of file rootdata.cpp.

References atlas::rootdata::RootDatum::coroot(), atlas::latticetypes::LatticeCoeff, atlas::latticetypes::LatticeMatrix, atlas::rootdata::RootDatum::rank(), atlas::matrix::Matrix< C >::resize(), atlas::rootdata::RootDatum::root(), and atlas::latticetypes::Weight.

void atlas::rootdata::rootBasis RootList rb,
RootSet  rs,
const RootDatum &  rd
 

puts in rb the canonical basis (set of simple roots) of rs.

Precondition: rs holds the roots in a sub-root system of rd;

Algorithm: compute the sum of the positive roots in rs; extract the positive roots whose scalar product with that sum is 2.

Definition at line 890 of file rootdata.cpp.

References atlas::bitmap::BitMap::begin(), atlas::rootdata::RootDatum::posRootSet(), atlas::rootdata::RootDatum::rank(), atlas::rootdata::RootDatum::root(), RootSet, and atlas::rootdata::RootDatum::scalarProduct().

Referenced by atlas::compactEquations(), atlas::gradings::findGrading(), and atlas::realweyl::RealWeyl::RealWeyl().

void atlas::rootdata::rootBasis RootList rb,
const RootList rl,
const RootDatum &  rd
 

Puts in rb the canonical basis (set of simple roots) of rl.

Precondition: rl holds the roots in a sub-root system of rd;

Forwarded to the RootSet version. Therefore the order of the roots in |rl| is ignored! The roots of |rb| are by order of occurrence in |rd.roots()|

Definition at line 874 of file rootdata.cpp.

References atlas::rootdata::RootDatum::numRoots(), and RootSet.

void atlas::rootdata::strongOrthogonalize RootList rl,
const RootDatum &  rd
 

Makes rl into a strongly orthogonal system.

Precondition: rl is a set of pairwise orthogonal roots;

Algorithm: for i,j in rl, the sum can be a root iff i,j span a subsystem of type B2, and are short there; we can then replace i and j by their sum and difference. Note that this will not create new bad pairs, as bad pairs are made up of short roots.

Definition at line 908 of file rootdata.cpp.

References atlas::rootdata::RootDatum::root(), atlas::rootdata::RootDatum::rootNbr(), atlas::rootdata::RootDatum::sumIsRoot(), and atlas::latticetypes::Weight.

Referenced by atlas::cartanset::cayley_and_cross_part(), atlas::cartanset::cayleyPart(), and atlas::cartanclass::toMostSplit().

bool sumIsRoot const LT::Weight ,
const LT::Weight ,
const RootDatum & 
 

Referenced by atlas::rootdata::RootDatum::sumIsRoot().

bool sumIsRoot const Weight a,
const Weight b,
const RootDatum &  rd
 

Tells if a+b is a root.

Precondition: a and b are roots;

Definition at line 941 of file rootdata.cpp.

References atlas::rootdata::RootDatum::isRoot(), and atlas::latticetypes::Weight.

void toDistinguished LT::LatticeMatrix ,
const RootDatum & 
 

void toDistinguished LatticeMatrix q,
const RootDatum &  rd
 

Transforms q into w.q, where w is the unique element such that w.q fixes the positive Weyl chamber.

Note that wq is then automatically an involution; w_0.w.q permutes the simple roots. [DV: I don't understand this last remark. Probably q is meant to be an involutive automorphism of order 2 of the (unbased) root datum. This would make w.q an involution of the based root datum, but then w_0.w.q would send the simple roots to their negatives.]

Definition at line 959 of file rootdata.cpp.

References atlas::matrix::Matrix< C >::apply(), atlas::latticetypes::LatticeMatrix, atlas::rootdata::RootDatum::rank(), atlas::matrix::Matrix< C >::swap(), toMatrix(), toPositive(), atlas::rootdata::RootDatum::twoRho(), and atlas::latticetypes::Weight.

void toMatrix LT::LatticeMatrix ,
const RootList ,
const RootDatum & 
 

Referenced by atlas::cartanset::CartanClassSet::involutionMatrix(), and atlas::realredgp::RealReductiveGroup::RealReductiveGroup().

void toMatrix LT::LatticeMatrix ,
const weyl::WeylWord ,
const RootDatum & 
 

void toMatrix LatticeMatrix q,
const RootList rl,
const RootDatum &  rd
 

Writes in q the matrix represented by rl (the product of the root reflections for the various roots in rl.).

NOTE: the products are written in the same order as the appearance of the roots in rl. In practice this will be used for sequences of orthogonal roots, so that the order doesn't matter.

Definition at line 1008 of file rootdata.cpp.

References atlas::matrix::identityMatrix(), atlas::latticetypes::LatticeMatrix, atlas::rootdata::RootDatum::rank(), and atlas::rootdata::RootDatum::rootReflection().

void toMatrix LatticeMatrix q,
const weyl::WeylWord ww,
const RootDatum &  rd
 

Writes in q the matrix represented by ww.

NOTE: not intended for heavy use. If that were the case, it would be better to use the decomposition of ww into pieces, and multiply those together. However, that would be for the ComplexGroup to do, as it is it that has access to both the Weyl group and the root datum.

Definition at line 989 of file rootdata.cpp.

References atlas::matrix::identityMatrix(), atlas::latticetypes::LatticeMatrix, atlas::rootdata::RootDatum::rank(), atlas::rootdata::RootDatum::rootReflection(), and atlas::rootdata::RootDatum::simpleRootNbr().

Referenced by toDistinguished().

void toPositive weyl::WeylWord ,
const LT::Weight ,
const RootDatum & 
 

void toPositive weyl::WeylWord ww,
const Weight d_v,
const RootDatum &  rd
 

Puts in ww a list of simple reflections constituting a reduced expression of the unique shortest element w in the Weyl group such that w.v is in the positive chamber.

Algorithm: the greedy algorithm -- if v is not positive, there is a simple coroot alpha^v such that <v,alpha^v> is < 0; then s_alpha.v takes v closer to the positive chamber.

Definition at line 1029 of file rootdata.cpp.

References atlas::latticetypes::scalarProduct(), atlas::rootdata::RootDatum::semisimpleRank(), atlas::rootdata::RootDatum::simpleCoroot(), atlas::rootdata::RootDatum::simpleReflection(), and atlas::latticetypes::Weight.

Referenced by longest(), atlas::rootdata::RootDatum::reflectionWord(), toDistinguished(), toWeylWord(), and atlas::rootdata::RootDatum::word_of_inverse_matrix().

void atlas::rootdata::toWeylWord weyl::WeylWord ww,
RootNbr  rn,
const RootDatum &  rd
 

Writes in ww the expression of the reflection about root #rn as a product of simple reflections.

Definition at line 1064 of file rootdata.cpp.

References atlas::rootdata::RootDatum::reflection(), toPositive(), atlas::rootdata::RootDatum::twoRho(), and atlas::latticetypes::Weight.


Generated on Wed Mar 26 16:53:03 2008 for atlas by  doxygen 1.3.9.1