The cyclotomic Hecke algebras (Hecke algebras for complex reflection groups) are deformations of the group algebras, generalizing those for real reflection groups (see the next chapter on Iwahori-Hecke algebras).

Their general definition is as a quotient of the algebra of the braid
group. We assume now that *W* is a **finite** reflection group in the complex
vector space *V* since the theory for infinite groups has not yet been
investigated in sufficient generality. The **braid group** associated is the
fundamental group *Π ^{1}* of the space

The quotient of the Hecke algebra obtained by *u _{s,i}→*

`E(e)^i`

is isomorphic to the group algebra of `Size(W)`

).
The cyclotomic Hecke algebras can also been defined in terms of
presentations. The braid group is presented by homogeneous relations,
called **braid relations**, described in BMR98 and BM03 (some
were obtained using the VKCURVE package of **GAP3**). Further, these
relations are such that the reflection group is presented by the same
relations, plus relations describing the order of the generating
reflections, called the **order relations**. This allows to define the Hecke
algebra by the same presentation as *W*, with the order relations replaced
by a deformed version. Specifically, for each orbit of reflection
hyperplanes of *W*, let us chose a **distinguished** reflection *s* of *W*,
that is a reflection with a non-trivial eigenvalue of minimal argument
(i.e., of the form `E(e)`

where *e* is the order of *s*; then any
reflection around an hyperplane of the same orbit is a conjugate of a power
of *s*). Let then *u _{s,0},...,u_{s,e-1}* be indeterminates. The generic
Hecke algebra is the

Ariki, Koike and Malle have computed character tables for some of these
algebras, including all those for 2-dimensional reflection groups, see
BM93 and Mal96; **CHEVIE** contains models of each
representation and character tables for real reflection groups, for
imprimitive groups and for primitive groups of dimension 2 and 3 (these
last representations have been computed in MM10) and for *G _{29}*
and

A refinement of the conjecture that *H* has the same dimension as *W* is
that there exists a set *{b _{w}}_{w∈ W}* of elements of the Braid group
such that

- Hecke
- Operations for cyclotomic Hecke algebras
- SchurElements
- SchurElement
- FactorizedSchurElements
- FactorizedSchurElement
- Functions and operations for FactorizedSchurElements
- LowestPowerGenericDegrees for cyclotomic Hecke algebras
- HighestPowerGenericDegrees for cyclotomic Hecke algebras
- HeckeCentralMonomials
- Representations for cyclotomic Hecke algebras
- HeckeCharValues for cyclotomic Hecke algebras

`Hecke( `

`G`, `para` )

`Hecke( `

`rec` )

returns the cyclotomic Hecke algebra corresponding to the complex
reflection group `G` (see the introduction). The following forms are
accepted for `para`: if `para` is a single value, it is replicated to
become a list of same length as the number of generators of *W*. Otherwise,
`para` should be a list of the same length as the number of generators of
*W*, with possibly unbound entries (which means it can also be a list of
lesser length). There should be at least one entry bound for each orbit of
reflections, and if several entries are bound for one orbit, they should
all be identical. Now again, an entry for a reflection of order *e* can be
either a single value or a list of length `e`

. If it is a list, it is
interpreted as the list *[u _{0},...,u_{e-1}]* of parameters for that
reflection. If it is a single value

`[q,E(e),...,E(e-1)]`

