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_n$ 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_k\},\]

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=โ„; parameter::Symbol=:type)

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

parameter: whether a type parameter should be used to store n and k. By default size is stored in type. Value can either be :field or :type.

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.check_vector โ€” Method
check_vector(M::GeneralizedStiefel, p, X; atol, rtol, kwargs...)

Check whether X is a valid tangent vector at p on the GeneralizedStiefel M=$\operatorname{St}(n,k,B)$. This requires that the AbstractNumbers fits, p is a valid point on M and it (approximately) holds that $p^{\mathrm{H}}BX + X^{\mathrm{H}}Bp = 0$, that is, the norm of the left hand side is at most atol or at most rtol times $2\lVert X \rVert_p$, the largest value this norm can attain.

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.inverse_retract โ€” Method
inverse_retract(M::GeneralizedStiefel{โ„}, p, q, ::QRInverseRetraction)

Compute the inverse of the QRRetraction on the real GeneralizedStiefel manifold M for q close enough to p,

\[\operatorname{retr}_p^{-1} q = qR - p,\]

where $R$ is the upper triangular solution with positive diagonal of $p^{\mathrm{T}}BqR + R^{\mathrm{T}}q^{\mathrm{T}}Bp = 2I_k$, see Eqs. (3.7) and (3.8) in [SA23].

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, ::ProjectionRetraction)

Compute the projection based retraction on the GeneralizedStiefel manifold M, which employs the exponential map in the embedding and projects the result back to the manifold,

\[\operatorname{retr}_p X = U(U^{\mathrm{H}}BU)^{-1/2}V^{\mathrm{H}},\]

where $UฮฃV^{\mathrm{H}} = p + X$ is the singular value decomposition.

source
ManifoldsBase.retract โ€” Method
retract(M::GeneralizedStiefel{โ„}, p, X, ::CayleyRetraction)

Compute the CayleyRetraction on the real GeneralizedStiefel manifold M, the Cayley transform with respect to $B$,

\[\operatorname{retr}_p X = \Bigl(I_n - \frac{1}{2}W\Bigr)^{-1}\Bigl(I_n + \frac{1}{2}W\Bigr)p, \qquad W = \Bigl(I_n - \frac{1}{2}pp^{\mathrm{T}}B\Bigr)Xp^{\mathrm{T}}B - pX^{\mathrm{T}}\Bigl(I_n - \frac{1}{2}Bpp^{\mathrm{T}}\Bigr)B,\]

see Eq. (3.9) in [SA23].

source