Matrices of determinant one
Manifolds.DeterminantOneMatrices
โ TypeDeterminantOneMatrices{๐ฝ,T} <: AbstractDecoratorManifold{๐ฝ}
The AbstractManifold
consisting of the real- or complex-valued (invertible) matrices od determinant one, that is the set
\[\bigl\{p โ ๐ฝ^{nรn}\ \big|\ \det(p) = 1 \bigr\},\]
where the field $๐ฝ โ \{ โ, โ\}$.
Note that this is a subset of InvertibleMatrices
, and a superset of any of the GeneralUnitaryMatrices
The tangent space at any point p
is the set of matrices with trace 0.
Constructor
DeterminantOneMatrices(n::Int, field::AbstractNumbers=โ)
Generate the manifold of $nรn$ matrices of determinant one.
Base.rand
โ MethodRandom.rand(M::DeterminantOneMatrices; vector_at=nothing, kwargs...)
If vector_at
is nothing
, return a random point on the DeterminantOneMatrices
manifold M
by using rand
in the embedding.
If vector_at
is not nothing
, return a random tangent vector from the tangent space of the point vector_at
on the DeterminantOneMatrices
by using by using rand
in the embedding.
ManifoldsBase.check_point
โ Methodcheck_point(M::DeterminantOneMatrices{n,๐ฝ}, p; kwargs...)
Check whether p
is a valid manifold point on the DeterminantOneMatrices
M
, i.e. whether p
has a determinant of $1$.
The check is perfomed with isapprox
and all keyword arguments are passed to this
ManifoldsBase.check_vector
โ Methodcheck_vector(M::DeterminantOneMatrices{n,๐ฝ}, p, X; kwargs... )
Check whether X
is a tangent vector to manifold point p
on the DeterminantOneMatrices
M
, which are all matrices of size $nรn$ with trace 0.
ManifoldsBase.manifold_dimension
โ Methodmanifold_dimension(M::DeterminantOneMatrices{n,๐ฝ})
Return the dimension of the DeterminantOneMatrices
matrix M
over the number system ๐ฝ
, which is one dimension less than its embedding, the Euclidean
(n, n; field=๐ฝ)
.
ManifoldsBase.project
โ Methodproject(G::DeterminantOneMatrices, p, X)
project!(G::DeterminantOneMatrices, Y, p, X)
Orthogonally project $X โ ๐ฝ^{nรn}$ onto the tangent space of $p$ to the DeterminantOneMatrices
.
This first changes the representation from X
to the trace-zero component, i.e. computes Y = p \ X
and then subtracts c = tr(Y) / n
from all diagonal entries.
ManifoldsBase.project
โ Methodproject(G::DeterminantOneMatrices, p)
project!(G::DeterminantOneMatrices, q, p)
Project $p โ \mathrm{GL}(n, ๐ฝ)$ to the DeterminantOneMatrices
using the singular value decomposition of $p = U S V^\mathrm{H}$.
The formula for the projection is
\[\operatorname{proj}(p) = U S D V^\mathrm{H},\]
where
\[D_{ij} = ฮด_{ij} \begin{cases} 1 & \text{ if } i โ n \\ \det(p)^{-1} & \text{ if } i = n \end{cases}.\]
The operation can be done in-place of q
.