Characters

character(λ, U) returns the trace of the irrep, see the background page for the theory.

Character as a trace

The character is the trace of the representation matrix, so it equals the sum of the diagonal group functions (and is indeed defined in the code as such):

julia> using GroupFunctions
julia> λ = [2, 0];
julia> U = su2_block(2, 1, (0.0, pi/3, 0.0));
julia> χ = character(λ, U)2.0000000000000004 + 0.0im
julia> values, basis = group_function(λ, U);
julia> χ ≈ sum(values[i, i] for i in axes(values, 1))true

Symbolic character

Omit U for the character as a symbolic polynomial:

julia> using GroupFunctions
julia> character([2, 0])u_2_1*u_1_2 + u_2_2*u_1_1 + u_1_1^2 + u_2_2^2

Schur polynomial on eigenvalues

A character depends only on the eigenvalues of U. schur_polynomial evaluates it directly on them (without a costly group_function computation), matching character:

julia> using GroupFunctions
julia> using LinearAlgebra: eigvals
julia> λ = [2, 1, 0];
julia> U = su2_block(3, 1, (0.0, pi/3, 0.0));
julia> character(λ, U)6.464101615137754 + 0.0im
julia> schur_polynomial(λ, eigvals(U))6.464101615137754 - 6.106226635438361e-16im
julia> character(λ, U) ≈ schur_polynomial(λ, eigvals(U))true