The semidirect product Lie group
LieGroups.LeftSemidirectProductGroupOperation
โ TypeLeftSemidirectProductGroupOperation{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$
LieGroups.RightSemidirectProductGroupOperation
โ TypeRightSemidirectProductGroupOperation{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$
LieGroups.SemiDirectProductGroupOperation
โ TypeSemiDirectProductGroupOperation{
O1<:AbstractGroupOperation,
O2<:AbstractGroupOperation,
A<:AbstractGroupActionType
} <: AbstractProductGroupOperation
An abstract type for all semdirect product group operations.
Base.inv
โ Methodinv(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].
LieGroups.:โ
โ MethodL1 โ L2
โ(L1, L2)
For two LieGroups
L1
, L2
, generate the LeftSemidirectProductLieGroup
(L1, L2)
, where the corresponding default_left_action
(L1, L2)
is used.
LieGroups.:โ
โ MethodL1 โ L2
โ(L1, L2)
For two LieGroups
L1
, L2
, generate the RightSemidirectProductLieGroup
(L1, L2)
, where the corresponding default_right_action
(L1, L2)
is used.
LieGroups.LeftSemidirectProductLieGroup
โ FunctionLeftSemidirectProductLieGroup(
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.
LieGroups.RightSemidirectProductLieGroup
โ FunctionRightSemidirectProductLieGroup(
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.
Manifolds.compose
โ Methodcompose(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$.
Manifolds.compose
โ Methodcompose(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$.