Goto Chapter: Top 1 2 3 4 5 6 Ind

### 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

Goto Chapter: Top 1 2 3 4 5 6 Ind

generated by GAPDoc2HTML