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.
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.
ManifoldsBase.check_point โ Method
check_point(M::GeneralizedStiefel, p; kwargs...)Check whether p is a valid point on the GeneralizedStiefel M=$\operatorname{St}(n,k,B)$, i.e. that it has the right AbstractNumbers type and $x^{\mathrm{H}}Bx$ is (approximately) the identity, where $โ
^{\mathrm{H}}$ is the complex conjugate transpose. The settings for approximately can be set with kwargs....
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.
ManifoldsBase.default_retraction_method โ Method
default_retraction_method(M::GeneralizedStiefel)Return ProjectionRetraction as the default retraction for the GeneralizedStiefel manifold.
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.
ManifoldsBase.inverse_retract โ Method
inverse_retract(M::GeneralizedStiefel{โ}, p, q, ::PolarInverseRetraction)Compute the inverse of the PolarRetraction on the real GeneralizedStiefel manifold M for q close enough to p,
\[\operatorname{retr}_p^{-1} q = qZ - p,\]
where $Z$ is the symmetric positive definite solution of the Lyapunov equation $p^{\mathrm{T}}BqZ + Zq^{\mathrm{T}}Bp = 2I_k$, see Eqs. (3.4) and (3.5) in [SA23].
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].
ManifoldsBase.is_flat โ Method
is_flat(M::GeneralizedStiefel)Return true if GeneralizedStiefel M is one-dimensional.
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}\]
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}$.
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.
ManifoldsBase.retract โ Method
retract(M::GeneralizedStiefel, p, X, ::PolarRetraction)Compute the PolarRetraction on the GeneralizedStiefel manifold M. For real matrices this is the polar decomposition of $p + X$ with respect to $B$,
\[\operatorname{retr}_p X = (p + X)(I_k + X^{\mathrm{T}}BX)^{-1/2},\]
see Eq. (3.3) in [SA23]. For complex matrices it is the projection of $p + X$ onto the manifold.
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.
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].
ManifoldsBase.retract โ Method
retract(M::GeneralizedStiefel{โ}, p, X, ::QRRetraction)Compute the QRRetraction on the real GeneralizedStiefel manifold M, the QR decomposition of $p + X$ with respect to $B$,
\[\operatorname{retr}_p X = (p + X)R^{-1},\]
where $R^{\mathrm{T}}R = (p + X)^{\mathrm{T}}B(p + X)$ is the Cholesky decomposition, see Eq. (3.6) in [SA23].