manifold_volume(M::AbstractManifold)Volume of manifold M defined through integration of Riemannian volume element in a chart.
volume_density(M::AbstractManifold, p, X)Volume density function of manifold M, i.e. determinant of the differential of exponential map exp(M, p, X).
manifold_dimension(M::CenteredMatrices)Return the manifold dimension of the CenteredMatrices m-by-n matrix M over the number system π½, i.e.
log(M::CholeskySpace, X, p, q)Compute the logarithmic map on the CholeskySpace M for the geodesic emanating from the lower triangular matrix with positive diagonal p towards q.
manifold_dimension(M::CholeskySpace)Return the manifold dimension for the CholeskySpace M, i.e.
log(M::Circle, p, q)Compute the logarithmic map on the Circle M.
Random.rand(M::Circle{β}; vector_at = nothing, Ο::Real=1.0)If vector_at is nothing, return a random point on the Circle by picking a random element from uniformly.
manifold_volume(M::Circle)Return the volume of the Circle M, i.e. .
volume_density(::Circle, p, X)Return volume density of Circle, i.e. 1.
get_coordinates(M::Circle{β}, p, X, B::DefaultOrthonormalBasis)Return tangent vector coordinates in the Lie algebra of the Circle.
manifold_dimension(M::Circle)Return the dimension of the Circle M, i.e. .
Random.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.
manifold_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=π½).
manifold_dimension(M::Elliptope)returns the dimension of Elliptope M , i.e.
log(M::EssentialManifold, p, q)Compute the logarithmic map on the EssentialManifold M, i.e. the tangent vector, whose geodesic starting from p reaches q after time 1.
manifold_dimension(M::EssentialManifold{is_signed, β})Return the manifold dimension of the EssentialManifold, which is 5[TD17].
log(M::Euclidean, p, q)Compute the logarithmic map on the Euclidean M from p to q, which in this case is just
norm(M::Euclidean, p, X, r::Real=2)Compute the norm of a tangent vector X at p on the Euclidean M, i.e. since every tangent space can be identified with M itself in this case, just the (Frobenius) norm of X.
manifold_volume(::Euclidean)Return volume of the Euclidean manifold, i.e. infinity.
volume_density(M::Euclidean, p, X)Return volume density function of Euclidean manifold M, i.e. 1.
manifold_dimension(M::Euclidean)Return the manifold dimension of the Euclidean M, i.e. the product of all array dimensions and the real_dimension of the underlying number system.
Random.rand(M::FixedRankMatrices; vector_at=nothing, kwargs...)If vector_at is nothing, return a random point on the FixedRankMatrices manifold.
manifold_dimension(M::FixedRankMatrices)Return the manifold dimension for the π½-valued FixedRankMatrices M of dimension mxn of rank k, namely
manifold_dimension(M::Flag)Return dimension of flag manifold .
log(M::GeneralizedGrassmann, p, q)Compute the logarithmic map on the GeneralizedGrassmann M , i.e. the tangent vector X whose corresponding geodesic starting from p reaches q after time 1 on M.
rand(::GeneralizedGrassmann; vector_at=nothing, Ο::Real=1.0)When vector_at is nothing, return a random (Gaussian) point p on the GeneralizedGrassmann manifold M.
manifold_dimension(M::GeneralizedGrassmann)Return the dimension of the GeneralizedGrassmann(n,k,π½) manifold M, i.e.
rand(::GeneralizedStiefel; vector_at=nothing, Ο::Real=1.0)When vector_at is nothing, return a random (Gaussian) point p on the GeneralizedStiefel manifold M.
manifold_dimension(M::GeneralizedStiefel)Return the dimension of the GeneralizedStiefel manifold M=.
log(M::Rotations, p, X)
log(M::OrthogonalMatrices, p, X)
log(M::UnitaryMatrices, p, X)Compute the logarithmic map, that is, since the resulting is represented in the Lie algebra,
log(M::Rotations, p, q)Compute the logarithmic map on the Rotations manifold M which is given by
rand(::Unitary; vector_at=nothing, Ο::Real=1.0)Generate a random point on the UnitaryMatrices manifold, if vector_at is nothing, by computing the QR decomposition of an matrix.
manifold_volume(::GeneralUnitaryMatrices{β,<:Any,AbsoluteDeterminantOneMatrixType})Volume of the manifold of real orthogonal matrices of absolute determinant one.
manifold_volume(::GeneralUnitaryMatrices{β,<:Any,DeterminantOneMatrixType})Volume of the manifold of real orthogonal matrices of determinant one.
manifold_volume(::SpecialUnitaryMatrices)Volume of the manifold of complex general unitary matrices of determinant one.
manifold_volume(::GeneralUnitaryMatrices{β,<:Any,AbsoluteDeterminantOneMatrixType})Volume of the manifold of complex general unitary matrices of absolute determinant one.
volume_density(M::GeneralUnitaryMatrices{β, TypeParameter{Tuple{2}}}, p, X)Volume density on O(2)/SO(2) is equal to 1.
volume_density(M::GeneralUnitaryMatrices{β, TypeParameter{Tuple{3}}}, p, X)Compute the volume density on O(3)/SO(3).
volume_density(M::GeneralUnitaryMatrices{<:Any,β}, p, X)Compute volume density function of a sphere, i.e. determinant of the differential of exponential map exp(M, p, X).
get_coordinates(M::Rotations, p, X)
get_coordinates(M::OrthogonalMatrices, p, X)
get_coordinates(M::UnitaryMatrices, p, X)Extract the unique tangent vector components at point p on Rotations from the matrix representation X of the tangent vector.
get_coordinates(M::UnitaryMatrices, p, X, B::DefaultOrthonormalBasis)Extract the unique tangent vector coordinates at point p on UnitaryMatrices from the skew-Hermitian tangent vector X.
manifold_dimension(M::Rotations)
manifold_dimension(M::OrthogonalMatrices)Return the dimension of the manifold orthogonal matrices and of the manifold of rotations
manifold_dimension(M::SpecialUnitaryMatrices)Return the dimension of the manifold of special unitary matrices.
manifold_dimension(M::UnitaryMatrices{n,β}) where {n}Return the dimension of the manifold unitary matrices.
manifold_dimension(M::UnitaryMatrices{<:Any,β})Return the dimension of the manifold unitary matrices.
manifold_dimension(N::GraphManifold{G,π½,M,EdgeManifold})returns the manifold dimension of the GraphManifold N on the edges of a graph , i.e.
manifold_dimension(N::GraphManifold{G,π½,M,VertexManifold})returns the manifold dimension of the GraphManifold N on the vertices of a graph , i.e.
log(M::Grassmann, p, q)Compute the logarithmic map on the Grassmann M , i.e. the tangent vector X whose corresponding geodesic starting from p reaches q after time 1 on M.
rand(M::Grassmann; Ο::Real=1.0, vector_at=nothing)When vector_at is nothing, return a random point p on Grassmann manifold M by generating a random (Gaussian) matrix with standard deviation Ο in matching size, which is orthonormal.
get_coordinates(M::Grasmmann{β}, p, X, B::DefaultOrthonormalBasis)Given a point p on the Grassmann manifold M in Stiefel representation, i.e. compute the coordinates representing the tangent vector X with respect to the DefaultOrthonormalBasis.
manifold_dimension(M::Grassmann)Return the dimension of the Grassmann(n,k,π½) manifold M, i.e.
pX = rand(M::HamiltonianMatrices; Ο::Real=1.0, vector_at=nothing)
rand!(rng::AbstractRNG, M::HamiltonianMatrices, pX; Ο::Real=1.0, vector_at=nothing)Generate a random Hamiltonian matrix.
pX = rand(M::HamiltonianMatrices; Ο::Real=1.0, vector_at=nothing)
rand!(rng::AbstractRNG, M::HamiltonianMatrices, pX; Ο::Real=1.0, vector_at=nothing)Generate a random Hamiltonian matrix.
Random.rand(M::HeisenbergMatrices; vector_at = nothing, Ο::Real=1.0)If vector_at is nothing, return a random point on the HeisenbergMatrices M by sampling elements of the first row and the last column from the normal distribution with mean 0 and standard deviation Ο.
get_coordinates(M::HeisenbergMatrices, p, X, ::DefaultOrthonormalBasis{β,TangentSpaceType})Get coordinates of tangent vector X at point p from the HeisenbergMatrices M.
manifold_dimension(M::HeisenbergMatrices)Return the dimension of HeisenbergMatrices(n), which is equal to .
log(M::Hyperbolic, p, q)Compute the logarithmic map on the Hyperbolic space , the tangent vector representing the geodesic starting from p reaches q after time 1.
manifold_dimension(M::Hyperbolic)Return the volume of the hyperbolic space manifold , i.e. infinity.
volume_density(M::Hyperbolic, p, X)Compute volume density function of the hyperbolic manifold.
get_coordinates(M::Hyperbolic, p, X, ::DefaultOrthonormalBasis)Compute the coordinates of the vector X with respect to an orthonormal basis of the tangent space at p.
manifold_dimension(M::Hyperbolic)Return the dimension of the hyperbolic space manifold , i.e. .
Random.rand!(rng, M::Hyperbolic, pX; vector_at = nothing, Ο = one(eltype(pX)) / sqrt(manifold_dimension(M)))Fill pX in-place with a random object on the Hyperbolic manifold M (hyperboloid model).
log(M::Hyperrectangle, p, q)Compute the logarithmic map on the Hyperrectangle M from p to q, which in this case is just
norm(M::Hyperrectangle, p, X, r::Real = 2)Compute the norm of a tangent vector X at p on the Hyperrectangle M, i.e. since every tangent space can be identified with M itself in this case, just the (Frobenius) norm of X.
manifold_volume(::Hyperrectangle)Return volume of the Hyperrectangle manifold, i.e. infinity.
volume_density(M::Hyperrectangle, p, X)Return volume density function of Hyperrectangle manifold M, i.e. 1.
manifold_dimension(M::Hyperrectangle)Return the manifold dimension of the Hyperrectangle M, i.e. the product of all array dimensions.
Random.rand(M::InvertibleMatrices; vector_at=nothing, kwargs...)If vector_at is nothing, return a random point on the InvertibleMatrices manifold M by using rand in the embedding.
manifold_dimension(M::InvertibleMatrices{n,π½})Return the dimension of the InvertibleMatrices matrix M over the number system π½, which is the same dimension as its embedding, the Euclidean(n, n; field=π½).
rand(::MultinomialDoubleStochastic; vector_at=nothing, Ο::Real=1.0, kwargs...)Generate random points on the MultinomialDoubleStochastic manifold or tangent vectors at the point vector_at if that is not nothing.
manifold_dimension(M::MultinomialDoubleStochastic)returns the dimension of the MultinomialDoubleStochastic manifold namely
rand(::MultinomialSymmetric; vector_at=nothing, Ο::Real=1.0, kwargs...)Generate random points on the MultinomialSymmetric manifold or tangent vectors at the point vector_at if that is not nothing.
manifold_dimension(M::MultinomialSymmetric)returns the dimension of the MultinomialSymmetric manifold namely
Random.rand!(
rng::AbstractRNG,
M::MultinomialSymmetricPositiveDefinite,
p::AbstractMatrix,
)Generate a random point on MultinomialSymmetricPositiveDefinite manifold.
log(M::PositiveNumbers, p, q)Compute the logarithmic map on the PositiveNumbers M.
manifold_volume(M::PositiveNumbers)Return volume of PositiveNumbers M, i.e. Inf.
volume_density(M::PositiveNumbers, p, X)Compute volume density function of PositiveNumbers.
get_coordinates(::PositiveNumbers, p, X, ::DefaultOrthonormalBasis{β})Compute the coordinate of vector X which is tangent to p on the PositiveNumbers manifold.
manifold_dimension(M::PositiveNumbers)Return the dimension of the PositiveNumbers M, i.e. of the 1-dimensional hyperbolic space,
manifold_volume(M::PowerManifold)Return the manifold volume of an PowerManifold M.
volume_density(M::PowerManifold, p, X)Return volume density on the PowerManifold M, i.e. product of constituent volume densities.
log(M::ProbabilitySimplex, p, q)Compute the logarithmic map of p and q on the ProbabilitySimplex M.
rand(::MetricManifold{β,<:ProbabilitySimplex,<:EuclideanMetric}; vector_at=nothing, Ο::Real=1.0)When vector_at is nothing, return a random (uniform) point x on the ProbabilitySimplex M with the Euclidean metric.
rand(::ProbabilitySimplex; vector_at=nothing, Ο::Real=1.0)When vector_at is nothing, return a random point x on the ProbabilitySimplex manifold M.
manifold_volume(::MetricManifold{β,<:ProbabilitySimplex{n},<:EuclideanMetric})) where {n}Return the volume of the ProbabilitySimplex with the Euclidean metric.
manifold_volume(::ProbabilitySimplex)Return the volume of the ProbabilitySimplex, i.e. volume of the n-dimensional Sphere divided by , corresponding to the volume of its positive orthant.
volume_density(::MetricManifold{β,<:ProbabilitySimplex,<:EuclideanMetric}, p, X)Compute the volume density at point p on ProbabilitySimplex M for tangent vector X.
volume_density(M::ProbabilitySimplex, p, X)Compute the volume density at point p on ProbabilitySimplex M for tangent vector X.
manifold_dimension(M::ProbabilitySimplex)Returns the manifold dimension of the probability simplex in , i.e.
manifold_volume(M::ProductManifold)Return the volume of ProductManifold M, i.e. product of volumes of the manifolds M is constructed from.
volume_density(M::ProductManifold, p, X)Return volume density on the ProductManifold M, i.e. product of constituent volume densities.
log(M::AbstractProjectiveSpace, p, q)Compute the logarithmic map on AbstractProjectiveSpace M, i.e. the tangent vector whose corresponding geodesic starting from p reaches q after time 1 on M.
manifold_volume(M::AbstractProjectiveSpace{β})Volume of the -dimensional AbstractProjectiveSpace M.
get_coordinates(M::AbstractProjectiveSpace, p, X, B::DefaultOrthonormalBasis{β})Represent the tangent vector at point from the AbstractProjectiveSpace in an orthonormal basis.
manifold_dimension(M::AbstractProjectiveSpace{π½}) where {π½}Return the real dimension of the AbstractProjectiveSpace M, respectively i.e. the real dimension of the embedding minus the real dimension of the field π½.
log(M::MetricManifold{β, Segre{β,V}, WarpedMetric{A}}, p, q)Logarithmic map on the warped Segre manifold.
log(M::Segre{β, V}, p, q)Logarithmic map on the Segre manifold.
rand(M::Segre{β, V}; vector_at=nothing)If vector_at is nothing, return a random point on
get_coordinates(M::Segre{π½, V}, p, X, ::DefaultOrthonormalBasis; kwargs...)Get coordinates of X in the tangent space using a DefaultOrthonormalBasis on each factor.
get_coordinates(M::Segre{π½, V}, p, v, ::DefaultOrthonormalBasis; kwargs...)Get coordinates of X in the tangent space using a DefaultOrthonormalBasis on each factor.
log(M::KendallsShapeSpace, p, q)Compute the logarithmic map on KendallsShapeSpace M.
rand(::KendallsShapeSpace; vector_at=nothing)When vector_at is nothing, return a random point x on the KendallsShapeSpace manifold M by generating a random point in the embedding.
manifold_dimension(M::KendallsPreShapeSpace)Return the dimension of the KendallsPreShapeSpace manifold M.
manifold_dimension(M::KendallsShapeSpace)Return the dimension of the KendallsShapeSpace manifold M.
manifold_dimension(M::SkewHermitianMatrices)Return the dimension of the SkewHermitianMatrices matrix M over the number system π½, i.e.
manifold_dimension(M::Spectrahedron)returns the dimension of Spectrahedron M, i.e.
log(M::AbstractSphere, p, q)Compute the logarithmic map on the AbstractSphere M, i.e. the tangent vector, whose geodesic starting from p reaches q after time 1.
Sphere{π½, T} <: AbstractSphere{π½}The (unit) sphere manifold is the set of all unit norm vectors in .
manifold_volume(M::AbstractSphere{β})Volume of the -dimensional Sphere M.
volume_density(M::AbstractSphere{β}, p, X)Compute volume density function of a sphere, i.e. determinant of the differential of exponential map exp(M, p, X).
get_coordinates(M::AbstractSphere{β}, p, X, B::DefaultOrthonormalBasis)Represent the tangent vector X at point p from the AbstractSphere M in an orthonormal basis by rotating the hyperplane containing X to a hyperplane whose normal is the -axis.
manifold_dimension(M::AbstractSphere)Return the dimension of the AbstractSphere M, respectively i.e. the dimension of the embedding -1.
manifold_dimension(M::SphereSymmetricMatrices{<:Any,π½})Return the manifold dimension of the SphereSymmetricMatrices n-by-n symmetric matrix M of unit Frobenius norm over the number system π½, i.e.
log(M::MetricManifold{β,<:Stiefel{β},<:StiefelSubmersionMetric}, p, q; kwargs...)Compute the logarithmic map on the Stiefel(n,k) manifold with respect to the StiefelSubmersionMetric.
rand(::Stiefel; vector_at=nothing, Ο::Real=1.0)When vector_at is nothing, return a random (Gaussian) point x on the Stiefel manifold M.
manifold_dimension(M::Stiefel)Return the dimension of the Stiefel manifold M=.
manifold_dimension(M::SymmetricMatrices{n,π½})Return the dimension of the SymmetricMatrices matrix M over the number system π½, i.e.
log(::MetricManifold{β,<:SymmetricPositiveDefinite,<:GeneralizedBuresWassersteinMetric}, p, q)Compute the logarithmic map on SymmetricPositiveDefinite with respect to the BuresWassersteinMetric given by
log(::MetricManifold{SymmetricPositiveDefinite,BuresWassersteinMetric}, p, q)Compute the logarithmic map on SymmetricPositiveDefinite with respect to the BuresWassersteinMetric given by
log(M::MetricManifold{β,<:SymmetricPositiveDefinite,LogCholeskyMetric}, p, q)Compute the logarithmic map on SymmetricPositiveDefinite M with respect to the LogCholeskyMetric emanating from p to q.
log(M::SymmetricPositiveDefinite, p, q)
log(M::MetricManifold{SymmetricPositiveDefinite,AffineInvariantMetric}, p, q)Compute the logarithmic map from p to q on the SymmetricPositiveDefinite as a MetricManifold with AffineInvariantMetric.
rand(M::SymmetricPositiveDefinite; Ο::Real=1)Generate a random symmetric positive definite matrix on the SymmetricPositiveDefinite manifold M.
manifold_volume(::SymmetricPositiveDefinite)Return volume of the SymmetricPositiveDefinite manifold, i.e. infinity.
volume_density(::SymmetricPositiveDefinite, p, X)Compute the volume density of the SymmetricPositiveDefinite manifold at p in direction X.
manifold_dimension(M::SymmetricPositiveDefinite)returns the dimension of SymmetricPositiveDefinite M , i.e.
log(M::SymmetricPositiveSemidefiniteFixedRank, q, p)Compute the logarithmic map on the SymmetricPositiveSemidefiniteFixedRank manifold by minimizing with respect to .
manifold_dimension(M::SymmetricPositiveSemidefiniteFixedRank)Return the dimension of the SymmetricPositiveSemidefiniteFixedRank matrix M over the number system π½, i.e.
rand(::SymplecticMatrices; vector_at=nothing, Ο::Real=1.0)Generate a random point on or a random tangent vector if vector_at is set to a point .
manifold_dimension(::SymplecticMatrices)Returns the dimension of the symplectic manifold embedded in , i.e.
manifold_dimension(::SymplecticGrassmann)Return the dimension of the SymplecticGrassmann(2n,2k), which is
rand(M::SymplecticStiefel; vector_at=nothing, Ο = 1.0)Generate a random point or a random tangent vector if vector_at is set to a point .
manifold_dimension(::SymplecticStiefel)Returns the dimension of the symplectic Stiefel manifold embedded in , i.e. [BZ21]
manifold_dimension(M::EmbeddedTorus)Return the dimension of the EmbeddedTorus M that is 2.
manifold_dimension(::Tucker)The dimension of the manifold of tensors of multilinear rank , i.e.