atlas  0.6
Public Member Functions | Private Attributes | List of all members
atlas::weyl::Transducer Class Reference

Right multiplication action of simple reflections on a Weyl group modulo (to the left) a maximal parabolic subgroup. More...

#include <weyl.h>

Public Member Functions

 Transducer ()
 
 Transducer (const int_Matrix &, size_t)
 
 ~Transducer ()
 
unsigned long length (WeylElt::EltPiece x) const
 Length of minimal coset representative x. More...
 
unsigned long maxlength () const
 Maximal length of minimal coset representatives. More...
 
Generator out (WeylElt::EltPiece x, Generator s) const
 Simple reflection t (strictly preceding s) so that xs = tx, if any. More...
 
WeylElt::EltPiece shift (WeylElt::EltPiece x, Generator s) const
 Right coset x' defined by x' = xs. More...
 
unsigned long size () const
 Number of cosets W_{r-1}\W_r. More...
 
const WeylWordwordPiece (WeylElt::EltPiece x) const
 Reduced decomposition in W (or W_r) of minimal coset representative x. More...
 

Private Attributes

std::vector< ShiftRowd_shift
 Right multiplication by $s_j$ gives transition |i -> d_shift[i][j]|. More...
 
std::vector< OutRowd_out
 If |d_shift[i][j]==i| then $s_j$ transduces in state $i$ to $s_k$ with $k=d_out[i][j]$ (otherwise |d_out[i][j]==UndefGenerator|). More...
 
std::vector< unsigned long > d_length
 Lengths of the minimal coset representatives $x_i$. More...
 
std::vector< WeylWordd_piece
 Reduced expressions of the minimal coset representatives. More...
 

Detailed Description

Right multiplication action of simple reflections on a Weyl group modulo (to the left) a maximal parabolic subgroup.

In the notation from the description of the class WeylGroup, there will be one Transducer object for each parabolic subquotient W_{r-1}\W_r. List the shortest length coset representatives for this subquotient as x_0,...,x_{N_r-1}. Recall that the simple roots were ordered to guarantee that N_r-1 fits in an unsigned char, so each coset representative can be indexed by an unsigned char. We wish to compute the product x_i.s_j for j between 1 and r. The key theoretical fact about multiplication is that there are two mutually exclusive possibilities:

x_i.s_j = x_{i'} (some i' ne i)

OR

x_i.s_j = s_k.x_i (some k < r).

The first possibility is called transition and the second transduction. (Confusingly Fokko's 1999 paper interchanges these terms at their definition, but their usual meaning and the sequel makes clear that this was an error).

The Transducer has tables to describe the two cases. the first table |d_shift| describes the transistions, namely |d_shift[i][j]==i'| in the first case; the cases that are transductions can be distinguished from these by the fact that |d_shift[i][j]==i|. In these cases, the value |k| emitted by the transduction is stored in |d_out[i][j]|, which otherwise contains the value |UndefGenerator|

Constructor & Destructor Documentation

atlas::weyl::Transducer::Transducer ( )
inline
atlas::weyl::Transducer::Transducer ( const int_Matrix c,
size_t  r 
)

$ of length $m-2$ not starting with $s'$, so that $a.v=x$, one has $v.st=s'vs$ whence $x.st=a.v.st=a.s'vs=g.a.vs=g.xs$ so that $xs$ has a transduction for $t$ that outputs the generator $g$. (3) either $x$ goes down less than $m-2$ times, or $m-2$ times followed by an upward step; then $xst$ goes up.

atlas::weyl::Transducer::~Transducer ( )
inline

Member Function Documentation

unsigned long atlas::weyl::Transducer::length ( WeylElt::EltPiece  x) const
inline

Length of minimal coset representative x.

unsigned long atlas::weyl::Transducer::maxlength ( ) const
inline

Maximal length of minimal coset representatives.

This is the number of positive roots for the Levi subgroup L_r, minus the number of positive roots for L_{r-1}.

Generator atlas::weyl::Transducer::out ( WeylElt::EltPiece  x,
Generator  s 
) const
inline

Simple reflection t (strictly preceding s) so that xs = tx, if any.

In case of a transition, this returns UndefGenerator.

WeylElt::EltPiece atlas::weyl::Transducer::shift ( WeylElt::EltPiece  x,
Generator  s 
) const
inline

Right coset x' defined by x' = xs.

When x' is not equal to s, this is an equality of minimal coset representatives. When x'=x, the equation for minimal coset representatives is out(x,s).x = x.s.

unsigned long atlas::weyl::Transducer::size ( ) const
inline

Number of cosets W_{r-1}\W_r.

const WeylWord& atlas::weyl::Transducer::wordPiece ( WeylElt::EltPiece  x) const
inline

Reduced decomposition in W (or W_r) of minimal coset representative x.

Member Data Documentation

std::vector<unsigned long> atlas::weyl::Transducer::d_length
private

Lengths of the minimal coset representatives $x_i$.

std::vector<OutRow> atlas::weyl::Transducer::d_out
private

If |d_shift[i][j]==i| then $s_j$ transduces in state $i$ to $s_k$ with $k=d_out[i][j]$ (otherwise |d_out[i][j]==UndefGenerator|).

In this case $x_i.s_j = s_k.x_i$, so the state $i$ remains unchanged.

std::vector<WeylWord> atlas::weyl::Transducer::d_piece
private

Reduced expressions of the minimal coset representatives.

std::vector<ShiftRow> atlas::weyl::Transducer::d_shift
private

Right multiplication by $s_j$ gives transition |i -> d_shift[i][j]|.


The documentation for this class was generated from the following files: