Algorithms for unitary representations
Unitarising representations A record with fields basis_change and unitary_rep such that rho is isomorphic to unitary_rep, differing by a change of basis basis_change. Meaning if L is basis_change and \rho_u is the unitarised rho, then \forall g \in G: \; L \rho_u(g) L^{-1} = \rho(g). Unitarises the given representation quickly, summing over the group using a base and strong generating set and unitarising with .

<#Include Label="Example_UnitaryRepresentation">

Whether rho is unitary, i.e. for all g \in G, \rho(g^{-1}) = \rho(g)^* (where ^* denotes the conjugate transpose).

<#Include Label="Example_IsUnitaryRepresentation">

a record with two fields, L and D such that A = L\mbox{diag}(D)L^*. D is the 1 \times n vector which gives the diagonal matrix \mbox{diag}(D) (where A is an n \times n matrix).

<#Include Label="Example_LDLDecomposition">

Decomposing unitary representations a list of irreps in the decomposition of rho NOTE: this is not implemented yet. Assumes that rho is unitary and uses an algorithm due to Dixon to decompose it into unitary irreps.