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) -> AbstractGroup
Returns the group associated with a given AbstractGroupAction
.
DecomposingGroupRepresentations.algebra
— Methodalgebra(a::AbstractGroupAction{Lie}) -> AbstractLieAlgebra
Returns 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 <: AbstractGroupAction
Represents 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 <: AbstractGroupAction
Represents 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: