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 $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$.
The computation simplifies due to commutativity to
\[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 $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$.
The computation simplifies due to commutativity to
\[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 left group multiplication $ฮป_g(h) = gโh$. On the complex circle the differential simplifies to the ordinary complex multiplication
\[ ฮป_g(h) = g โ X.\]
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 right group multiplication $ฯ_g(h) = hโg$. On the complex circle the differential simplifies to the ordinary complex multiplication
\[ ฯ_g(h) = X โ g.\]
This can be computed in-place of Y
if Y
is mutable
due to the wrapper defined in the AbelianMultiplicationGroupOperation
.
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 left group multiplication $ฮป_g(h) = gโh$ of the Circle Group, represented as two dimensional vectors in $โ^2$.
It simplifies for the AbelianMultiplicationGroupOperation
to $Dฮป_g(h)[X] = g*X$, where the multiplication corresponds to the complex multiplication after canonical identification of the real plane with the complex plane.
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 left group multiplication $ฮป_g(h) = gโh$ of the Circle Group, represented as two dimensional vectors in $โ^2$.
It simplifies for the AbelianMultiplicationGroupOperation
to $Dฮป_g(h)[X] = g*X$, where the multiplication corresponds to the complex multiplication after canonical identification of the real plane with the complex plane.
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 right group multiplication $ฮป_g(h) = gโh$ of the Circle Group, represented as two dimensional vectors in $โ^2$.
It simplifies for the AbelianMultiplicationGroupOperation
to $Dฮป_g(h)[X] = X*g$, where the multiplication corresponds to the complex multiplication after canonical identification of the real plane with the complex plane.
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
.