Using the algorithm explained in Chapter 4 of my Ph.D. Thesis, we have been
able to calculate the Rouquier blocks associated with all essential
hyperplanes (and thus the Rouquier blocks of all cyclotomic Hecke
algebras) for all exceptional irreducible complex reflection
groups. We have stored these data in a file and have created functions
which display them.
These functions are contained in the file
RouquierBlocks.g (zip), along with the data needed for them
to work.
Let us explain how they are used. From now on, let W be an
exceptional irreducible complex reflection group.
EssentialHuperplanes(W,p)This function returns
gap> W:=ComplexReflectionGroup(4);; gap> EssentialHyperplanes(W,0); c_1-c_2=0 c_0-c_1=0 c_0-c_2=0 2c_0-c_1-c_2=0 c_0-2c_1+c_2=0 c_0+c_1-2c_2=0 gap> EssentialHyperplanes(W,2); 2c_0-c_1-c_2=0 c_0-2c_1+c_2=0 c_0+c_1-2c_2=0 c_0-c_1=0 c_1-c_2=0 c_0-c_2=0 gap> EssentialHyperplanes(W,3); c_1-c_2=0 c_0-c_1=0 c_0-c_2=0 gap> EssentialHyperplanes(W,5); Error, The number p should divide the order of the group
DisplayAllBlocks(W)It displays all essential hyperplanes for W and the Rouquier blocks associated with each.
gap> W:=ComplexReflectionGroup(4);; gap> DisplayAllBlocks(W); No essential hyperplane [["phi{1,0}"],["phi{1,4}"],["phi{1,8}"], ["phi{2,5}"],["phi{2,3}"],["phi{2,1}"],["phi{3,2}"]] c_1-c_2=0 [["phi{1,0}"],["phi{1,4}","phi{1,8}","phi{2,5}"], ["phi{2,3}","phi{2,1}"],["phi{3,2}"]] c_0-c_1=0 [["phi{1,0}","phi{1,4}","phi{2,1}"],["phi{1,8}"], ["phi{2,5}","phi{2,3}"],["phi{3,2}"]] c_0-c_2=0 [["phi{1,0}","phi{1,8}","phi{2,3}"],["phi{1,4}"], ["phi{2,5}","phi{2,1}"],["phi{3,2}"]] 2c_0-c_1-c_2=0 [["phi{1,0}","phi{2,5}","phi{3,2}"],["phi{1,4}"], ["phi{1,8}"], ["phi{2,3}"],["phi{2,1}"]] c_0-2c_1+c_2=0 [["phi{1,0}"],["phi{1,4}","phi{2,3}","phi{3,2}"], ["phi{1,8}"],["phi{2,5}"],["phi{2,1}"]] c_0+c_1-2c_2=0 [["phi{1,0}"],["phi{1,4}"],["phi{1,8}","phi{2,1}","phi{3,2}"], ["phi{2,5}"],["phi{2,3}"]]
AllBlocks(W)It displays the same data as
DisplayAllBlocks(W)
in a way easy to work with:
the essential hyperplanes are represented by the vectors cond
(where cond:=[]
means "No essential hyperplane") and
the characters are defined by their indexes in the list
CharNames(W)
gap> W:=ComplexReflectionGroup(4);; gap> AllBlocks(W); [rec(cond:=[ ],block:=[[1],[2],[3],[4],[5],[6],[7]]), rec(cond:=[0,1,-1],block:=[[1],[2,3,4],[5,6],[7]]), rec(cond:=[1,-1,0],block:=[[1,2,6],[3],[4,5],[7]]), rec(cond:=[1,0,-1],block:=[[1,3,5],[2],[4,6],[7]]), rec(cond:=[2,-1,-1],block:=[[1,4,7],[2],[3],[5],[6]]), rec(cond:=[1,-2,1],block:=[[1],[2,5,7],[3],[4],[6]]), rec(cond:=[1,1,-2],block:=[[1],[2],[3,6,7],[4],[5]])]
DisplayRouquierBlocks(H)Given a cyclotomic Hecke algebra H associated with W (for its construction, the user should refer to Chapter 82 of the GAP manual), this functions returns its Rouquier blocks using the characters' names.
gap> W:=ComplexReflectionGroup(4);; gap> H:=Hecke(W,[[1,E(3)*x,E(3)^2*x^2]]);; gap> DisplayRouquierBlocks(H); [["phi{1,0}"],["phi{1,4}","phi{2,3}","phi{3,2}"], ["phi{1,8}"],["phi{2,5}"],[ "phi{2,1}"]]
RouquierBlocks(H)Given a cyclotomic Hecke algebra H associated with W this functions returns its Rouquier blocks using the characters' index in the list
CharNames(W)
.
gap> W:=ComplexReflectionGroup(4);; gap> H:=Hecke(W,[[1,E(3)*x,E(3)^2*x^2]]);; gap> RouquierBlocks(H); [ [ 1 ], [ 2, 5, 7 ], [ 3 ], [ 4 ], [ 6 ] ]
DisplayAllpBlocks(W,p)It displays all p-essential hyperplanes for W and the p-Rouquier blocks associated with each.
gap> W:=ComplexReflectionGroup(4);; gap> DisplayAllpBlocks(W,3); No essential hyperplane [["phi{1,0}"],["phi{1,4}"],["phi{1,8}"], ["phi{2,5}"],["phi{2,3}"],["phi{2,1}"],["phi{3,2}"]] c_1-c_2=0 [["phi{1,0}"],["phi{1,4}","phi{1,8}"], ["phi{2,5}"],["phi{2,3}","phi{2,1}"],["phi{3,2}"]] c_0-c_1=0 [["phi{1,0}","phi{1,4}"],["phi{1,8}"], ["phi{2,5}","phi{2,3}"],["phi{2,1}"],["phi{3,2}"]] c_0-c_2=0 [["phi{1,0}","phi{1,8}"],["phi{1,4}"], ["phi{2,5}","phi{2,1}"],["phi{2,3}"],["phi{3,2}"]]
AllpBlocks(W,p)It displays the same data as
DisplayAllpBlocks(W,p)
in a way easy to work with:
the p-essential hyperplanes are represented by the vectors cond
(where cond:=[]
means "No essential hyperplane") and
the characters are defined by their indexes in the list
CharNames(W)
gap> W:=ComplexReflectionGroup(4);; gap> AllpBlocks(W,3); [rec(cond:=[ ],block:=[[1],[2],[3],[4],[5],[6],[7]]), rec(cond:=[0,1,-1],block:=[[1],[2,3],[4],[5,6],[7]]), rec(cond:=[1,-1,0],block:=[[1,2],[3],[4,5],[6],[7]]), rec(cond:=[1,0,-1],block:=[[1,3],[2],[4,6],[5],[7]])]
DisplaypRouquierBlocks(H,p)Given a cyclotomic Hecke algebra H associated with W, this functions returns its p-Rouquier blocks using the characters' names.
gap> W:=ComplexReflectionGroup(4);; gap> H:=Hecke(W,[[1,E(3)*x,E(3)^2*x^2]]);; gap> DisplaypRouquierBlocks(H,2); [["phi{1,0}"],["phi{1,4}","phi{2,3}","phi{3,2}"], ["phi{1,8}"],["phi{2,5}"],["phi{2,1}"]] gap> DisplaypRouquierBlocks(H,3); [["phi{1,0}"],["phi{1,4}"],["phi{1,8}"], ["phi{2,5}"],["phi{2,3}"],["phi{2,1}"],["phi{3,2}"]]
pRouquierBlocks(H,p)Given a cyclotomic Hecke algebra H associated with W this functions returns its p-Rouquier blocks using the characters' index in the list
CharNames(W)
.
gap> W:=ComplexReflectionGroup(4);; gap> H:=Hecke(W,[[1,E(3)*x,E(3)^2*x^2]]);; gap> pRouquierBlocks(H,2); [ [ 1 ], [ 2, 5, 7 ], [ 3 ], [ 4 ], [ 6 ] ] gap> pRouquierBlocks(H,3); [ [ 1 ], [ 2 ], [ 3 ], [ 4 ], [ 5 ], [ 6 ], [ 7 ] ]
[ "phi{6,18}" , "phi{6,14}" , "phi{16,16}" , "phi{24,14}", "phi{24,6}" , "phi{30,10}'", "phi{30,10}''", "phi{40,10}", "phi{40,14}", "phi{64,11}" , "phi{64,9}" ]is a 2-block associated with no essential hyperplane or union of 2-blocks.