GAP (RepnDecomp) - Chapter 6: Centralizer (commutant) rings

Goto Chapter: Top 1 2 3 4 5 6 Ind
[Top of Book] [Contents] [Previous Chapter] [Next Chapter]

[MathJax off]

6 Centralizer (commutant) rings
6.1 Finding a basis for the centralizer
6.1-1 CentralizerBlocksOfRepresentation
6.1-2 CentralizerOfRepresentation
6.2 Using the centralizer for computations
6.2-1 ClassSumCentralizer
6.2-2 ClassSumCentralizerNC

### 6 Centralizer (commutant) rings

#### 6.1 Finding a basis for the centralizer

##### 6.1-1 CentralizerBlocksOfRepresentation

`‣ CentralizerBlocksOfRepresentation`( rho ) | ( function )

Returns: List of vector space generators for the centralizer ring of \(\rho(G)\), written in the basis given by `BlockDiagonalBasisOfRepresentation` (5.1-1). The matrices are given as a list of blocks.

Let \(G\) have irreducible representations \(\rho_i\) with multiplicities \(m_i\). The centralizer has dimension \(\sum_i m_i^2\) as a \(\mathbb{C}\)-vector space. This function gives the minimal number of generators required.

    gap> G := DihedralGroup(8);;
    gap> irreps := IrreducibleRepresentations(G);;
    gap> # rho is the sum of two isomorphic degree 1 irreps, and a degree
    > # 2 irrep.
    > rho := DirectSumOfRepresentations([irreps[4], irreps[4], irreps[5]]);;
    gap> # Compute a basis for the centralizer (in blocks)
    > cent_basis_blocks := CentralizerBlocksOfRepresentation(rho);;
    gap> # Verify that the dimension is the sum of the multiplicities squared,
    > # in this case 2^2 + 1 = 5.
    > Length(cent_basis_blocks) = 5;
    true

##### 6.1-2 CentralizerOfRepresentation

`‣ CentralizerOfRepresentation`( arg ) | ( function )

Returns: List of vector space generators for the centralizer ring of \(\rho(G)\).

This gives the same result as `CentralizerBlocksOfRepresentation` (6.1-1), but with the matrices given in their entirety: not as lists of blocks, but as full matrices.

    gap> # This is the actual basis for the centralizer.
    > cent_basis := CentralizerOfRepresentation(rho);;
    gap> # All matrices in the span should commute with the image of rho.
    > ForAll(G, g -> ForAll(cent_basis, M -> Image(rho, g)*M = M*Image(rho,g)));
    true

#### 6.2 Using the centralizer for computations

##### 6.2-1 ClassSumCentralizer

`‣ ClassSumCentralizer`( rho, class, cent_basis ) | ( function )

Returns: \(\sum_{s \in t^G} \rho(s)\), where \(t\) is a representative of the conjugacy class class of \(G\).

We require that rho is unitary. Uses the given orthonormal basis (with respect to the inner product \(\langle A, B \rangle = \mbox{Trace}(AB^*)\)) for the centralizer ring of rho to calculate the sum of the conjugacy class class quickly, i.e. without summing over the class.

NOTE: Orthonormality of cent_basis and unitarity of rho are checked. See `ClassSumCentralizerNC` (6.2-2) for a version of this function without checks. The checks are not very expensive, so it is recommended you use the function with checks.

    gap> # Now we have a basis for the centralizer, we can sum a conjugacy class
    > # of G.
    > class := List(ConjugacyClasses(G)[3]);;
    gap> # We can do the computation naively, with no centralizer basis given:
    > sum1 := ClassSumCentralizer(rho, class, fail);;
    gap> # Before summing with th centralizer basis given, we need to
    > # orthonormalize it. It's already orthogonal, but not normal:
    > orth_basis := OrthonormalBasis@RepnDecomp(cent_basis);;
    gap> IsOrthonormalSet(orth_basis, InnerProduct@RepnDecomp);
    true
    gap> # And with the centralizer given, should be more efficient in certain
    > # cases (small degree, low multiplicities, but very large group)
    > sum2 := ClassSumCentralizer(rho, class, orth_basis);;
    gap> # Should be the same:
    > sum1 = sum2;
    true

##### 6.2-2 ClassSumCentralizerNC

`‣ ClassSumCentralizerNC`( rho, class, cent_basis ) | ( function )

The same as `ClassSumCentralizer` (6.2-1), but does not check the basis for orthonormality or the representation for unitarity.

    gap> # The very same as the above, but with no checks on orthonormality.
    > sum3 := ClassSumCentralizerNC(rho, class, orth_basis);;
    gap> sum1 = sum3;
    true

[Top of Book] [Contents] [Previous Chapter] [Next Chapter]
Goto Chapter: Top 1 2 3 4 5 6 Ind

generated by GAPDoc2HTML