# Named discrete groups¶

RepLAB provides constructions of standard discrete groups.

General (signed) permutation groups are the two groups below.

Then we distinguish particular groups.

## SymmetricGroup¶

class replab.SymmetricGroup(domainSize)

The symmetric group `S(n)`, i.e. all permutations over n = “domainSize” elements

Example

```>>> S5 = replab.S(5);
>>> S5.order
ans =
120
```

### Own members

irrep(self, partition, form)

Returns the irreducible representation of this symmetric group corresponding the given Young Diagram

Example

```>>> S5 = replab.S(5); % doctest: +cyclotomic
>>> rep = S5.irrep([3 2], 'specht');
>>> rep.dimension
5
>>> rep = S5.irrep([3 2], 'seminormal');
>>> rep.dimension
5
>>> rep = S5.irrep([3 2], 'orthogonal');
>>> rep.dimension
5
```
Parameters
• partition (`integer(1,*)`) – The partition corresponding the Young Diagram, with elements listed in decreasing order (e.g `[3 3 1]` represents the partition of 7 elements: `7 = 3+3+1`

• form (`'specht', 'seminormal', or 'orthogonal'`) – The form the irrep takes. Default is ‘specht’.

Note: ‘specht’ is slower to construct than ‘seminormal’ or ‘orthogonal’ but, unlike them, has integer entries.

Returns

The corresponding irreducible representation

Return type

`replab.Rep`

static irrepDimension(partition)

Returns the dimension of the irreducible representation of a symmetric group corresponding a Young Diagram

Example

```>>> S5 = replab.S(5);
>>> rep = S5.irrep([3 2]);
>>> rep.dimension
5
>>> S5.irrepDimension([3 2])
5
```
Parameters

partition (`integer(1,*)`) – The partition corresponding the Young Diagram, with elements listed in decreasing order (e.g `[5 3 1]` represents the partition of 9 elements `9 = 5+3+1`

Returns

The dimension of the corresponding irreducible representation.

Return type

integer

static make(n)

Constructs the symmetric over a given domain size

This static method keeps the constructed copies of `S(n)` in cache.

Parameters

domainSize (`integer`) – Domain size, must be > 0

Returns

The constructed or cached symmetric group

Return type

`SymmetricGroup`

## S¶

replab.S(domainSize)

Returns the symmetric group acting on a certain domain size

Parameters

domainSize (`integer`) – Domain size, must be >= 0

Returns

Symmetric group

Return type

`replab.PermutationGroup`

## SignedSymmetricGroup¶

replab.SignedSymmetricGroup

## A¶

replab.A(n)

Constructs the alternating group

Parameters

n (`integer`) – Group degree

Returns

The alternating group of degree `n`

Return type

`replab.PermutationGroup`

## C¶

replab.C(n)

Describes cyclic permutations over n = “domainSize” elements

Parameters

n (`integer`) – Cyclic group order and domain size

Returns

The cyclic group of given order/domain size

Return type

`replab.PermutationGroup`

## D¶

replab.D(n)

Constructs the dihedral group of order `2*n`

This corresponds to the group of symmetries of the polygon with `n` vertices

Parameters

n (`integer`) – Half the dihedral group order

Returns

The dihedral group permuting the vertices of the `n`-gon

Return type

`replab.PermutationGroup`

## KleinFourGroup¶

replab.KleinFourGroup()

Constructs the Klein Four-Group

This corresponds to the symmetry group of a non-square rectangle, and corresponds to the direct product `S2 x S2`.

Returns

The Klein four-group as a permutation gorup

Return type

`replab.PermutationGroup`

## QuaternionGroup¶

replab.QuaternionGroup()

Returns the quaternion group as a signed permutation group

The quaternion group acts on the `{1, j, k, l}` basis elements.

Returns

The quaternion group

Return type

`SignedPermutationGroup`