The semidirect product Lie group

LieGroups.LeftSemidirectProductGroupOperation โ€” Type
LeftSemidirectProductGroupOperation{O1,O2,A} <: SemiDirectProductGroupOperation{O1,O2,A}

A struct to model a semidirect Lie group product.

Let $(\mathcal N, โ‹„)$ and $(\mathcal H, โ‹†)$ be two Lie groups with group operations $โ‹„$ and $โ‹†$, respectively, as well as a group action $ฯƒ: \mathcal Hร—\mathcal N โ†’ \mathcal N$, cf AbstractLeftGroupActionType.

We use here as well use the notation $ฯƒ_h: \mathcal N โ†’ \mathcal N$ as a family of maps on $\mathcal N$

Then we define a group operation $โˆ˜$ on the product manifold $\mathcal Nร—\mathcal H$ by

\[ (h_1,n_1) โˆ˜ (h_2,n_2) := (h_1 โ‹† h_2, ฯƒ_{h_2}(n_1) โ‹„ n_2).\]

See [HN12, Definition 9.2.22], second definition for more details.

Constructor

LeftSemidirectProductGroupOperation(
    op1::AbstractGroupOperation,
    op2::AbstractGroupOperation,
    action::AbstractGroupActionType
)

Parameters

  • op1::AbstractGroupOperation: The group operation $โ‹„$ on $\mathcal H$
  • op2::AbstractGroupOperation: The group operation $โ‹†$ on $\mathcal N$
  • action::AbstractGroupActionType The group action $ฯƒ$ of $\mathcal H$ on $\mathcal N$
source
LieGroups.RightSemidirectProductGroupOperation โ€” Type
RightSemidirectProductGroupOperation{O1,O2,A} <: SemiDirectProductGroupOperation{O1,O2,A}

A struct to model a right semidirect Lie group product.

Let $(\mathcal N, โ‹„)$ and $(\mathcal H, โ‹†)$ be two Lie groups with group operations $โ‹„$ and $โ‹†$, respectively, as well as a group action $ฯƒ: \mathcal Hร—\mathcal N โ†’ \mathcal N$, cf AbstractGroupActionType.

We use here as well use the notation $ฯƒ_h: \mathcal N โ†’ \mathcal N$ as a family of maps on $\mathcal N$

Then we define a group operation $โˆ˜$ on the product manifold $\mathcal Nร—\mathcal H$ by

\[ (n_1,h_1) โˆ˜ (n_2,h_2) := (n_1 โ‹„ ฯƒ_{h_1}(n_2), h_1 โ‹† h_2)\]

See [HN12, Definition 9.2.22], first definition for more details.

Constructor

RightSemidirectProductGroupOperation(
    op1::AbstractGroupOperation,
    op2::AbstractGroupOperation,
    action::AbstractGroupActionType
)

Parameters

  • op1::AbstractGroupOperation: The group operation $โ‹†$ on $\mathcal N$
  • op2::AbstractGroupOperation: The group operation $โ‹„$ on $\mathcal H$
  • action::AbstractGroupActionType: The group action $ฯƒ$ of $\mathcal H$ on $\mathcal N$
source
LieGroups.SemiDirectProductGroupOperation โ€” Type
SemiDirectProductGroupOperation{
    O1<:AbstractGroupOperation,
    O2<:AbstractGroupOperation,
    A<:AbstractGroupActionType
} <: AbstractProductGroupOperation

An abstract type for all semdirect product group operations.

source
Base.inv โ€” Method
inv(SDPG::LieGroup{๐”ฝ,Op,M}, g) where {๐”ฝ,Op<:SemiDirectProductGroupOperation,M<:ProductManifold}

Compute the inverse element of an element $g = (g_1, g_2)$ given by

\[g^{-1} = (g_1^{-1}, ฯƒ_{g_1^{-1}}g_2).\]

for the left variant and

\[g^{-1} = (ฯƒ_{g_2^{-1}} g_1, g_2^{-1})\]

for the right variant, respectively. See also [HN12, Proof of Lemma 2.2.3].

source
LieGroups.LeftSemidirectProductLieGroup โ€” Function
LeftSemidirectProductLieGroup(
    N::LieGroup, H::LieGroup, action::AbstractGroupActionType=default_left_action(N, H)
)

Generate the semidirect product Lie Group $\mathcal G = N โ‹‰ H$ for an AbstractLeftGroupActionType using the LeftSemidirectProductGroupOperation for the group operation definition as well as [HN12, Definition 9.2.22], second definition, for more details.

The short form Nโ‹‰H can be used if the corresponding default_left_action(N,H) is the one you want to use.

source
LieGroups.RightSemidirectProductLieGroup โ€” Function
RightSemidirectProductLieGroup(
    N::LieGroup, H::LieGroup, action::AbstractGroupActionType=default_right_action(N,H)
)

Generate the semidirect product Lie Group $\mathcal G = N โ‹Š H$ for an AbstractLeftGroupActionType using the RightSemidirectProductGroupOperation for the group operation definition as well as [HN12, Definition 9.2.22], first definition, for more details.

The short form Nโ‹ŠH can be used if the corresponding default_right_action(N,H) is the one you want to use.

source
Manifolds.compose โ€” Method
compose(L::LieGroup{๐”ฝ,LeftSemidirectProductGroupOperation}, g, h)

Compute the group operation $โˆ˜$ on the semidirect product Lie group $L = G โ‹‰ H$, that is for g $= (g_1,h_1)$, h $= (g_2,h_2)$ with $g_1,g_2 โˆˆ G$, $h_1,h_2 โˆˆ H$ this computes

\[ (g_1,h_1) โˆ˜ (g_2,h_2) := (g_1 โ‹„ g_2, h_1 โ‹† ฯƒ_{g_1}(h_2)).\]

where $โˆ˜$ denotes the group operation on $L$, $โ‹„$ and $โ‹†$ those on $G$ and $H$, respectively, and $ฯƒ$ is the group action specified by the AbstractGroupActionType within the LeftSemidirectProductLieGroup $L$.

source
Manifolds.compose โ€” Method
compose(L::LieGroup{๐”ฝ,RightSemidirectProductGroupOperation}, g, h)

Compute the group operation $โˆ˜$ on the semidirect product Lie group $L = G โ‹Š H$, that is for g $= (g_1,h_1)$, h $= (g_2,h_2)$ with $g_1,g_2 โˆˆ G$, $h_1,h_2 โˆˆ H$ this computes

\[ (g_1,h_1) โˆ˜ (g_2,h_2) := (g_1 โ‹„ ฯƒ_{h_1}(g_2), h_1 โ‹† h_2),\]

where $โˆ˜$ denotes the group operation on $L$, $โ‹„$ and $โ‹†$ those on $G$ and $H$, respectively, and $ฯƒ$ is the group action specified by the AbstractGroupActionType within the RightSemidirectProductLieGroup $L$.

source