DecompositionMatrix(H, n [,Ordering])
DecompositionMatrix(H, filename [,Ordering])
The  function DecompositionMatrix returns  the  decomposition matrix
D  of 'H'(Sym_n) where H is  a Hecke algebra record returned by
the function Specht (or Schur). DecompositionMatrix first checks
to see whether the  required decomposition matrix  exists as a library
file (checking first  in the current directory,  next in the directory
specified  by   SpechtDirectory,   and  finally  in  the    Specht
libraries).        If         H.Pq
exists,        DecompositionMatrix next    looks for   crystallized
decomposition     matrices       (see    CrystalDecompositionMatrix
CrystalDecompositionMatrix).  If the decomposition matrix d is not
stored in te library DecompositionMatrix will calculate d when H
is a Hecke algebra with  a base field  R of characteristic zero, and
will   return  false otherwise    (in    which case  the    function
CalculateDecompositionMatrix  CalculateDecompositionMatrix can  be
used to force Specht to try and calculate this matrix).
For   Hecke  algebras defined   over  fields of   characteristic zero,
Specht  uses  the algorithm    of [LLT] to  calculate  decomposition
matrices (this  feature can  be   disabled by unbinding   H.Pq). The
decomposition matrices for  the q--Schur algebras for <n> le 10 are
contained  in  the Specht  library, as are  those  for the symmetric
group over fields of positive characteristic when <n><15.
Once a decomposition matrix is known, Specht  keeps an internal copy
of it which is  used by the functions H.S,  H.P, and  H.D; these
functions also read decomposition matrix files as needed.
If  you  set the variable   SpechtDirectory, then Specht will also
search for decomposition matrix files  in this directory. The files in
the current directory override those in SpechtDirectory and those in
the Specht libraries.
In the second form  of the  function,  when a filename is  supplied,
DecompositionMatrix will  read the decomposition  matrix in the file
filename, and this matrix  will become  Specht's internal copy  of
this matrix.
By default,  the rows  and columns  of the decomposition  matrices are
ordered   lexicographically.  This     can be  changed  by   supplying
DecompositionMatrix with     an    ordering   function   such     as
LengthLexicographic   or ReverseDominance.  You   do not  need  to
specify    the   ordering  you       want    every  time    you   call
DecompositionMatrix; Specht will  keep the same ordering until you
change it again.  This ordering can also be  set ``by hand''  using
the variable H.Ordering. 
gap> DecompositionMatrix(Specht(3),6,LengthLexicographic); 6
|1 5,1
|1 1 4,2
|. . 1 3^2
|. 1 . 1 4,1^2
|. 1 . . 1 3,2,1
|1 1 . 1 1 1 2^3
|1 . . . . 1 3,1^3
|. . . . 1 1 2^2,1^2
|. . . . . . 1 2,1^4
|. . . 1 . 1 . 1^6
| . . . 1 . . . 
Once you have a decomposition  matrix it is often  nice to be able  to
print it. The on screen version is often  good enough; there is also a
TeX  command   which generates a  LaTeX   version. There  are also
functions  for converting  Specht decomposition matrices  into GAP
matrices     and    visa     versa  (see   MatrixDecompositionMatrix
MatrixDecompositionMatrix     and        DecompositionMatrixMatrix
DecompositionMatrixMatrix).
Using  the      function        InducedDecompositionMatrix      (see
InducedDecompositionMatrix),    it    is possible   to   induce    a
decomposition  matrix.    See    also        SaveDecompositionMatrix
SaveDecompositionMatrix           and          IsNewIndecomposable
IsNewIndecomposable,  Specht   Specht,  Schur    Schur,  and
CrystalDecompositionMatrix   CrystalDecompositionMatrix.      This
function requires the package ``specht'' (see RequirePackage).
GAP 3.4.4