The Heisenberg group
LieGroups.HeisenbergGroup
— TypeHeisenbergGroup{T}
The HeisenbergGroup(n)
is the group of $(n+2)×(n+2)$ matrices, see also [BP08] or Heisenberg group where T
specifies the eltype
of the matrix entries.
\[\begin{pmatrix} 1 & \mathbf{a}^{\mathrm{T}} & c\\ \mathbf{0}_n & I_n & \mathbf{b}\\ 0 & \mathbf{0}_n^{\mathrm{T}} & 1\end{pmatrix},\]
where $I_n$ is the $n×n$ unit matrix, $\mathbf{a}, \mathbf{b} ∈ ℝ^n$ are vectors of length $n$, $\mathbf{0}_n$ is the zero vector of length $n$, and $c ∈ ℝ$ is a real number. The group operation is matrix multiplication.
The Lie algebra consists of the elements
\[\begin{pmatrix} 0 & \mathbf{a}^{\mathrm{T}} & c\\ \mathbf{0}_n & Z_n & \mathbf{b}\\ 0 & \mathbf{0}_n^{\mathrm{T}} & 0\end{pmatrix},\]
where additionally $Z_n$ denotes the $n×n$ zero matrix.
Base.exp
— Methodexp(G::HeisenbergGroup, g, X)
Exponential map on the HeisenbergGroup
G
with the left-invariant metric.
We denote by g
a point on the Heisenberg group and by $X$ a vector from the Lie algebra. These are of the form
\[g = \begin{pmatrix} 1 & \mathbf{a}^{\mathrm{T}} & c\\ \mathbf{0}_n & I_n & \mathbf{b}\\ 0 & \mathbf{0}_n^{\mathrm{T}} & 1\end{pmatrix} \qquad X = \begin{pmatrix} 0 & \mathbf{d}^{\mathrm{T}} & f\\ \mathbf{0}_n & Z_n & \mathbf{e}\\ 0 & \mathbf{0}_n^{\mathrm{T}} & 0\end{pmatrix},\]
where $I_n$ is the $n×n$ unit matrix, $Z_n$ is the $n×n$ zero matrix, $\mathbf{a}, \mathbf{b}, \mathbf{d}, \mathbf{e} ∈ ℝ^n$ are vectors of length $n$, $\mathbf{0}_n$ is the zero vector of length $n$, and $c,f ∈ ℝ$ are real numbers.
Then the formula reads
\[\exp_g(X) = \begin{pmatrix} 1 & (\mathbf{a}+\mathbf{d})^{\mathrm{T}} & c+f+\frac{1}{2}\mathbf{d}^{\mathrm{T}}\mathbf{e} + \mathbf{a}^{\mathrm{T}}\mathbf{e}\\ \mathbf{0}_n & I_n & \mathbf{b}+\mathbf{e}\\ 0 & \mathbf{0}_n^{\mathrm{T}} & 1\end{pmatrix}.\]
Base.exp
— Methodexp(G::HeisenbergGroup, X)
exp!(G::HeisenbergGroup, g, X)
Compute the Lie group exponential for the HeisenbergGroup
G
of the vector X
.
For $X = \begin{pmatrix} 0 & \mathbf{a}^{\mathrm{T}} & c\\ \mathbf{0}_n & Z_n & \mathbf{b}\\ 0 & \mathbf{0}_n^{\mathrm{T}} & 0\end{pmatrix}$ from the Lie algebra of the Heisenberg group, where $\mathbf{a}, \mathbf{b} ∈ ℝ^n$ vectors of length $n$, $\mathbf{0}_n$ is the zero vector of length $n$, $c ∈ ℝ$, and $Z_n$ denotes the $n×n$ zero matrix.
Then the
\[\exp_{\mathcal G}(X) = \begin{pmatrix} 1 & \mathbf{a}^{\mathrm{T}} & c + \frac{1}{2}\mathbf{a}^{\mathrm{T}}\mathbf{b}\\ \mathbf{0}_n & I_n & \mathbf{b}\\ 0 & \mathbf{0}_n^{\mathrm{T}} & 1\end{pmatrix},\]
where $I_n$ is the $n×n$ unit matrix.
This can be computed in-place of the Lie group element g
.
Base.log
— Methodlog(G::HeisenbergGroup, g, h)
Compute the logarithmic map on the HeisenbergGroup
group.
We denote two points $g, h$ from the Heisenberg by
\[g = \begin{pmatrix} 1 & \mathbf{a}^{\mathrm{T}} & c\\ \mathbf{0}_n & I_n & \mathbf{b}\\ 0 & \mathbf{0}_n^{\mathrm{T}} & 1\end{pmatrix} \qquad h = \begin{pmatrix} 1 & \mathbf{d}^{\mathrm{T}} & f\\ \mathbf{0}_n & I_n & \mathbf{e}\\ 0 & \mathbf{0}_n^{\mathrm{T}} & 1\end{pmatrix},\]
where $I_n$ is the $n×n$ unit matrix, $\mathbf{a}, \mathbf{b}, \mathbf{d}, \mathbf{e} ∈ ℝ^n$ are vectors of length $n$, $\mathbf{0}_n$ is the zero vector of length $n$, and $c,f ∈ ℝ$ are real numbers.
Then formula reads
\[\log_g(h) = \begin{pmatrix} 0 & (\mathbf{d}-\mathbf{q})^{\mathrm{T}} & f - c + \mathbf{a}^{\mathrm{T}}\mathbf{b} - \mathbf{d}^{\mathrm{T}}\mathbf{e} - \frac{1}{2}(\mathbf{d}-\mathbf{a})^{\mathrm{T}}(\mathbf{e}-\mathbf{b})\\ \mathbf{0}_n & Z_n & \mathbf{e} - \mathbf{b}\\ 0 & \mathbf{0}_n^{\mathrm{T}} & 0\end{pmatrix},\]
where additionally $Z_n$ denotes the $n×n$ zero matrix.
Base.log
— Methodlog(G::HeisenbergGroup, g)
log!(G::HeisenbergGroup, X, g)
Compute the Lie group logarithm for the HeisenbergGroup
G
.
For $g = \begin{pmatrix} 1 & \mathbf{a}^{\mathrm{T}} & c\\ \mathbf{0}_n & I_n & \mathbf{b}\\ 0 & \mathbf{0}_n^{\mathrm{T}} & 1\end{pmatrix}$ from the Lie algebra of the Heisenberg group, where $\mathbf{a}, \mathbf{b} ∈ ℝ^n$ vectors of length $n$, $\mathbf{0}_n$ is the zero vector of length $n$, $c ∈ ℝ$, and $I_n$ is the $n×n$ unit matrix.
Then the
\[\log_{\mathcal G}(g) = \begin{pmatrix} 1 & \mathbf{a}^{\mathrm{T}} & c - \frac{1}{2}\mathbf{a}^{\mathrm{T}}\mathbf{b}\\ \mathbf{0}_n & Z_n & \mathbf{b}\\ 0 & \mathbf{0}_n^{\mathrm{T}} & 1\end{pmatrix},\]
where $Z_n$ denotes the $n×n$ zero matrix.
This can be computed in-place of the Lie algebra vector X
.
ManifoldsBase.injectivity_radius
— Methodinjectivity_radius(G::HeisenbergGroup)
Return the injectivity radius on the HeisenbergGroup
G
, which is $∞$.
Literature
- [BP08]
- E. Biny and S. Pods. The Geometry of Heisenberg Groups: With Applications in Signal Theory, Optics, Quantization, and Field Quantization (American Mathematical Society, 2008).