Generalized Stiefel

Manifolds.GeneralizedStiefel โ€” Type
GeneralizedStiefel{๐”ฝ,T,B} <: AbstractDecoratorManifold{๐”ฝ}

The Generalized Stiefel manifold consists of all $nร—k$, $n\geq k$ orthonormal matrices w.r.t. an arbitrary scalar product with symmetric positive definite matrix $B\in R^{nร—n}$, i.e.

\[\operatorname{St}(n,k,B) = \bigl\{ p \in \mathbb F^{nร—k}\ \big|\ p^{\mathrm{H}} B p = I_k \bigr\},\]

where $๐”ฝ โˆˆ \{โ„, โ„‚\}$, $โ‹…^{\mathrm{H}}$ denotes the complex conjugate transpose or Hermitian, and $I_k \in \mathbb R^{kร—k}$ denotes the $kร—k$ identity matrix.

In the case $B=I_k$ one gets the usual Stiefel manifold.

The tangent space at a point $p\in\mathcal M=\operatorname{St}(n,k,B)$ is given by

\[T_p\mathcal M = \{ X \in ๐”ฝ^{nร—k} : p^{\mathrm{H}}BX + X^{\mathrm{H}}Bp=0_n\},\]

where $0_k$ is the $kร—k$ zero matrix.

This manifold is modeled as an embedded manifold to the Euclidean, i.e. several functions like the zero_vector are inherited from the embedding.

The manifold is named after Eduard L. Stiefel (1909โ€“1978).

Constructor

GeneralizedStiefel(n, k, B=I_n, F=โ„)

Generate the (real-valued) Generalized Stiefel manifold of $nร—k$ dimensional orthonormal matrices with scalar product B.

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

When vector_at is nothing, return a random (Gaussian) point p on the GeneralizedStiefel manifold M. This generates a (Gaussian) matrix of size $nร—k$ with standard deviation ฯƒ and returns its (generalized) orthogonalized version, i.e. the projection onto the manifold of the Q component of its QR decomposition.

When vector_at is not nothing, return a (Gaussian) random vector from the tangent space $T_{vector\_at}\mathrm{St}(n,k)$ with mean zero and standard deviation ฯƒ by projecting a random Matrix onto the tangent vector at vector_at.

source
ManifoldsBase.inner โ€” Method
inner(M::GeneralizedStiefel, p, X, Y)

Compute the inner product for two tangent vectors X, Y from the tangent space of p on the GeneralizedStiefel manifold M. The formula reads

\[(X, Y)_p = \operatorname{trace}(v^{\mathrm{H}}Bw),\]

i.e. the metric induced by the scalar product B from the embedding, restricted to the tangent space.

source
ManifoldsBase.manifold_dimension โ€” Method
manifold_dimension(M::GeneralizedStiefel)

Return the dimension of the GeneralizedStiefel manifold M=$\operatorname{St}(n,k,B,๐”ฝ)$. The dimension is given by

\[\begin{aligned} \dim \mathrm{St}(n, k, B, โ„) &= nk - \frac{1}{2}k(k+1) \\ \dim \mathrm{St}(n, k, B, โ„‚) &= 2nk - k^2\\ \dim \mathrm{St}(n, k, B, โ„) &= 4nk - k(2k-1) \end{aligned}\]

source
ManifoldsBase.project โ€” Method
project(M:GeneralizedStiefel, p, X)

Project X onto the tangent space of p to the GeneralizedStiefel manifold M. The formula reads

\[\operatorname{proj}_{\operatorname{St}(n,k)}(p,X) = X - p\operatorname{Sym}(p^{\mathrm{H}}BX),\]

where $\operatorname{Sym}(y)$ is the symmetrization of $y$, e.g. by $\operatorname{Sym}(y) = \frac{y^{\mathrm{H}}+y}{2}$.

source
ManifoldsBase.project โ€” Method
project(M::GeneralizedStiefel, p)

Project p from the embedding onto the GeneralizedStiefel M, i.e. compute q as the polar decomposition of $p$ such that $q^{\mathrm{H}}Bq$ is the identity, where $โ‹…^{\mathrm{H}}$ denotes the hermitian, i.e. complex conjugate transposed.

source
ManifoldsBase.retract โ€” Method
retract(M::GeneralizedStiefel, p, X)
retract(M::GeneralizedStiefel, p, X, ::PolarRetraction)
retract(M::GeneralizedStiefel, p, X, ::ProjectionRetraction)

Compute the SVD-based retraction PolarRetraction on the GeneralizedStiefel manifold M. In this case this is the same as the projection based retraction, which employs the exponential map in the embedding and projects the result back to the manifold.

The default retraction for this manifold is the ProjectionRetraction.

source