# Spectrahedron

Manifolds.Spectrahedron โ Type
Spectrahedron{T} <: AbstractDecoratorManifold{โ}

The Spectrahedron manifold, also known as the set of correlation matrices (symmetric positive semidefinite matrices) of rank $k$ with unit trace.

\begin{aligned} \mathcal S(n,k) = \bigl\{p โ โ^{nรn}\ \big|\ &a^\mathrm{T}pa \geq 0 \text{ for all } a โ โ^{n},\\ &\operatorname{tr}(p) = \sum_{i=1}^n p_{ii} = 1,\\ &\text{and } p = qq^{\mathrm{T}} \text{ for } q \in โ^{nรk} \text{ with } \operatorname{rank}(p) = \operatorname{rank}(q) = k \bigr\}. \end{aligned}

This manifold is working solely on the matrices $q$. Note that this $q$ is not unique, indeed for any orthogonal matrix $A$ we have $(qA)(qA)^{\mathrm{T}} = qq^{\mathrm{T}} = p$, so the manifold implemented here is the quotient manifold. The unit trace translates to unit frobenius norm of $q$.

The tangent space at $p$, denoted $T_p\mathcal E(n,k)$, is also represented by matrices $Y\in โ^{nรk}$ and reads as

$$$T_p\mathcal S(n,k) = \bigl\{ X โ โ^{nรn}\,|\,X = qY^{\mathrm{T}} + Yq^{\mathrm{T}} \text{ with } \operatorname{tr}(X) = \sum_{i=1}^{n}X_{ii} = 0 \bigr\}$$$

endowed with the Euclidean metric from the embedding, i.e. from the $โ^{nรk}$

This manifold was for example investigated in [JBAS10].

Constructor

Spectrahedron(n::Int, k::Int; parameter::Symbol=:type)

generates the manifold $\mathcal S(n,k) \subset โ^{nรn}$.

source
ManifoldsBase.check_point โ Method
check_point(M::Spectrahedron, q; kwargs...)

checks, whether q is a valid representation of a point $p=qq^{\mathrm{T}}$ on the Spectrahedron M, i.e. is a matrix of size (N,K), such that $p$ is symmetric positive semidefinite and has unit trace, i.e. $q$ has to have unit frobenius norm. Since by construction $p$ is symmetric, this is not explicitly checked. Since $p$ is by construction positive semidefinite, this is not checked. The tolerances for positive semidefiniteness and unit trace can be set using the kwargs....

source
ManifoldsBase.check_vector โ Method
check_vector(M::Spectrahedron, q, Y; kwargs...)

Check whether $X = qY^{\mathrm{T}} + Yq^{\mathrm{T}}$ is a tangent vector to $p=qq^{\mathrm{T}}$ on the Spectrahedron M, i.e. atfer check_point of q, Y has to be of same dimension as q and a $X$ has to be a symmetric matrix with trace. The tolerance for the base point check and zero diagonal can be set using the kwargs.... Note that symmetry of $X$ holds by construction and is not explicitly checked.

source
ManifoldsBase.project โ Method
project(M::Spectrahedron, q, Y)

Project Y onto the tangent space at q, i.e. row-wise onto the Spectrahedron manifold.

source
ManifoldsBase.retract โ Method
retract(M::Spectrahedron, q, Y, ::ProjectionRetraction)

compute a projection based retraction by projecting $q+Y$ back onto the manifold.

source
ManifoldsBase.vector_transport_to โ Method
vector_transport_to(M::Spectrahedron, p, X, q)

transport the tangent vector X at p to q by projecting it onto the tangent space at q.

source