71.5 DecompositionMatrix

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).

Previous Up Top Next
Index

GAP 3.4.4
April 1997