Heisenberg matrices

Manifolds.HeisenbergMatrices โ€” Type
HeisenbergMatrices{T} <: AbstractDecoratorManifold{๐”ฝ}

Heisenberg matrices HeisenbergMatrices(n) is the manifold of $(n+2)ร—(n+2)$ matrices [BP08]

\[\begin{bmatrix} 1 & \mathbf{a} & c \\ \mathbf{0}_n & I_n & \mathbf{b} \\ 0 & \mathbf{0}_n^\mathrm{T} & 1 \end{bmatrix}\]

where $I_n$ is the $nร—n$ unit matrix, $\mathbf{a}$ is a row vector of length $n$, $\mathbf{b}$ is a column vector of length $n$, $\mathbf{0}_n$ is the column zero vector of length $n$, and $c$ is a real number.

It is a submanifold of Euclidean(n+2, n+2) and the manifold of the HeisenbergGroup.

Constructor

HeisenbergMatrices(n::Int; parameter::Symbol=:type)

Generate the manifold of $(n+2)ร—(n+2)$ Heisenberg matrices.

source
Base.rand โ€” Method
Random.rand(M::HeisenbergMatrices; vector_at = nothing, ฯƒ::Real=1.0)

If vector_at is nothing, return a random point on the HeisenbergMatrices M by sampling elements of the first row and the last column from the normal distribution with mean 0 and standard deviation ฯƒ.

If vector_at is not nothing, return a random tangent vector from the tangent space of the point vector_at on the HeisenbergMatrices by using a normal distribution with mean 0 and standard deviation ฯƒ.

source
ManifoldsBase.Weingarten โ€” Method
Y = Weingarten(M::HeisenbergMatrices, p, X, V)
Weingarten!(M::HeisenbergMatrices, Y, p, X, V)

Compute the Weingarten map $\mathcal W_p$ at p on the HeisenbergMatrices M with respect to the tangent vector $X \in T_p\mathcal M$ and the normal vector $V \in N_p\mathcal M$.

Since this a flat space by itself, the result is always the zero tangent vector.

source
ManifoldsBase.get_coordinates โ€” Method
get_coordinates(M::HeisenbergMatrices, p, X, ::DefaultOrthonormalBasis{โ„,TangentSpaceType})

Get coordinates of tangent vector X at point p from the HeisenbergMatrices M. Given a matrix

\[\begin{bmatrix} 1 & \mathbf{a} & c \\ \mathbf{0} & I_n & \mathbf{b} \\ 0 & \mathbf{0} & 1 \end{bmatrix}\]

the coordinates are concatenated vectors $\mathbf{a}$, $\mathbf{b}$, and number $c$.

source
ManifoldsBase.get_vector โ€” Method
get_vector(M::HeisenbergMatrices, p, Xโฑ, ::DefaultOrthonormalBasis{โ„,TangentSpaceType})

Get tangent vector with coordinates Xโฑ at point p from the HeisenbergMatrices M. Given a vector of coordinates $\begin{bmatrix}\mathbb{a} & \mathbb{b} & c\end{bmatrix}$ the tangent vector is equal to

\[\begin{bmatrix} 1 & \mathbf{a} & c \\ \mathbf{0} & I_n & \mathbf{b} \\ 0 & \mathbf{0} & 1 \end{bmatrix}\]

source