(thus the convention
is upwardly compatible with that for Coxeter groups, and `Hecke(G,1)`

is
the group algebra of

gap> G := ComplexReflectionGroup(4); ComplexReflectionGroup(4) gap> v := X( Cyclotomics );; v.name := "v";; gap> CH := Hecke( G, v ); Hecke(G4,v) gap> CH.parameter; [ [ v, E(3), E(3)^2 ], [ v, E(3), E(3)^2 ] ]

Here the single parameter `v`

is interpreted as `[v,v]`

which
is in turn interpreted according to the above rules as
`[[v,E(3),E(3)^2],[v,E(3),E(3)^2]]`

.

The second form of the function `Hecke`

takes as an argument a record
which has a field `hecke`

and returns the value of this field. This is
used to return the Hecke algebra of objects derived from Hecke algebras,
such as Hecke elements in various bases.

`Group`

:

returns the complex reflection group from which the cyclotomic Hecke algebra was generated.

`Print`

:

prints the cyclotomic Hecke algebra in a compact form. use`FormatGAP`

for a form which can be read back into**GAP3**.

gap> G := ComplexReflectionGroup( 4 ); ComplexReflectionGroup(4) gap> v := X( Cyclotomics );; v.name := "v";; gap> CH := Hecke( G, v ); Hecke(G4,v) gap> FormatGAP(CH); "Hecke(ComplexReflectionGroup(4),v)"

`CharTable`

:

returns the character table for some types of cyclotomic Hecke algebras, namely those of imprimitive type and the primitive reflection groups numbered`G(4)`

to`G(30)`

in the Shephard-Todd classification, as well as`G(33)`

. This is a record with exactly the same components as for the corresponding complex reflection group but where the component`irreducibles`

contains the values of the irreducible characters of the algebra on certain basis elements*T*where_{w}*w*runs over the elements in the component`classtext`

. Thus, the values are now polynomials in the parameters of the algebra. There are partial tables for the remaining groups`G(31)`

,`G(32)`

,`G(34)`

.

gap> Display( CharTable( CH ) ); H(G4) 2 3 3 2 1 1 1 1 3 1 1 . 1 1 1 1 . z 212 12 z12 1 1z 2P . . z 1 1 z12 z12 3P . z 212 z . . z 5P . z 212 1z 1 z12 12 phi{1,0} 1 v^6 v^3 v^2 v^8 v v^7 phi{1,4} 1 1 1 E3^2 E3^2 E3 E3 phi{1,8} 1 1 1 E3 E3 E3^2 E3^2 phi{2,5} 2 -2 . 1 -1 -1 1 phi{2,3} 2 -2v^3 . E3^2v -E3^2v^4 v+E3^2 -v^4-E3^2v^3 phi{2,1} 2 -2v^3 . E3v -E3v^4 v+E3 -v^4-E3v^3 phi{3,2} 3 3v^2 -v . . v-1 v^3-v^2

`SchurElements( `

`H` )

returns the list Schur elements for the (cyclotomic) Hecke algebra `H`
(see the introduction for their definition).

gap> v:=X(Cyclotomics);;v.name:="v";; gap> H:=Hecke(ComplexReflectionGroup(4),v); Hecke(G4,v) gap> SchurElements(H); [ v^8 + 2*v^7 + 3*v^6 + 4*v^5 + 4*v^4 + 4*v^3 + 3*v^2 + 2*v + 1, (2*E(3)-2*E(3)^2) + (-2*E(3)-10*E(3)^2)*v^(-1) + 12*v^(-2) + ( -10*E(3)-2*E(3)^2)*v^(-3) + (-2*E(3)+2*E(3)^2)*v^(-4), (-2*E(3)+2*E(3)^2) + (-10*E(3)-2*E(3)^2)*v^(-1) + 12*v^(-2) + ( -2*E(3)-10*E(3)^2)*v^(-3) + (2*E(3)-2*E(3)^2)*v^(-4), 2 + 2*v^(-1) + 4*v^(-2) + 2*v^(-3) + 2*v^(-4), (-2*E(3)-E(3)^2)*v^3 + (-4*E(3)-2*E(3)^2)*v^2 + 3*v + ( -2*E(3)-4*E(3)^2) + (-E(3)-2*E(3)^2)*v^(-1), (-E(3)-2*E(3)^2)*v^3 + (-2*E(3)-4*E(3)^2)*v^2 + 3*v + ( -4*E(3)-2*E(3)^2) + (-2*E(3)-E(3)^2)*v^(-1), v^2 + 2*v + 2 + 2*v^(-1) + v^(-2) ] gap> List(last,CycPol); [ P2^2P3P4P6, 2ER(-3)v^-4P2^2P'3P'6, -2ER(-3)v^-4P2^2P"3P"6, 2v^-4P3P4, (3-ER(-3))/2v^-1P2^2P'3P"6, (3+ER(-3))/2v^-1P2^2P"3P'6, v^-2P2^2P4 ]

`SchurElement( `

`H`, `phi` )

returns the Schur element (see `SchurElements`

) of the Cyclotomic Hecke
algebra `H` for the irreducible character of `H` of parameter `phi` (see
`CharParams`

in section CHEVIE utility functions);

gap> v := X( Cyclotomics );; v.name := "v";; gap> W:=ComplexReflectionGroup(4);; gap> H := Hecke( W, v); Hecke(G4,v) gap> SchurElement( H, [ [ 2, 5] ] ); 2 + 2*v^(-1) + 4*v^(-2) + 2*v^(-3) + 2*v^(-4)

`FactorizedSchurElements( `

`H` )

Let `H` be a (cyclotomic) Hecke algebra for the complex reflection group
`W`, whose parameters are all (Laurent) monomials in some variables
*x _{1},...,x_{n}*, and let

`FactorizedSchurElements`

returns a data structure which shows this
factorization. In `Mvp`

(see
Mvp).

