Basis( H, "T" )
Let H be a Iwahori-Hecke algebra. The function Basis(H,"T")
returns a function which can be used to make elements of the usual T
basis of the algebra. It is convenient to assign this function with a
shorter name when computing with elements of the Hecke algebra. In what
follows we assume that we have done the assignment:
gap> T := Basis( H, "T" ); function ( arg ) ... end
T( perm )
Let perm be a permutation which is an element w of the Coxeter group
Group(H)
. This call returns the basis element T_w of H.
T( perms, coeffs)
In this form, perms is a vector of permutations and coeffs a vector of coefficients which should be of the same length k. The element text{coeffs}[1] T_{text{perms}[1]} +ldots+ text{coeffs}[k] T_{text{perms}[k]} of H is returned.
T( list )
T( s1, .., sn )
In the above two forms, s_1,ldots,s_n is a sequence of integers representing generators of the Coxeter group attached to H, or list is a GAP list of such integers. The element T_{s_1}T_{s_2} ldots T_{s_n} is returned.
gap> W := CoxeterGroup( "B", 3 );; gap> u := X( Rationals );; u.name := "u";; gap> H := Hecke( W, u );; gap> T := Basis( H, "T" ); function ( arg ) ... end gap> T( 1, 2 ) = T( [ 1, 2 ] ); true gap> T( 1, 2 ) = T( PermCoxeterWord( W, [ 1, 2 ] ) ); true gap> l := [ [], [ 1, 2, 3 ], [ 1 ], [ 2 ], [ 3 ] ];; gap> pl := List( l, i -> PermCoxeterWord( W, i ) );; gap> h := T( pl, [ u^100, 1/u^20, 1, -5, 0 ] ); u^100T()+T(1)-5T(2)+0T(3)+u^-20T(1,2,3) gap> h.elm; [ (), ( 1,16,13,10, 7, 4)( 2, 8,12,11,17, 3)( 5, 9, 6,14,18,15), ( 1,10)( 2, 6)( 5, 8)(11,15)(14,17), ( 1, 4)( 2,11)( 3, 5)( 8, 9)(10,13)(12,14)(17,18), ( 2, 5)( 3,12)( 4, 7)( 6, 8)(11,14)(13,16)(15,17) ] gap> h.coeff; [ u^100, u^(-20), 1, -5, 0 ]
The last two lines show that a Hecke element is represented internally by a list of elements of W and the corresponding list of coefficients of the basis elements in H.
Note that the function T
just creates a Hecke element. In order to have
a fast function which does this, the resulting element is not normalized
in any way, nor is it even checked if some coefficients are zero or not
(see the last line in the above example). A normal form is computed by
applying the function Normalize
to such an element (see below).
The way elements of the Iwahori-Hecke algebra are printed depends on the
global variable PrintHecke
which is a component of the global variable
Artin-Tits braid groups). If set to "GAP"
, they are printed in a way which can be
input back in GAP. When you load CHEVIE, the variable is initially
set to the string ""
.
gap> CHEVIE.PrintHecke := "GAP"; "GAP" gap> T( pl, [ u^100, 1/u^20, 1, -5, 0 ] ); u^100*T()+T(1)-5*T(2)+0*T(3)+u^-20*T(1,2,3) gap> CHEVIE.PrintHecke := ""; ""
GAP 3.4.4