The circle group
LieGroups.CircleGroup
โ MethodCircleGroup
The circle group $๐^1$ is the unit circle together with composing points on the circle by adding angles. The circle itself is a one dimensional Riemannian manifold. Hence the Lie algebra is the real line.
The elements of the circle group can be represented in three different ways.
As complex numbers
Elements of the circle group can be represented as complex numbers of absolute value one, that is
\[๐ยน = \bigl\{ z โ โ\ \big|\ |z| = 1\bigr \} = \bigl\{ a + b\mathrm{i} โ โ\ \big|\ a^2+b^2 = 1\bigr \},\]
where $\mathrm{i}$ denotes the imaginary unit. It is equipped with the group operation of complex multiplication AbelianMultiplicationGroupOperation
. That operation is given by
\[(a + b\mathrm{i}) โ (c + d\mathrm{i}) := (ac - bd) + (ad + bc)\mathrm{i},\]
for complex numbers $a + b\mathrm{i}, c + d\mathrm{i} โ โ$.
As angles in $[-ฯ,ฯ)$
Elements of the circle group can be represented by the angle on the unit circle that they correspond to. In that case the elements are represented by real numbers $x โ [-ฯ,ฯ)$ and the circle group is identified with a quotient space of the real numbers
\[ ๐ยน = โ / 2ฯโค = \bigl\{ [x] โ โ / 2ฯโค\ \big|\ x โ [-ฯ,ฯ)\bigr \}.\]
It is equipped with the group operation of adding angles $\mathrm{mod\, } 2ฯ$ via AdditionGroupOperation
.
As part of the 2D plane $โ^2$
Elements of the circle group can be represented as two dimensional real valued vectors $x โ โ$ of length 1. In that case the circle group is identified with the unit circle in $โ^2$, that is the one dimensional Sphere
\[๐^1 = \bigl\{ (x, y) โ โ^2\ \big|\ x^2 + y^2 = 1\bigr \}.\]
It is equipped with the group operation of adding the angles of two points on the unit circle which corresponds to complex multiplication
\[(x_1, y_1) โ (x_2, y_2) := ( x_1x_2 - y_1y_2, x_1y_2 + x_2y_1),\]
for real valued vectors $(x_1, y_1)^\mathrm{T}, (x_2, y_2)^\mathrm{T} โ โ^2$ via AbelianMultiplicationGroupOperation
.
Constructors
CircleGroup(Circle(โ))
CircleGroup(โ)
CircleGroup()
Generate the circle group represented as complex numbers.
CircleGroup(Circle(โ))
CircleGroup(โ)
Generate the circle group represented as real valued angles $x โ [-ฯ, ฯ)$.
CircleGroup(Sphere(1))
CircleGroup(โ^2)
Generate the circle group represented as two dimensional real valued vectors of unit norm.
The default representation is by complex numbers and can be constructed with CircleGroup()
.
Representation on the real line
Base.exp
โ Methodexp(::LieGroup{โ, AdditionGroupOperation, Circle{โ}}, X)
exp!(::LieGroup{โ, AdditionGroupOperation, Circle{โ}}, g, X)
Compute the Lie group exponential of a vector X
of the LieAlgebra
of the circle group, represented as angles in $[-ฯ, ฯ)$. In that case, the Lie algebra is the real line and the Lie group exponential of a vector $X โ โ$ is its equivalence class
\[ \exp(X) = [X] โ \bigl\{ [x] โ โ / 2ฯโค\ \big|\ x โ [-ฯ,ฯ)\bigr \}.\]
This can be computed in-place of g
.
Base.log
โ Methodlog(::LieGroup{โ, AdditionGroupOperation, Circle{โ}}, g)
log!(::LieGroup{โ, AdditionGroupOperation, Circle{โ}}, X, g)
Compute the Lie group logarithm on the CircleGroup
, represented as angles in $[-ฯ,ฯ)$. The LieAlgebra
is the real line and $\log$ is given by the identity map.
Formally $\log$ promotes an equivalence class $[X]$ to a representative $Xโโ$.
This can be computed in-place of X
.
LieGroups.conjugate!
โ Methodconjugate(CircleGroup, g, h)
conjugate!(CircleGroup, k, g, h)
Compute the conjugation map $c_g: \mathcal G โ \mathcal G$ given by $c_g(h) = gโhโg^{-1} = h$. It simplifies to the identity since the group operation on the circle group is abelian.
This can be computed in-place of k
if k
is mutable
.
LieGroups.conjugate
โ Methodconjugate(CircleGroup, g, h)
conjugate!(CircleGroup, k, g, h)
Compute the conjugation map $c_g: \mathcal G โ \mathcal G$ given by $c_g(h) = gโhโg^{-1} = h$. It simplifies to the identity since the group operation on the circle group is abelian.
This can be computed in-place of k
if k
is mutable
.
LieGroups.diff_conjugate
โ Methoddiff_conjugate(G::LieGroup{โ, AdditionGroupOperation, Circle{โ}}, g, h, X)
diff_conjugate!(G::LieGroup{โ, AdditionGroupOperation, Circle{โ}}, Y, g, h, X)
Compute the differential of the conjugation map $c_g(h) = gโhโg^{-1}=h$. On the circle group represented as part of the real line, this simplifies to $D(c_g(h))[X] = X$.
This can be computed in-place of Y
if Y
is mutable
.
LieGroups.diff_inv!
โ Methoddiff_inv(G::LieGroup{โ, AdditionGroupOperation, Circle{โ}}, g, X)
diff_inv!(G::LieGroup{โ, AdditionGroupOperation, Circle{โ}}, Y, g, X)
Compute the the differential $\mathrm{d}ฮน_{\mathcal G}([g])[X]$ of the inversion $ฮน_{\mathcal G}([g]) := [g]^{-1} = [-g]$ at $X โ ๐ค$ in the LieAlgebra
$๐ค$ of the real CircleGroup
G
$=\mathcal G$.
\[\mathrm{d}ฮน_{\mathcal G}([g])[X] = -X.\]
This can be computed in-place of Y
if Y
is mutable
.
LieGroups.diff_inv
โ Methoddiff_inv(G::LieGroup{โ, AdditionGroupOperation, Circle{โ}}, g, X)
diff_inv!(G::LieGroup{โ, AdditionGroupOperation, Circle{โ}}, Y, g, X)
Compute the the differential $\mathrm{d}ฮน_{\mathcal G}([g])[X]$ of the inversion $ฮน_{\mathcal G}([g]) := [g]^{-1} = [-g]$ at $X โ ๐ค$ in the LieAlgebra
$๐ค$ of the real CircleGroup
G
$=\mathcal G$.
\[\mathrm{d}ฮน_{\mathcal G}([g])[X] = -X.\]
This can be computed in-place of Y
if Y
is mutable
.
LieGroups.sym_rem
โ Methodsym_rem(x,[T=ฯ])
Compute symmetric remainder of x
with respect to the interall 2*T
, i.e. (x+T)%2T
, where the default for T
is $ฯ$.
ManifoldsBase.exp!
โ Methodexp(::LieGroup{โ, AdditionGroupOperation, Circle{โ}}, X)
exp!(::LieGroup{โ, AdditionGroupOperation, Circle{โ}}, g, X)
Compute the Lie group exponential of a vector X
of the LieAlgebra
of the circle group, represented as angles in $[-ฯ, ฯ)$. In that case, the Lie algebra is the real line and the Lie group exponential of a vector $X โ โ$ is its equivalence class
\[ \exp(X) = [X] โ \bigl\{ [x] โ โ / 2ฯโค\ \big|\ x โ [-ฯ,ฯ)\bigr \}.\]
This can be computed in-place of g
.
ManifoldsBase.log!
โ Methodlog(::LieGroup{โ, AdditionGroupOperation, Circle{โ}}, g)
log!(::LieGroup{โ, AdditionGroupOperation, Circle{โ}}, X, g)
Compute the Lie group logarithm on the CircleGroup
, represented as angles in $[-ฯ,ฯ)$. The LieAlgebra
is the real line and $\log$ is given by the identity map.
Formally $\log$ promotes an equivalence class $[X]$ to a representative $Xโโ$.
This can be computed in-place of X
.
Representation on the complex plane
Base.exp
โ Methodexp(::LieGroup{โ, AbelianMultiplicationGroupOperation, Circle{โ}}, X)
exp!(::LieGroup{โ, AbelianMultiplicationGroupOperation, Circle{โ}}, g, X)
Computes the Lie group exponential on the complex CircleGroup
, which coincides with the ordinary complex exponential.
The Lie algebra is precisely the imaginary axis of the complex plane.
This can be computed in-place of g
.
\[\exp (\mathrm{i}t) = \cos(t) + \mathrm{i}\sin(t)\]
Base.log
โ Methodlog(::CircleGroup{โ, AbelianMultiplicationGroupOperation, Circle{โ}}, g)
log!(::CircleGroup{โ, AbelianMultiplicationGroupOperation, Circle{โ}}, X, g)
Compute the Lie group logarithm on the complex CircleGroup
, which coincides with the ordinary complex logarithm.
This can be computed in-place of X
.
LieGroups.diff_left_compose
โ Methoddiff_left_compose(::LieGroup{โ, AbelianMultiplicationGroupOperation, Circle{โ}}, g, h, X)
diff_left_compose(::LieGroup{โ, AbelianMultiplicationGroupOperation, Circle{โ}}, Y, g, h, X)
Compute the differential of the group operation $gh$ with respeect to the lefy argument g
.
The formula reads
\[ \mathrm{d} ฯ_h(g) = X.\]
since the group operation is abelian. This can be computed in-place of Y
if Y
is mutable.
LieGroups.diff_right_compose
โ Methoddiff_right_compose(::LieGroup{โ, AbelianMultiplicationGroupOperation, Circle{โ}}, g, h, X)
diff_right_compose(::LieGroup{โ, AbelianMultiplicationGroupOperation, Circle{โ}}, Y, g, h, X)
Compute the differential of the group operation $gโh$, on an AbstractLieGroup
G
with respect to its second (right) argument h
.
Another interpretation is to consider a function where we do a fixed multiplication from the left with g
. i..e. the left group multiplication function $ฮป_g(h) = gโh$.
It simplifies for the AbelianMultiplicationGroupOperation
to $\mathrm{d}ฮป_g(h)[X] = X$. This can be computed in-place of Y
.
ManifoldsBase.exp!
โ Methodexp(::LieGroup{โ, AbelianMultiplicationGroupOperation, Circle{โ}}, X)
exp!(::LieGroup{โ, AbelianMultiplicationGroupOperation, Circle{โ}}, g, X)
Computes the Lie group exponential on the complex CircleGroup
, which coincides with the ordinary complex exponential.
The Lie algebra is precisely the imaginary axis of the complex plane.
This can be computed in-place of g
.
\[\exp (\mathrm{i}t) = \cos(t) + \mathrm{i}\sin(t)\]
ManifoldsBase.log!
โ Methodlog(::CircleGroup{โ, AbelianMultiplicationGroupOperation, Circle{โ}}, g)
log!(::CircleGroup{โ, AbelianMultiplicationGroupOperation, Circle{โ}}, X, g)
Compute the Lie group logarithm on the complex CircleGroup
, which coincides with the ordinary complex logarithm.
This can be computed in-place of X
.
Representation on the 2D-plane
Base.exp
โ Methodexp(::LieGroup{โ, AbelianMultiplicationGroupOperation, Sphere}, X)
exp!(::LieGroup{โ, AbelianMultiplicationGroupOperation, Sphere}, g, X)
Compute the Lie group exponential on the CircleGroup
, represented as two dimensional vectors in the real plane. It coincides with the ordinary complex exponential after canonical identification of the real plane with the complex plane.
This can be computed in-place of g
.
\[\exp \begin{pmatrix} 0\\ t\end{pmatrix} = \begin{pmatrix} \cos(t)\\ \sin(t)\end{pmatrix}\]
Base.log
โ Methodlog(::LieGroup{โ, AbelianMultiplicationGroupOperation, Sphere}, g)
log!(::LieGroup{โ, AbelianMultiplicationGroupOperation, Sphere}, X, g)
Compute the Lie group logarithm on the CircleGroup
, represented as two dimensional vectors in the real plane. It coincides with the ordinary complex logarithm after canonical identification of the real plane with the complex plane.
This can be computed in-place of X
.
LieGroups.diff_left_compose!
โ Methoddiff_left_compose(G::LieGroup{โ, AbelianMultiplicationGroupOperation, Sphere}, g, h, X)
diff_left_compose!(G::LieGroup{โ, AbelianMultiplicationGroupOperation, Sphere}, Y, g, h, X)
Compute the differential of the group operation $gh$ with respect to the left argument $g$.
Here it simplifies for AbelianMultiplicationGroupOperation
to $\mathrm{d}ฯ_h(g)[X] = X$.
This can be computed in-place of Y
.
LieGroups.diff_left_compose
โ Methoddiff_left_compose(G::LieGroup{โ, AbelianMultiplicationGroupOperation, Sphere}, g, h, X)
diff_left_compose!(G::LieGroup{โ, AbelianMultiplicationGroupOperation, Sphere}, Y, g, h, X)
Compute the differential of the group operation $gh$ with respect to the left argument $g$.
Here it simplifies for AbelianMultiplicationGroupOperation
to $\mathrm{d}ฯ_h(g)[X] = X$.
This can be computed in-place of Y
.
LieGroups.diff_right_compose!
โ Methoddiff_right_compose(G::LieGroup{โ, AbelianMultiplicationGroupOperation, Sphere}, g, h, X)
diff_right_compose!(G::LieGroup{โ, AbelianMultiplicationGroupOperation, Sphere}, Y, g, h, X)
Compute the differential of the group operation $gโh$, on an AbstractLieGroup
G
with respect to its second (right) argument h
.
Another interpretation is to consider a function where we do a fixed multiplication from the left with g
. i..e. the left group multiplication function $ฮป_g(h) = gโh$.
It simplifies for the AbelianMultiplicationGroupOperation
to $\mathrm{d}ฮป_g(h)[X] = X$,
ManifoldsBase.exp!
โ Methodexp(::LieGroup{โ, AbelianMultiplicationGroupOperation, Sphere}, X)
exp!(::LieGroup{โ, AbelianMultiplicationGroupOperation, Sphere}, g, X)
Compute the Lie group exponential on the CircleGroup
, represented as two dimensional vectors in the real plane. It coincides with the ordinary complex exponential after canonical identification of the real plane with the complex plane.
This can be computed in-place of g
.
\[\exp \begin{pmatrix} 0\\ t\end{pmatrix} = \begin{pmatrix} \cos(t)\\ \sin(t)\end{pmatrix}\]
ManifoldsBase.log!
โ Methodlog(::LieGroup{โ, AbelianMultiplicationGroupOperation, Sphere}, g)
log!(::LieGroup{โ, AbelianMultiplicationGroupOperation, Sphere}, X, g)
Compute the Lie group logarithm on the CircleGroup
, represented as two dimensional vectors in the real plane. It coincides with the ordinary complex logarithm after canonical identification of the real plane with the complex plane.
This can be computed in-place of X
.