gap> x:=Mvp("x");;y:=Mvp("y");; gap> H:=Hecke(ComplexReflectionGroup(4),[[1,x,y]]); Hecke(G4,[[1,x,y]]) gap> FactorizedSchurElements(H); [ x^-4y^-4P1P6(x)P1P6(y)P2(xy), P1P6(x)P1P6(xy^-1)P2(x^2y^-1), -x^-4y^5P1P6(y)P2(xy^-2)P1P6(xy^-1), -x^-1yP1(x)P1(y)P6(xy^-1)P2(xy), -x^-4yP1(x)P6(y)P1(xy^-1)P2(x^2y^-1), x^-1y^-1P6(x)P1(y)P2(xy^-2)P1(xy^-1), x^-2yP2(xy^-2)P2(xy)P2(x^2y^-1) ]

`FactorizedSchurElement( `

`H`, `phi` )

returns the FactorizedSchur element (see `FactorizedSchurElements`

) of the
Cyclotomic Hecke algebra `H` for the irreducible character of `H` of
parameter `phi` (see `CharParams`

in section CHEVIE utility functions);

gap> W:=ComplexReflectionGroup(4);; gap> H := Hecke( W, [[1,x,y]]); Hecke(G4,[[1,x,y]]) gap> FactorizedSchurElement( H, [ [ 2, 5] ] ); -x^-1yP1(x)P1(y)P6(xy^-1)P2(xy)

In **CHEVIE**, a `FactorizedSchurElement`

representing a Schur element of the
form *M∏ _{Φ} Φ(M_{Φ})* is a record with a field

`.factor`

which
holds the monomial `.vcyc`

which holds a list of record
describing each factor in the product. An element of `.vcyc`

representing a
term `.monomial`

holding
`.pol`

holding a `CycPol`

(see CycPol) representing
`Mvp`

with a single term.
The arithmetic operations `*`

and `/`

work for `FactorizedSchurElements`

:

gap> W:=ComplexReflectionGroup(4);; gap> H := Hecke( W, [[1,x,y]]); Hecke(G4,[[1,x,y]]) gap> p:=FactorizedSchurElement( H, [ [ 2, 5] ] ); -x^-1yP1(x)P1(y)P6(xy^-1)P2(xy) gap> p*p; x^-2y^2P1^2(x)P1^2(y)P6^2(xy^-1)P2^2(xy) gap> l:=FactorizedSchurElements(H);; gap> List(l,x->l[1]/x); [ 1, x^-4y^-4P1P6(y)P2(xy), -y^-9P1P6(x)P2(xy), -x^-3y^-5P6(x)P6(y), -y^-5P6(x)P1(y)P2(xy), x^-3y^-3P1(x)P6(y)P2(xy), x^-2y^-5P1P6(x)P1P6(y) ]

They also have `Print`

and `String`

methods, as well as the following
methods:

`Value`

:- this function works as for
`Mvp`

s, and partially or completely evaluates the given element keeping as much as possible the factorized form.

gap> W:=ComplexReflectionGroup(4);; gap> H := Hecke( W, [[1,x,y]]); Hecke(G4,[[1,x,y]]) gap> p:=FactorizedSchurElement( H, [ [ 2, 5] ] ); -x^-1yP1(x)P1(y)P6(xy^-1)P2(xy) gap> Value(p,["x",E(3)]); (3-ER(-3))/2y^-1P1P2P'6^2(y) gap> Value(last,["y",2]); -9ER(-3)/2

`Expand`

:- this function expands the element, converting it to an
`Mvp`

.

gap> Expand(p); 1-x^-1y+x^-1y^2-xy^-1+2xy-xy^3-2x^2-2y^2+x^2y^-1+x^2y^2+x^3+y^3-x^3y

`LowestPowerGenericDegrees( `

`H` )

`H` should be an Hecke algebra all of whose parameters are monomials in the
same indeterminate. `LowestPowerGenericDegrees`

returns a list holding, for
each character *χ*, the opposite of the valuation of the Schur element
of *χ* (for an Hecke algebra of a Coxeter group this is Lusztig's
*a*-function). One should note that this function first computes explicitly
the Schur elements, so for a one-parameter algebra,
`LowestPowerGenericDegrees(Group(H))`

may be much faster.

gap> q:=X(Cyclotomics);;q.name:="q";; gap> H:=Hecke(ComplexReflectionGroup(6),[q^2,q^4]); Hecke(G6,[q^2,q^4]) gap> LowestPowerGenericDegrees(H); [ 0, 10, 10, 2, 28, 28, 18, 4, 4, 18, 4, 4, 6, 12 ]

`HighestPowerGenericDegrees( `

`H` )

`H` should be an Hecke algebra all of whose parameters are monomials in the
same indeterminate. `HighestPowerGenericDegrees`

