|
| | 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 |
| |
template<typename I , typename O >
| 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.
template<typename I , typename O >
| 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|.