Vector spaces
DecomposingGroupRepresentations.AbstractSpace — TypeAbstractSpace{F}An abstract type representing a vector space. The type F represents the number field (or number type) over which the vector space is defined.
DecomposingGroupRepresentations.basis — Methodbasis(::AbstractSpace)Returns a basis of the given vector space.
DecomposingGroupRepresentations.dim — Methoddim(::AbstractSpace) -> IntReturns the dimension of the given vector space.
PolySpace
DecomposingGroupRepresentations.PolySpace — TypePolySpace <: AbstractSpaceA structure representing a vector space generated by polynomials.
Direct sums
DecomposingGroupRepresentations.AbstractDirectSum — TypeAbstractDirectSum{F} <: AbstractSpace{F}An abstract type representing a direct sum of vector spaces over the field (or number type) F.
DecomposingGroupRepresentations.summands — Functionsummands(::AbstractDirectSum)Returns the summands of the given direct sum of vector spaces.
DecomposingGroupRepresentations.nsummands — Functionnsummands(::AbstractDirectSum) -> IntReturns the number of summands in the given direct sum of vector spaces.
Symmetric powers
DecomposingGroupRepresentations.AbstractSymmetricPower — TypeAbstractSymmetricPower{F} <: AbstractSpace{F}An abstract type representing a symmetric power of a vector space over the field (or number type) F.
DecomposingGroupRepresentations.base_space — Functionbase_space(::AbstractSymmetricPower) -> AbstractSpaceReturns the base vector space of the given symmetric power. I.e. for $\mathrm{Sym}^n(V)$, this function returns $V$.
DecomposingGroupRepresentations.power — Functionpower(::AbstractSymmetricPower) -> IntReturns the power of the given symmetric power. I.e. for $\mathrm{Sym}^n(V)$, this function returns $n$.
DecomposingGroupRepresentations.FixedDegreePolynomials — TypeFixedDegreePolynomials <: AbstractSymmetricPowerA type representing a space of polynomials of a fixed degree. I.e., for the variables $x_1, \dots, x_n$ and degree $d$ gives $\mathbb{F}[x_1, \dots, x_n]_{d}$, the space of polynomials in $n$ variables of degree $d$.
Constructors
FixedDegreePolynomials(vars::Vector{<:Variable}, degree::Int)Examples
julia> @polyvar x[1:3];
julia> V = FixedDegreePolynomials(x, 2)
FixedDegreePolynomials space of dimension 6
variables: x₁, x₂, x₃
degree: 2
julia> base_space(V)
VariableSpace with 3 variables
number type (or field): ComplexF64
variables: x₁, x₂, x₃
julia> power(V)
2Tensor products
DecomposingGroupRepresentations.AbstractTensorProduct — TypeAbstractTensorProduct{F} <: AbstractSpace{F}An abstract type representing a tensor product of vector spaces over the field F.
DecomposingGroupRepresentations.factors — Functionfactors(::AbstractTensorProduct)Returns an iterator through the factors of the given tensor product.
DecomposingGroupRepresentations.FixedMultidegreePolynomials — TypeFixedMultidegreePolynomials <: AbstractTensorProductA type representing a space of polynomials of a fixed multidegree in certain groups of variables. For example, for 2 groups of variables $x_1,\dots,x_m$ and $y_1,\dots,y_n$, and degrees $d_1$ and $d_2$, this gives
\[\mathbb{F}[x_1, \dots, x_m, y_1, \dots, y_n]_{(d_1, d_2)} \cong \mathbb{F}[x_1, \dots, x_m]_{d_1} \otimes \mathbb{F}[y_1, \dots, y_n]_{d_2},\]
the space of multi-homogeneous polynomials in $m+n$ variables of degree $d_1$ in the first group and $d_2$ in the second group.
Constructors
FixedMultidegreePolynomials(var_groups::Vector{Vector{<:Variable}}, degrees::Vector{Int})Examples
julia> @polyvar x[1:3] y[1:2];
julia> V = FixedMultidegreePolynomials([x, y], [1, 1])
FixedMultidegreePolynomials space of dimension 6
variable groups: [x₁, x₂, x₃], [y₁, y₂]
multidegree: [1, 1]
julia> fs = factors(V)
2-element Vector{FixedDegreePolynomials{ComplexF64, Commutative{CreationOrder}, Graded{LexOrder}}}:
FixedDegreePolynomials space of dimension 3
FixedDegreePolynomials space of dimension 2
julia> fs[2]
FixedDegreePolynomials space of dimension 2
variables: y₁, y₂
degree: 1HighestWeightModule
DecomposingGroupRepresentations.HighestWeightModule — TypeHighestWeightModule <: AbstractSpaceRepresents a highest weight module in the context of Lie group representations.
Examples
julia> @polyvar x y z;
julia> vars = [x, y, z];
julia> SO3 = LieGroup("SO", 3);
julia> a = MatrixGroupAction(SO3, [vars]);
julia> V = FixedDegreePolynomials(vars, 2);
julia> ρ = GroupRepresentation(a, V);
julia> irr_decomp = irreducibles(ρ)
IrreducibleDecomposition of SO(3)-action on 6-dimensional vector space
number of irreducibles: 2
dimensions of irreducibles: 1, 5
julia> H = space(irr_decomp[1])
HighestWeightModule of dimension 1
Lie group: SO(3)
highest weight: [0]
julia> basis(H)
1-element Vector{Polynomial{Commutative{CreationOrder}, Graded{LexOrder}, ComplexF64}}:
z² + y² + x²