returns a list holding,
for each character *χ*, the degree of the Poincar'e polynomial minus
the degree of the Schur element of *χ* (for an Hecke algebra of a
Coxeter group this is Lusztig's *A*-function). One should note that this
function first computes explicitly the Schur elements, so for a
one-parameter algebra, `HighestPowerGenericDegrees(Group(H))`

may be much
faster.

gap> q:=X(Cyclotomics);;q.name:="q";; gap> H:=Hecke(ComplexReflectionGroup(6),[q^2,q^4]); Hecke(G6,[q^2,q^4]) gap> HighestPowerGenericDegrees(H); [ 0, 38, 38, 22, 44, 44, 42, 32, 32, 42, 32, 32, 34, 36 ]

`HeckeCentralMonomials( `

`HW` )

Returns the scalars by which the central element *T _{π}* acts on
irreducible representations of

gap> v := X( Cyclotomics );; v.name := "v";; gap> H := Hecke( CoxeterGroup( "H", 3 ), v );; gap> HeckeCentralMonomials( H ); [ v^0, v^30, v^12, v^18, v^10, v^10, v^20, v^20, v^15, v^15 ]

`Representations( `

`H`[, `l`])

This function returns the list of representations of the algebra `H`. Each
representation is returned as a list of the matrix images of the
generators. This function is only partially implemented for the Hecke
algebras of the groups *G _{31}, G_{32}* and

If there is a second argument `l`, it must be a list of indices (resp. a
single index), and only the representations with these indices (resp. that
index) in the list of all representations are returned.

gap> W:=ComplexReflectionGroup(4);; gap> q:=X(Cyclotomics);;q.name:="q";; gap> H:=Hecke(W,q); Hecke(G4,q) gap> Representations(H); [ [ [ [ q ] ], [ [ q ] ] ], [ [ [ E(3)*q^0 ] ], [ [ E(3)*q^0 ] ] ], [ [ [ E(3)^2*q^0 ] ], [ [ E(3)^2*q^0 ] ] ], [ [ [ E(3)*q^0, 0*q^0 ], [ -E(3)*q^0, E(3)^2*q^0 ] ], [ [ E(3)^2*q^0, E(3)^2*q^0 ], [ 0*q^0, E(3)*q^0 ] ] ], [ [ [ q, 0*q^0 ], [ -q, E(3)^2*q^0 ] ], [ [ E(3)^2*q^0, E(3)^2*q^0 ], [ 0*q^0, q ] ] ], [ [ [ q, 0*q^0 ], [ -q, E(3)*q^0 ] ], [ [ E(3)*q^0, E(3)*q^0 ], [ 0*q^0, q ] ] ], [ [ [ E(3)^2*q^0, 0*q^0, 0*q^0 ], [ (E(3)^2)*q + (E(3)^2), E(3)*q^0, 0*q^0 ], [ E(3)*q^0, q^0, q ] ], [ [ q, -q^0, E(3)*q^0 ], [ 0*q^0, E(3)*q^0, (-E(3)^2)*q + (-E(3)^2) ], [ 0*q^0, 0*q^0, E(3)^2*q^0 ] ] ] ]

The models implemented for imprimitive types *G(de,e,n)* for *n>2* and
*de>1*, excepted for *G(3,3,3), G(3,3,4), G(3,3,5)* and * G(4,4,3)*,
involve rational fractions, so work only with `Mvp`

parameters for `H`.

gap> W:=ComplexReflectionGroup(6,6,3);; gap> H:=Hecke(W,Mvp("x")); Hecke(G663,x) gap> Representations(H,6); [ [ [ -1, 0, 0 ], [ 0, -1/2+1/2x, -1/2-1/2x ], [ 0, -1/2-1/2x, -1/2+1/2x ] ], [ [ -1, 0, 0 ], [ 0, -1/2+1/2x, 1/2+1/2x ], [ 0, 1/2+1/2x, -1/2+1/2x ] ], [ [ (-x+x^2)/(1+x), (1+x^2)/(1+x), 0 ], [ 2x/(1+x), (-1+x)/(1+x), 0 ], [ 0, 0, -1 ] ] ]

`HeckeCharValues( `

`H`, `w`)

Let `W` be the group for which `H` is a Hecke algebra. `w` should be a word
in the generators of `W`. The function returns the values of the
irreducible characters of `H` on the image in `H` of the braid group
element defined by the word `w`, whenever possible. It first test if `w` is
a known representative of a conjugacy class in
`ChevieClassInfo(W).classtext`

. Then, if `W` is a Coxeter group, it returns
`HeckeCharValues`

on the element of the `"T"`

basis defined by `w`.
Finally, it tries to compute the matrix of `w` in the various
representations using `Representations`

.

gap> W:=ComplexReflectionGroup(4);; gap> q:=X(Cyclotomics);;q.name:="q";; gap> H:=Hecke(W,q); Hecke(G4,q) gap> HeckeCharValues(H,[1,2,1,2,1,2]); [ q^6, q^0, q^0, -2*q^0, -2*q^3, -2*q^3, 3*q^2 ]

gap3-jm

11 Mar 2019