GAP functions for the calculation of the Rouquier blocks of the cyclotomic Ariki-Koike algebras

Using the results of my article "Rouquier blocks of the cyclotomic Arikie-Koike algebras", we have been able to create GAP functions which calculate and display the Rouquier blocks of any cyclotomic Ariki-Koike algebra (i.e., any cyclotomic Hecke algebra associated to a complex reflection group of type G(d,1,r)).
These functions are contained in the file RBAK.g (zip). Let us explain how they are used. From now on, let W be a complex reflection group of type G(d,1,r). Note that the Rouquier blocks associated with no essential hyperplane for W are trivial (each character is a block by itself).

EssentialHyperplanes

AKEssentialHuperplanes(W)
This function returns the essential hyperplanes for W.
gap> W:=ComplexReflectionGroup(3,1,2);;
gap> EssentialHyperplanes(W);
m_1-m_2-n=0
m_0-m_1-n=0
m_0-m_2-n=0
m_1-m_2=0
m_0-m_1=0
m_0-m_2=0
m_1-m_2+n=0
m_0-m_1+n=0
m_0-m_2+n=0
n=0

DisplayAKAllBlocks

DisplayAKAllBlocks(W)
It displays all essential hyperplanes for W and the Rouquier blocks associated with each.
gap> W:=ComplexReflectionGroup(3,1,2);;
gap> DisplayAKAllBlocks(W);
m_1-m_2-n=0
[ [ "..11" ], [ ".11.", ".1.1", "..2" ], [ ".2." ], [ "1..1" ], [ "1.1." ],
  [ "11.." ], [ "2.." ] ]
m_0-m_1-n=0
[ [ ".11." ], [ "11..", "1.1.", ".2." ], [ "2.." ], [ ".1.1" ], [ "1..1" ],
  [ "..11" ], [ "..2" ] ]
m_0-m_2-n=0
[ [ "..11" ], [ "11..", "1..1", "..2" ], [ "2.." ], [ ".1.1" ], [ "1.1." ],
  [ ".11." ], [ ".2." ] ]
m_1-m_2=0
[ [ ".11.", "..11" ], [ ".2.", "..2" ], [ ".1.1" ], [ "1.1.", "1..1" ],
  [ "11.." ], [ "2.." ] ]
m_0-m_1=0
[ [ "11..", ".11." ], [ "2..", ".2." ], [ "1.1." ], [ "1..1", ".1.1" ],
  [ "..11" ], [ "..2" ] ]
m_0-m_2=0
[ [ "11..", "..11" ], [ "2..", "..2" ], [ "1..1" ], [ "1.1.", ".1.1" ],
  [ ".11." ], [ ".2." ] ]
m_1-m_2+n=0
[ [ ".11." ], [ ".1.1", "..11", ".2." ], [ "..2" ], [ "1.1." ], [ "1..1" ],
  [ "11.." ], [ "2.." ] ]
m_0-m_1+n=0
[ [ "11.." ], [ "1.1.", ".11.", "2.." ], [ ".2." ], [ "1..1" ], [ ".1.1" ],
  [ "..11" ], [ "..2" ] ]
m_0-m_2+n=0
[ [ "11.." ], [ "1..1", "..11", "2.." ], [ "..2" ], [ "1.1." ], [ ".1.1" ],
  [ ".11." ], [ ".2." ] ]
n=0
[ [ "..11", "..2" ], [ ".1.1" ], [ ".11.", ".2." ], [ "1..1" ], [ "1.1." ],
  [ "11..", "2.." ] ]

AKAllBlocks

AKAllBlocks(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 and the characters are defined by their indexes in the list CharNames(W)
gap> W:=ComplexReflectionGroup(3,1,2);;
gap> AKAllBlocks(W);
[ rec(
      cond := [ 0, 1, -1, -1 ],
      block := [ [ 6 ], [ 4, 5, 9 ], [ 8 ], [ 3 ], [ 2 ], [ 1 ], [ 7 ] ] ),
  rec(
      cond := [ 1, -1, 0, -1 ],
      block := [ [ 4 ], [ 1, 2, 8 ], [ 7 ], [ 5 ], [ 3 ], [ 6 ], [ 9 ] ] ),
  rec(
      cond := [ 1, 0, -1, -1 ],
      block := [ [ 6 ], [ 1, 3, 9 ], [ 7 ], [ 5 ], [ 2 ], [ 4 ], [ 8 ] ] ),
  rec(
      cond := [ 0, 1, -1, 0 ],
      block := [ [ 4, 6 ], [ 8, 9 ], [ 5 ], [ 2, 3 ], [ 1 ], [ 7 ] ] ), 
  rec(
      cond := [ 1, -1, 0, 0 ],
      block := [ [ 1, 4 ], [ 7, 8 ], [ 2 ], [ 3, 5 ], [ 6 ], [ 9 ] ] ), 
  rec(
      cond := [ 1, 0, -1, 0 ],
      block := [ [ 1, 6 ], [ 7, 9 ], [ 3 ], [ 2, 5 ], [ 4 ], [ 8 ] ] ), 
  rec(
      cond := [ 0, 1, -1, 1 ],
      block := [ [ 4 ], [ 5, 6, 8 ], [ 9 ], [ 2 ], [ 3 ], [ 1 ], [ 7 ] ] ),
  rec(
      cond := [ 1, -1, 0, 1 ],
      block := [ [ 1 ], [ 2, 4, 7 ], [ 8 ], [ 3 ], [ 5 ], [ 6 ], [ 9 ] ] ),
  rec(
      cond := [ 1, 0, -1, 1 ],
      block := [ [ 1 ], [ 3, 6, 7 ], [ 9 ], [ 2 ], [ 5 ], [ 4 ], [ 8 ] ] ),
  rec(
      cond := [ 0, 0, 0, 1 ],
      block := [ [ 6, 9 ], [ 5 ], [ 4, 8 ], [ 3 ], [ 2 ], [ 1, 7 ] ] ) ]

DisplayAKRouquierBlocks

DisplayAKRouquierBlocks(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(3,1,2);;
gap> H:=Hecke(W,[[x,E(3),E(3)^2],[x,-1]]);
Hecke(ComplexReflectionGroup(3,1,2),[ x, x ])
gap> DisplayAKRouquierBlocks(H);
[ [ "11..", "1.1.", "1..1", ".2.", "..2" ], [ ".11.", "..11" ], [ ".1.1" ], [ "2.." ] ]

AKRouquierBlocks

AKRouquierBlocks(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(3,1,2);;
gap> H:=Hecke(W,[[x,E(3),E(3)^2],[x,-1]]);
Hecke(ComplexReflectionGroup(3,1,2),[ x, x ])
gap> AKRouquierBlocks(H);
[ [ 1, 2, 3, 8, 9 ], [ 4, 6 ], [ 5 ], [ 7 ] ]