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