![]() |
atlas
0.6
|
#include <rootdata.h>
Classes | |
struct | root_info |
Public Member Functions | |
RootSystem (const int_Matrix &Cartan_matrix) | |
RootSystem (const RootSystem &rs, tags::DualTag) | |
size_t | rank () const |
unsigned long | numPosRoots () const |
unsigned long | numRoots () const |
int | cartan (weyl::Generator i, weyl::Generator j) const |
int_Matrix | cartanMatrix () const |
LieType | Lie_type () const |
int_Matrix | cartanMatrix (const RootNbrList &sub) const |
Returns the Cartan matrix of the root subsystem with basis |rb|. More... | |
LieType | Lie_type (RootNbrList sub) const |
int_Vector | root_expr (RootNbr alpha) const |
int_Vector | coroot_expr (RootNbr alpha) const |
int | level (RootNbr alpha) const |
int | colevel (RootNbr alpha) const |
template<typename I , typename O > | |
void | toRootBasis (I, I, O) const |
template<typename I , typename O > | |
void | toRootBasis (I, I, O, const RootNbrList &) const |
template<typename I , typename O > | |
void | toSimpleWeights (I, I, O, const RootNbrList &) const |
bool | is_simple_root (RootNbr alpha) const |
bool | is_posroot (RootNbr alpha) const |
bool | is_negroot (RootNbr alpha) const |
RootNbr | simpleRootNbr (weyl::Generator i) const |
RootNbr | posRootNbr (size_t alpha) const |
RootNbr | simpleRootIndex (size_t alpha) const |
RootNbr | posRootIndex (size_t alpha) const |
RootNbr | rootMinus (RootNbr alpha) const |
RootNbr | rt_abs (RootNbr alpha) const |
RootNbrSet | simpleRootSet () const |
RootNbrList | simpleRootList () const |
RootNbrSet | posRootSet () const |
const Permutation & | simple_root_permutation (weyl::Generator i) const |
RankFlags | descent_set (RootNbr alpha) const |
RankFlags | ascent_set (RootNbr alpha) const |
size_t | find_descent (RootNbr alpha) const |
bool | is_descent (weyl::Generator i, RootNbr alpha) const |
bool | is_ascent (weyl::Generator i, RootNbr alpha) const |
RootNbr | simple_reflected_root (weyl::Generator i, RootNbr r) const |
void | simple_reflect_root (weyl::Generator i, RootNbr &r) const |
RootNbr | permuted_root (const WeylWord &ww, RootNbr r) const |
RootNbr | permuted_root (RootNbr r, const WeylWord &ww) const |
const Permutation & | root_permutation (RootNbr alpha) const |
bool | isOrthogonal (RootNbr alpha, RootNbr beta) const |
int | bracket (RootNbr alpha, RootNbr beta) const |
Permutation | root_permutation (const Permutation &twist) const |
Permutation | extend_to_roots (const RootNbrList &simple_images) const |
WeylWord | reflectionWord (RootNbr r) const |
matrix::Vector< int > | pos_system_vec (const RootNbrList &Delta) const |
RootNbrList | simpleBasis (RootNbrSet rs) const |
bool | sumIsRoot (RootNbr alpha, RootNbr beta, RootNbr &gamma) const |
bool | sumIsRoot (RootNbr alpha, RootNbr beta) const |
RootNbrSet | long_orthogonalize (const RootNbrSet &rest) const |
Makes the orthogonal system |rset| into an equaivalent (for |refl_prod|) one that is additively closed inside the full root system. More... | |
RootNbrList | high_roots () const |
Private Types | |
typedef signed char | byte |
typedef matrix::Vector< byte > | Byte_vector |
Private Member Functions | |
byte & | Cartan_entry (weyl::Generator i, weyl::Generator j) |
const byte & | Cartan_entry (weyl::Generator i, weyl::Generator j) const |
Byte_vector & | root (RootNbr i) |
Byte_vector & | coroot (RootNbr i) |
const Byte_vector & | root (RootNbr i) const |
const Byte_vector & | coroot (RootNbr i) const |
Private Attributes | |
size_t | rk |
Byte_vector | Cmat |
std::vector< root_info > | ri |
int_Vector | two_rho_in_simple_roots |
std::vector< Permutation > | root_perm |
Root permutations induced by reflections in all positive roots. More... | |
|
private |
|
private |
|
explicit |
atlas::rootdata::RootSystem::RootSystem | ( | const RootSystem & | rs, |
tags::DualTag | |||
) |
|
inline |
|
inlineprivate |
|
inlineprivate |
int_Matrix atlas::rootdata::RootSystem::cartanMatrix | ( | ) | const |
int_Matrix atlas::rootdata::RootSystem::cartanMatrix | ( | const RootNbrList & | sub | ) | const |
Returns the Cartan matrix of the root subsystem with basis |rb|.
int atlas::rootdata::RootSystem::colevel | ( | RootNbr | alpha | ) | const |
|
inlineprivate |
|
inlineprivate |
int_Vector atlas::rootdata::RootSystem::coroot_expr | ( | RootNbr | alpha | ) | const |
Permutation atlas::rootdata::RootSystem::extend_to_roots | ( | const RootNbrList & | simple_images | ) | const |
|
inline |
RootNbrList atlas::rootdata::RootSystem::high_roots | ( | ) | const |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
int atlas::rootdata::RootSystem::level | ( | RootNbr | alpha | ) | const |
LieType atlas::rootdata::RootSystem::Lie_type | ( | ) | const |
LieType atlas::rootdata::RootSystem::Lie_type | ( | RootNbrList | sub | ) | const |
RootNbrSet atlas::rootdata::RootSystem::long_orthogonalize | ( | const RootNbrSet & | rset | ) | const |
Makes the orthogonal system |rset| into an equaivalent (for |refl_prod|) one that is additively closed inside the full root system.
This can be achieved by repeatedly replacing a pair of short roots spanning a B2 subsystem by a pair of long roots of that subsystem. Although we record no information about relative root lengths it is easily seen that the long roots in some B2 subsystem can never be short roots in another subsystem, so there is no need to assure newly created roots are inspected subsequently.
|
inline |
|
inline |
matrix::Vector< int > atlas::rootdata::RootSystem::pos_system_vec | ( | const RootNbrList & | Delta | ) | const |
|
inline |
|
inline |
RootNbrSet atlas::rootdata::RootSystem::posRootSet | ( | ) | const |
|
inline |
WeylWord atlas::rootdata::RootSystem::reflectionWord | ( | RootNbr | r | ) | const |
|
inlineprivate |
|
inlineprivate |
int_Vector atlas::rootdata::RootSystem::root_expr | ( | RootNbr | alpha | ) | const |
|
inline |
Permutation atlas::rootdata::RootSystem::root_permutation | ( | const Permutation & | twist | ) | const |
|
inline |
|
inline |
|
inline |
RootNbrList atlas::rootdata::RootSystem::simpleBasis | ( | RootNbrSet | rs | ) | const |
|
inline |
RootNbrList atlas::rootdata::RootSystem::simpleRootList | ( | ) | const |
|
inline |
RootNbrSet atlas::rootdata::RootSystem::simpleRootSet | ( | ) | const |
void atlas::rootdata::RootSystem::toRootBasis | ( | I | first, |
I | last, | ||
O | out | ||
) | const |
In this template we assume that |I| is an |InputIterator| with |value_type| |RootNbr|, and that |O| is an |OutputIterator| with |value_type| |Weight|. We output via |out| the expressions of the roots numbered in |[first,last[| in the simple root basis.
void atlas::rootdata::RootSystem::toRootBasis | ( | I | first, |
I | last, | ||
O | out, | ||
const RootNbrList & | rb | ||
) | const |
In this template, |I| is an Input_iterator with |value_type| |RootNbr|, and |O| is an OutputIterator with |value_type| |Weight|. We assume that |rb| contains a basis of some sub rootsystem of |rd|, and that |I| inputs |RootNbr|s corresponding to roots in that subsystem. Then we write to |out| the expression of the root in the basis |rb|.
The idea is to use the coroots of the vectors in |rb| to get the expression of both the input roots and those from |rb| itself in the simple weight basis for |rb| (this is done by |toSimpleWeights| below); the latter matrix (the Cartan matrix of |rb|) is square, so we can then apply |baseChange|, which amounts to left-multiplication by the inverse of that Cartan matrix.
void atlas::rootdata::RootSystem::toSimpleWeights | ( | I | first, |
I | last, | ||
O | out, | ||
const RootNbrList & | rb | ||
) | const |
In this template we assume that |I| is an InputIterator with value type |RootNbr|, that |O| is an OutputIterator with |value_type| |Weight|, and that |rb| flags a basis for some sub rootsystem of our |RootSystem|. The range $[first,last)$ should access root numbers of roots in the subsystem. Then for each |v| in this range we output to |out| the expression of |v| in the simple weight basis of the root subsystem |rb|; this is obtained simply by taking scalar products with the coroots of the roots in |rb|.
|
private |
|
private |
|
private |
|
private |
Root permutations induced by reflections in all positive roots.
|
private |