The circle group

LieGroups.CircleGroup โ€” Method
CircleGroup

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().

source

Representation on the real line

Base.exp โ€” Method
exp(::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.

source
Base.log โ€” Method
log(::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.

source
LieGroups.conjugate! โ€” Method
conjugate(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.

source
LieGroups.conjugate โ€” Method
conjugate(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.

source
LieGroups.diff_conjugate โ€” Method
diff_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.

source
LieGroups.diff_inv! โ€” Method
diff_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.

source
LieGroups.diff_inv โ€” Method
diff_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.

source
LieGroups.sym_rem โ€” Method
sym_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 $ฯ€$.

source
ManifoldsBase.exp! โ€” Method
exp(::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.

source
ManifoldsBase.log! โ€” Method
log(::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.

source

Representation on the complex plane

Base.exp โ€” Method
exp(::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)\]

source
Base.log โ€” Method
log(::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.

source
LieGroups.diff_left_compose โ€” Method
diff_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.

source
LieGroups.diff_right_compose โ€” Method
diff_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.

source
ManifoldsBase.exp! โ€” Method
exp(::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)\]

source
ManifoldsBase.log! โ€” Method
log(::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.

source

Representation on the 2D-plane

Base.exp โ€” Method
exp(::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}\]

source
Base.log โ€” Method
log(::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.

source
LieGroups.diff_left_compose! โ€” Method
diff_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.

source
LieGroups.diff_left_compose โ€” Method
diff_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.

source
LieGroups.diff_right_compose! โ€” Method
diff_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.

source
ManifoldsBase.exp! โ€” Method
exp(::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}\]

source
ManifoldsBase.log! โ€” Method
log(::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.

source