Introduction

DecomposingGroupRepresentations.jl is a Julia package that provides an API for decomposing representations of reductive groups acting on multivariate polynomials using DynamicPolynomials.jl.

Quick start

julia> using DecomposingGroupRepresentations
julia> @polyvar x y z(x, y, z)
julia> vars = [x, y, z]3-element Vector{Variable{Commutative{CreationOrder}, Graded{LexOrder}}}: x y z
julia> SO3 = LieGroup("SO", 3)LieGroup SO(3) number type (or field): ComplexF64 weight type: Int64 Lie algebra properties: dimension: 3 rank (dimension of Cartan subalgebra): 1
julia> a = MatrixGroupAction(SO3, [vars])MatrixGroupAction of SO(3) 1 vectors under action: [x, y, z]
julia> V = FixedDegreePolynomials(vars, 2)FixedDegreePolynomials space of dimension 6 variables: x, y, z degree: 2
julia> ρ = GroupRepresentation(a, V)GroupRepresentation of SO(3) on 6-dimensional vector space Lie group: SO(3)
julia> irrs = IrreducibleDecomposition(ρ)IrreducibleDecomposition of SO(3)-action on 6-dimensional vector space number of irreducibles: 2 dimensions of irreducibles: 1, 5
julia> [highest_weight(irr) for irr in irreducibles(irrs)]2-element Vector{Weight{Int64}}: Weight: [0] Weight: [2]
julia> [vector(hw_vector(irr)) for irr in irreducibles(irrs)]2-element Vector{Polynomial{Commutative{CreationOrder}, Graded{LexOrder}, ComplexF64}}: z² + y² + x² -y² + (0.0 + 2.0im)xy + x²
julia> iso = IsotypicDecomposition(ρ)IsotypicDecomposition of SO(3)-action on 6-dimensional vector space number of isotypic components: 2 multiplicities of irreducibles: 1, 1 dimensions of irreducibles: 1, 5 dimensions of isotypic components: 1, 5
julia> basis(iso[Weight([0])]) # invariant1-element Vector{Polynomial{Commutative{CreationOrder}, Graded{LexOrder}, ComplexF64}}: z² + y² + x²
julia> H₂ = basis(iso[Weight([2])]) # spherical harmonics5-element Vector{Polynomial{Commutative{CreationOrder}, Graded{LexOrder}, ComplexF64}}: -y² + (0.0 + 2.0im)xy + x² (0.0 + 1.0im)yz + xz (2.0 + 0.0im)z² + -y² + -x² (0.0 + 1.0im)yz + -xz -y² + (-0.0 - 2.0im)xy + x²
julia> rref(H₂)5-element Vector{Polynomial{Commutative{CreationOrder}, Graded{LexOrder}, ComplexF64}}: z² + -x² yz y² + -x² xz xy