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 GroupFunctionsjulia> λ = [2, 0];julia> U = su2_block(2, 1, (0.0, pi/3, 0.0));julia> χ = character(λ, U)2.0000000000000004 + 0.0imjulia> 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 GroupFunctionsjulia> 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 GroupFunctionsjulia> using LinearAlgebra: eigvalsjulia> λ = [2, 1, 0];julia> U = su2_block(3, 1, (0.0, pi/3, 0.0));julia> character(λ, U)6.464101615137754 + 0.0imjulia> schur_polynomial(λ, eigvals(U))6.464101615137754 - 6.106226635438361e-16imjulia> character(λ, U) ≈ schur_polynomial(λ, eigvals(U))true