An interface for Lie algebras

LieGroups.LieAlgebra β€” Type
LieAlgebra{𝔽, G} <: AbstractManifold{𝔽}

Represent the Lie algebra $\mathfrak g$, that is a $𝔽$ vector space with an associated lie_bracket $[β‹…,β‹…]: \mathfrak gΓ—\mathfrak g β†’ \mathfrak g$ which fulfills

  1. $[X,X] = 0$ for all $X ∈ \mathfrak g$
  2. The Jacobi identity $[X, [Y,Z]] = [[X,Y],Z] = [Y, [X,Z]]$ holds for all $X, Y, Z ∈ \mathfrak g$.

The Lie algebras considered here are those related to a LieGroup $\mathcal G$, namely the tangent space $T_{\mathrm{e}}\mathcal G$ at the Identity, this is internally just a const of the corresponding TangentSpace.

Constructor

LieAlgebra(G::LieGroup)

Return the Lie Algebra belonging to the LieGroup G.

source
LieGroups.LieAlgebraOrthogonalBasis β€” Type
LieAlgebraOrthogonalBasis{𝔽} <: ManifoldsBase.AbstractOrthogonalBasis{𝔽,ManifoldsBase.TangentSpaceType}

Specify an orthogonal basis for a Lie algebra. This is used as the default within hat and vee.

If not specifically overwritten/implemented for a Lie group, the DefaultOrthogonalBasis at the identity_element on the `base_manifold acts as a fallback.

Note

In order to implement the corresponding get_coordinates and get_vector functions, define get_coordiinates_lie(::LieGroup, p, X, N) and get_vector_lie(::LieGroup, p, X, N), resp.

source

Functions on Lie algebras

Base.rand β€” Method
rand(::LieGroup; vector_at=nothing, Οƒ=1.0, kwargs...)
rand(::LieAlgebra; Οƒ=1.0, kwargs...)
rand!(::LieGroup, gX; vector_at=nothing, kwargs...)
rand!(::LieAlgebra, X; Οƒ=1.0, kwargs...)

Compute a random point or tangent vector on a Lie group.

For points this just means to generate a random point on the underlying manifold itself.

For tangent vectors, an element in the Lie Algebra is generated, see also rand(::LieAlgebra; kwargs...)

source
LieGroups.lie_bracket! β€” Method
lie_bracket!(𝔀::LieAlgebra, X, Y)
lie_bracket!(𝔀::LieAlgebra, Z, X, Y)

Compute the Lie bracket $[β‹…,β‹…]: \mathfrak gΓ—\mathfrak g β†’ \mathfrak g$ which fulfills

  1. $[X,X] = 0$ for all $X ∈ \mathfrak g$
  2. The Jacobi identity $[X, [Y,Z]] = [[X,Y],Z] = [Y, [X,Z]]$ holds for all $X, Y, Z ∈ \mathfrak g$.

The computation can be done in-place of Z.

source
LieGroups.lie_bracket β€” Method
lie_bracket!(𝔀::LieAlgebra, X, Y)
lie_bracket!(𝔀::LieAlgebra, Z, X, Y)

Compute the Lie bracket $[β‹…,β‹…]: \mathfrak gΓ—\mathfrak g β†’ \mathfrak g$ which fulfills

  1. $[X,X] = 0$ for all $X ∈ \mathfrak g$
  2. The Jacobi identity $[X, [Y,Z]] = [[X,Y],Z] = [Y, [X,Z]]$ holds for all $X, Y, Z ∈ \mathfrak g$.

The computation can be done in-place of Z.

source
ManifoldsBase.is_point β€” Method
is_point(𝔀::LieAlgebra, X; kwargs...)

Check whether X is a valid point on the Lie Algebra 𝔀. This falls back to checking whether X is a valid point on the tangent space at the identity_element(G) on G.manifold on the LieGroup of G

source
Random.rand! β€” Method
rand(::LieGroup; vector_at=nothing, Οƒ=1.0, kwargs...)
rand(::LieAlgebra; Οƒ=1.0, kwargs...)
rand!(::LieGroup, gX; vector_at=nothing, kwargs...)
rand!(::LieAlgebra, X; Οƒ=1.0, kwargs...)

Compute a random point or tangent vector on a Lie group.

For points this just means to generate a random point on the underlying manifold itself.

For tangent vectors, an element in the Lie Algebra is generated, see also rand(::LieAlgebra; kwargs...)

source

Literature

[HN12]
J.Β Hilgert and K.-H.Β Neeb. Structure and Geometry of Lie Groups (Springer Monographs in Mathematics, 2012).