Skew-hermitian matrices
Manifolds.SkewHermitianMatrices
โ TypeSkewHermitianMatrices{T,๐ฝ} <: AbstractDecoratorManifold{๐ฝ}
The AbstractManifold
$\operatorname{SkewHerm}(n)$ consisting of the real- or complex-valued skew-hermitian matrices of size $nรn$, i.e. the set
\[\operatorname{SkewHerm}(n) = \bigl\{p โ ๐ฝ^{nรn}\ \big|\ p^{\mathrm{H}} = -p \bigr\},\]
where $โ ^{\mathrm{H}}$ denotes the Hermitian, i.e. complex conjugate transpose, and the field $๐ฝ โ \{ โ, โ, โ\}$.
Though it is slightly redundant, usually the matrices are stored as $nรn$ arrays.
Note that in this representation, the real-valued part of the diagonal must be zero, which is also reflected in the manifold_dimension
.
Constructor
SkewHermitianMatrices(n::Int, field::AbstractNumbers=โ; parameter::Symbol=:type)
Generate the manifold of $nรn$ skew-hermitian matrices.
Manifolds.SkewSymmetricMatrices
โ TypeSkewSymmetricMatrices{T}
Generate the manifold of $nรn$ real skew-symmetric matrices. This is equivalent to SkewHermitianMatrices(n, โ)
.
Constructor
SkewSymmetricMatrices(n::Int)
ManifoldsBase.Weingarten
โ MethodY = Weingarten(M::SkewSymmetricMatrices, p, X, V)
Weingarten!(M::SkewSymmetricMatrices, Y, p, X, V)
Compute the Weingarten map $\mathcal W_p$ at p
on the SkewSymmetricMatrices
M
with respect to the tangent vector $X \in T_p\mathcal M$ and the normal vector $V \in N_p\mathcal M$.
Since this a flat space by itself, the result is always the zero tangent vector.
ManifoldsBase.check_point
โ Methodcheck_point(M::SkewHermitianMatrices, p; kwargs...)
Check whether p
is a valid manifold point on the SkewHermitianMatrices
M
, i.e. whether p
is a skew-hermitian matrix of size (n,n)
with values from the corresponding AbstractNumbers
๐ฝ
.
The tolerance for the skew-symmetry of p
can be set using kwargs...
.
ManifoldsBase.check_vector
โ Methodcheck_vector(M::SkewHermitianMatrices, p, X; kwargs... )
Check whether X
is a tangent vector to manifold point p
on the SkewHermitianMatrices
M
, i.e. X
must be a skew-hermitian matrix of size (n,n)
and its values have to be from the correct AbstractNumbers
. The tolerance for the skew-symmetry of p
and X
can be set using kwargs...
.
ManifoldsBase.is_flat
โ Methodis_flat(::SkewHermitianMatrices)
Return true. SkewHermitianMatrices
is a flat manifold.
ManifoldsBase.manifold_dimension
โ Methodmanifold_dimension(M::SkewHermitianMatrices)
Return the dimension of the SkewHermitianMatrices
matrix M
over the number system ๐ฝ
, i.e.
\[\dim \mathrm{SkewHerm}(n,โ) = \frac{n(n+1)}{2} \dim_โ ๐ฝ - n,\]
where $\dim_โ ๐ฝ$ is the real_dimension
of $๐ฝ$. The first term corresponds to only the upper triangular elements of the matrix being unique, and the second term corresponds to the constraint that the real part of the diagonal be zero.
ManifoldsBase.project
โ Methodproject(M::SkewHermitianMatrices, p, X)
Project the matrix X
onto the tangent space at p
on the SkewHermitianMatrices
M
,
\[\operatorname{proj}_p(X) = \frac{1}{2} \bigl( X - X^{\mathrm{H}} \bigr),\]
where $โ ^{\mathrm{H}}$ denotes the Hermitian, i.e. complex conjugate transposed.
ManifoldsBase.project
โ Methodproject(M::SkewHermitianMatrices, p)
Projects p
from the embedding onto the SkewHermitianMatrices
M
, i.e.
\[\operatorname{proj}_{\operatorname{SkewHerm}(n)}(p) = \frac{1}{2} \bigl( p - p^{\mathrm{H}} \bigr),\]
where $โ ^{\mathrm{H}}$ denotes the Hermitian, i.e. complex conjugate transposed.