|
| | TitsGroup (const RootDatum &, const WeylGroup &W, const WeightInvolution &d) |
| |
| | TitsGroup (const int_Matrix &Cartan_matrix, const WeylGroup &W, const weyl::Twist &twist) |
| |
| | TitsGroup (const TitsGroup &Tg, const WeylGroup &W) |
| |
| const size_t | rank () const |
| |
| const size_t | semisimple_rank () const |
| |
| TorusPart | m_alpha (size_t j) const |
| |
| TorusPart | dual_m_alpha (size_t j) const |
| |
| void | reflect (TorusPart &x, weyl::Generator s) const |
| |
| TorusPart | push_across (TorusPart x, const WeylElt &w) const |
| | find torus part $x'$ so that $x.w=w.x'$ More...
|
| |
| TorusPart | pull_across (const WeylElt &w, TorusPart y) const |
| |
| TorusPart | twisted (const TorusPart x) const |
| |
| TorusPart | dual_twisted (const TorusPart x) const |
| |
| TitsElt | twisted (const TitsElt &te) const |
| |
| TitsElt | dual_twisted (const TitsElt &te, const TorusPart shift) const |
| |
| void | twist (TorusPart x) const |
| |
| BinaryMap | involutionMatrix (const WeylWord &tw) const |
| |
| unsigned long | length (const TitsElt &a) const |
| |
| TorusPart | left_torus_part (const TitsElt &a) const |
| |
| TorusPart | right_torus_part (const TitsElt &a) const |
| |
| void | sigma_mult (weyl::Generator s, TitsElt &a) const |
| | Left multiplication of |a| by the canonical generator $$. More...
|
| |
| void | sigma_inv_mult (weyl::Generator s, TitsElt &a) const |
| |
| void | mult_sigma (TitsElt &, weyl::Generator) const |
| | Right multiplication of |a| by the canonical generator $sigma_s$. More...
|
| |
| void | mult_sigma_inv (TitsElt &, weyl::Generator) const |
| |
| TitsElt | prod (const TitsElt &a, TitsElt b) const |
| | Product of general Tits group elements. More...
|
| |
| void | mult (TitsElt &a, const TitsElt &b) const |
| |
| void | right_add (TitsElt &a, TorusPart t) const |
| |
| void | left_add (TorusPart t, TitsElt &a) const |
| |
| void | sigma_conjugate (TitsElt &a, weyl::Generator s) const |
| |
| void | sigma_inv_conjugate (TitsElt &a, weyl::Generator s) const |
| |
| void | twistedConjugate (TitsElt &a, weyl::Generator s) const |
| |
| void | inverseTwistedConjugate (TitsElt &a, weyl::Generator s) const |
| |
Left multiplication of |a| by the canonical generator $$.
This is the basic case defining the group structure in the Tits group (since left-multiplication by an element of $T(2)$ just adds to the torus part).
Algorithm: This is surprisingly simple: multiplying by $$ just amounts to reflecting the torus part through |s|, then left-multiplying the Weyl group part $w$ by |s| in the Weyl group, and if the length goes down in the latter step, add a factor of $()^2=m_s$ to the torus part. (To see this, write in the length-decreasing case $w=s.w'$ with $w'$ reduced; then $=m_s{w'}$, so we need to add $m_s$ to the reflected left torus part in that case.
The upshot is a multiplication algorithm almost as fast as in the Weyl group!