Group actions
DecomposingGroupRepresentations.AbstractGroupAction — TypeAbstractGroupAction{T<:GroupType, F}An abstract type representing a group action. It is used to define how a group acts on a given vector space.
DecomposingGroupRepresentations.group — Methodgroup(::AbstractGroupAction) -> AbstractGroupReturns the group associated with a given AbstractGroupAction.
DecomposingGroupRepresentations.algebra — Methodalgebra(a::AbstractGroupAction{Lie}) -> AbstractLieAlgebraReturns the associated Lie algebra of the Lie group of the action.
MatrixGroupAction
DecomposingGroupRepresentations.MatrixGroupAction — TypeMatrixGroupAction{T<:GroupType, F} <: AbstractGroupAction{T, F}Represents a group action of a matrix group on a set of variables.
Constructors
MatrixGroupAction(G::S, vectors::AbstractVector{<:AbstractVector{V}}) where {S<:AbstractGroup, V<:Variable}Examples
julia> @polyvar x[1:3] y[1:3];
julia> SO3 = LieGroup("SO", 3);
julia> MatrixGroupAction(SO3, [x, y])
MatrixGroupAction of SO(3)
2 vectors under action: [x₁, x₂, x₃], [y₁, y₂, y₃]ScalingLieGroupAction
DecomposingGroupRepresentations.ScalingLieGroupAction — TypeScalingLieGroupAction <: AbstractGroupActionRepresents an action of a scaling Lie group on a set of variables.
Constructors
ScalingLieGroupAction(v::Vector{<:Variable})
ScalingLieGroupAction(V::AbstractMatrix{<:Variable})
ScalingLieGroupAction(G::ScalingLieGroup, v::Vector{<:Variable})Examples
julia> @polyvar x[1:2, 1:3];
julia> ScalingLieGroupAction(x)
ScalingLieGroupAction of (ℂˣ)³
vector under action: [x₁₋₁, x₂₋₁, x₁₋₂, x₂₋₂, x₁₋₃, x₂₋₃]
action:
x₁₋₁ ↦ λ₁x₁₋₁, x₂₋₁ ↦ λ₁x₂₋₁
x₁₋₂ ↦ λ₂x₁₋₂, x₂₋₂ ↦ λ₂x₂₋₂
x₁₋₃ ↦ λ₃x₁₋₃, x₂₋₃ ↦ λ₃x₂₋₃
julia> ScalingLieGroupAction(x[:])
ScalingLieGroupAction of ℂˣ
vector under action: [x₁₋₁, x₂₋₁, x₁₋₂, x₂₋₂, x₁₋₃, x₂₋₃]
action:
x₁₋₁ ↦ λx₁₋₁, x₂₋₁ ↦ λx₂₋₁, x₁₋₂ ↦ λx₁₋₂, x₂₋₂ ↦ λx₂₋₂, x₁₋₃ ↦ λx₁₋₃, x₂₋₃ ↦ λx₂₋₃DirectProductGroupAction
DecomposingGroupRepresentations.DirectProductGroupAction — TypeDirectProductGroupAction <: AbstractGroupActionRepresents an action of a direct product group on a vector space.
Examples
julia> @polyvar x[1:3, 1:2];
julia> SO3 = LieGroup("SO", 3);
julia> a₁ = MatrixGroupAction(SO3, eachcol(x))
MatrixGroupAction of SO(3)
2 vectors under action: [x₁₋₁, x₂₋₁, x₃₋₁], [x₁₋₂, x₂₋₂, x₃₋₂]
julia> a₂ = ScalingLieGroupAction(x)
ScalingLieGroupAction of (ℂˣ)²
vector under action: [x₁₋₁, x₂₋₁, x₃₋₁, x₁₋₂, x₂₋₂, x₃₋₂]
action:
x₁₋₁ ↦ λ₁x₁₋₁, x₂₋₁ ↦ λ₁x₂₋₁, x₃₋₁ ↦ λ₁x₃₋₁
x₁₋₂ ↦ λ₂x₁₋₂, x₂₋₂ ↦ λ₂x₂₋₂, x₃₋₂ ↦ λ₂x₃₋₂
julia> a₁ × a₂
DirectProductGroupAction of SO(3) × (ℂˣ)²
lie actions: