# Spectrahedron

`Manifolds.Spectrahedron`

— Type`Spectrahedron{N,K} <: AbstractEmbeddedManifold{ℝ,DefaultIsometricEmbeddingType}`

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^{[JourneeBachAbsilSepulchre2010]}.

**Constructor**

`Spectrahedron(n,k)`

generates the manifold $\mathcal S(n,k) \subset ℝ^{n × n}$.

`ManifoldsBase.check_manifold_point`

— Method`check_manifold_point(M::Spectrahedron, q; kwargs...)`

checks, whether `q`

is a valid reprsentation 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...`

.

`ManifoldsBase.check_tangent_vector`

— Method`check_tangent_vector(M::Spectrahedron, q, Y; check_base_point = true, 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_manifold_point`

of `q`

, `Y`

has to be of same dimension as `q`

and a $X$ has to be a symmetric matrix with trace. The optional parameter `check_base_point`

indicates, whether to call `check_manifold_point`

for `q`

. 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.

`ManifoldsBase.manifold_dimension`

— Method`manifold_dimension(M::Spectrahedron)`

returns the dimension of `Spectrahedron`

`M`

$=\mathcal S(n,k), n,k ∈ ℕ$, i.e.

\[\dim \mathcal S(n,k) = nk - 1 - \frac{k(k-1)}{2}.\]

`ManifoldsBase.project`

— Method`project(M::Spectrahedron, q)`

project `q`

onto the manifold `Spectrahedron`

`M`

, by normalizing w.r.t. the Frobenius norm

`ManifoldsBase.project`

— Method`project(M::Spectrahedron, q, Y)`

Project `Y`

onto the tangent space at `q`

, i.e. row-wise onto the oblique manifold.

`ManifoldsBase.representation_size`

— Method`representation_size(M::Spectrahedron)`

Return the size of an array representing an element on the `Spectrahedron`

manifold `M`

, i.e. $n × k$, the size of such factor of $p=qq^{\mathrm{T}}$ on $\mathcal M = \mathcal S(n,k)$.

`ManifoldsBase.retract`

— Method`retract(M::Spectrahedron, q, Y, ::ProjectionRetraction)`

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

`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`

.

`ManifoldsBase.zero_tangent_vector`

— Method`zero_tangent_vector(M::Spectrahedron,p)`

returns the zero tangent vector in the tangent space of the symmetric positive definite matrix `p`

on the `Spectrahedron`

manifold `M`

.

## Literature

- JourneeBachAbsilSepulchre2010
Journée, M., Bach, F., Absil, P.-A., and Sepulchre, R.: “Low-Rank Optimization on the Cone of Positive Semidefinite Matrices”, SIAM Journal on Optimization (20)5, pp. 2327–2351, 2010. doi: 10.1137/080731359, arXiv: 0807.4423.