# 71.20 CalculateDecompositionMatrix

`CalculateDecompositionMatrix(H,n)`

`CalculateDecompositionMatrix(H,n)` is similar to the function `DecompositionMatrix` DecompositionMatrix in that both functions try to return the decomposition matrix `d` of 'H'(Sym_n); the difference is that this function tries to calculate this matrix whereas the later reads the matrix from the library files (in characteristic zero both functions apply the algorithm of [LLT] to compute~`d`). In effect this function is only needed when working with Hecke algebras defined over fields of positive characteristic (or when you wish to avoid the libraries).

For example, if you want to do calculations with the decomposition matrix of the symmetrix group Sym_{15} over a field of characteristic two, `DecompositionMatrix` returns false whereas `CalculateDecompositionMatrix`; returns a part of the decomposition matrix.

```gap> H:=Specht(2,2);
Specht(e=2, p=2, S(), P(), D())
gap> d:=DecompositionMatrix(H,15);
# This decomposition matrix is not known; use CalculateDecompositionMatrix()
# or InducedDecompositionMatrix() to calculate with this matrix.
false
gap> d:=CalculateDecompositionMatrix(H,15);;
# Projective indecomposable P(6,4,3,2) not known.
# Projective indecomposable P(6,5,3,1) not known.
...
gap> MissingIndecomposables(d);
The following projectives are missing from <d>:
[ 15 ]  [ 14, 1 ]  [ 13, 2 ]  [ 12, 3 ]  [ 12, 2, 1 ]  [ 11, 4 ]
[ 11, 3, 1 ]  [ 10, 5 ]  [ 10, 4, 1 ]  [ 10, 3, 2 ]  [ 9, 6 ]  [ 9, 5, 1 ]
[ 9, 4, 2 ]  [ 9, 3, 2, 1 ]  [ 8, 7 ]  [ 8, 6, 1 ]  [ 8, 5, 2 ]  [ 8, 4, 3]
[ 8, 4, 2, 1 ]  [ 7, 6, 2 ]  [ 7, 5, 3 ]  [ 7, 5, 2, 1 ]  [ 7, 4, 3, 1 ]
[ 6, 5, 4 ]  [ 6, 5, 3, 1 ]  [ 6, 4, 3, 2 ]```

Actually, you are much better starting with the decompositon matrix of Sym_{14} and then applying `InducedDecompositionMatrix` to this matrix.

See also DecompositionMatrix `DecompositionMatrix`. This function requires the package ``specht'' (see RequirePackage).

GAP 3.4.4
April 1997