This package allows computations of various decompositions of a representation \(\rho : G \to GL(V)\) where \(G\) is finite and \(V\) is a finite-dimensional \(\mathbb{C}\)-vector space.

To install this package, refer to the installation instructions in the README file in the source code. It is located here: https://github.com/gap-packages/RepnDecomp/blob/master/README.md.

Throughout this documentation, mathematical terminology is used e.g. representation. It is clear what is meant mathematically, but it is not entirely clear what is meant in terms of GAP types - what are you supposed to pass in when I say "pass in a representation". Occasionally I will not even mention what we are passing in and assume the reader knows that `rho` or \(\rho\) refers to a representation. A representation we can use is, in GAP, a homomorphism from a finite group to a matrix group where all matrices have coefficients in a cyclotomic field (`Cyclotomics`

is the union of all such fields in GAP). You can check whether something you want to pass is suitable with the function `IsFiniteGroupLinearRepresentation`

(4.1-1).

Here's an example of a representation `rho` in GAP:

gap> G := SymmetricGroup(3); Sym( [ 1 .. 3 ] ) gap> images := List(GeneratorsOfGroup(G), g -> PermutationMat(g, 3)); [ [ [ 0, 1, 0 ], [ 0, 0, 1 ], [ 1, 0, 0 ] ], [ [ 0, 1, 0 ], [ 1, 0, 0 ], [ 0, 0, 1 ] ] ] gap> rho := GroupHomomorphismByImages(G, Group(images)); [ (1,2,3), (1,2) ] -> [ [ [ 0, 1, 0 ], [ 0, 0, 1 ], [ 1, 0, 0 ] ], [ [ 0, 1, 0 ], [ 1, 0, 0 ], [ 0, 0, 1 ] ] ]

The algorithms implemented can be divided into two groups: methods due to Serre from his book Linear Representations of Finite Groups, and original methods due to the authors of this package.

The default is to use the algorithms due to Serre. If you pass the option `method := "alternate"`

to a function, it will use the alternate method. Passing the option `parallel`

will try to compute in parallel as much as possible. See the individual functions for options you can pass.

The main functions implemented in this package are:

For decomposing representations into canonical and irreducible direct summands:

`CanonicalDecomposition`

(5.3-1)`IrreducibleDecomposition`

(5.3-2)`IrreducibleDecompositionCollected`

(5.3-3)

For block diagonalising representations:

For computing centraliser rings:

For testing isomorphism and computing isomorphisms (intertwining operators) between representations:

`LinearRepresentationIsomorphism`

(2.1-1)`AreRepsIsomorphic`

(2.2-1)`IsLinearRepresentationIsomorphism`

(2.2-2)

For testing unitarity of representations and the unitarisation of representations:

generated by GAPDoc2HTML