exp(M::Lorentz{<:Any, MinkowskiMetric}, p, X)
log(M::Lorentz{<:Any, MinkowskiMetric}, p, q)
parallel_transport_to(M::Lorentz{<:Any, MinkowskiMetric}, p, X, q)Compute the exponential map, the logarithmic map and the parallel transport on the Lorentz manifold M with the MinkowskiMetric.
Lorentz{T} = MetricManifold{โ,Euclidean{โ,T},<:LorentzMetric}The Lorentz manifold (or Lorentzian) is a pseudo-Riemannian manifold.
LorentzMetric <: AbstractMetricAbstract type for Lorentz metrics, which have a single time dimension.
MinkowskiMetric <: LorentzMetricAs a special metric of signature , i.e. a LorentzMetric, see minkowski_metric for the formula.
metric_signature(M::Lorentz)Return the signature of the LorentzMetric of the -dimensional Lorentz manifold M, which has a single time dimension.
is_flat(M::Lorentz{<:Any, MinkowskiMetric})Return whether the Lorentz manifold M is flat.
is_flat(::CenteredMatrices)Return true.
exp(M::CholeskySpace, p, X)Compute the exponential map on the CholeskySpace M emanating from the lower triangular matrix with positive diagonal p towards the lower triangular matrix X The formula reads
log(M::CholeskySpace, 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.
is_flat(::CholeskySpace)Return true.
parallel_transport_to(M::CholeskySpace, p, X, q)Parallelly transport the tangent vector X at p along the geodesic to q on the CholeskySpace manifold M.
exp(M::Circle, p, X)Compute the exponential map on the Circle.
log(M::Circle, p, q)Compute the logarithmic map on the Circle M.
is_flat(::Circle)Return true.
parallel_transport_to(M::Circle, p, X, q)Compute the parallel transport of X from the tangent space at p to the tangent space at q on the Circle M.
is_flat(M::DeterminantOneMatrices)Return true for , where the DeterminantOneMatrices are a single point, and false otherwise, since they have nonzero sectional curvature for .
is_flat(::Elliptope)Return false.
exp(M::EssentialManifold, p, X)Compute the exponential map on the EssentialManifold from p into direction X, 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.
is_flat(::EssentialManifold)Return false.
parallel_transport_to(M::EssentialManifold, p, X, q)Compute the vector transport of the tangent vector X at p to q on the EssentialManifold M using left translation of the ambient group.
exp(M::Euclidean, p, X)Compute the exponential map on the Euclidean manifold M from p in direction X, which in this case is just
log(M::Euclidean, p, q)Compute the logarithmic map on the Euclidean M from p to q, which in this case is just
Euclidean{๐ฝ, T} <: AbstractDecoratorManifold{๐ฝ}Euclidean vector space.
is_flat(::Euclidean)Return true.
parallel_transport_to(M::Euclidean, p, X, q)the parallel transport on Euclidean is the identity, i.e. returns X.
is_flat(::FixedRankMatrices)Return false.
exp(M::GeneralizedGrassmann, p, X)Compute the exponential map on the GeneralizedGrassmann M starting in p with tangent vector (direction) X.
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.
is_flat(M::GeneralizedGrassmann)Return true if GeneralizedGrassmann M is one-dimensional.
is_flat(M::GeneralizedStiefel)Return true if GeneralizedStiefel M is one-dimensional.
exp(M::Rotations, p, X)
exp(M::OrthogonalMatrices, p, X)
exp(M::UnitaryMatrices, p, X)Compute the exponential map, that is, since is represented in the Lie algebra,
exp(M::GeneralUnitaryMatrices{โ, TypeParameter{Tuple{3}}}, p::SMatrix, X::SMatrix)Compute the exponential map on the three by three real GeneralUnitaryMatrices M for static matrices by the Rodrigues formula, Proposition 2.7 in [GQ20],
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
log(M::SpecialUnitaryMatrices, p, q)Compute the logarithmic map on the SpecialUnitaryMatrices M.
is_flat(M::GeneralUnitaryMatrices)Return true if GeneralUnitaryMatrices M is O(2), SO(2), U(1) or SU(1) and false otherwise.
parallel_transport_to(M::GeneralUnitaryMatrices, p, X, q)Compute the parallel transport of X from p to q on the GeneralUnitaryMatrices M, with tangent vectors represented in the Lie algebra.
parallel_transport_to(M::GeneralUnitaryMatrices{โ, TypeParameter{Tuple{2}}}, p, X, q)Return X, the parallel transport of X from p to q on the two by two real GeneralUnitaryMatrices M.
exp(M::Grassmann, p, X)Compute the exponential map on the Grassmann M starting in p with tangent vector (direction) X.
exp(M::Grassmann, p::ProjectorPoint, X::ProjectorTangentVector)Compute the exponential map on the Grassmann as
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.
is_flat(M::Grassmann)Return true if Grassmann M is one-dimensional.
parallel_transport_to(M::Grassmann, p, X, q)Compute the parallel transport of along the geodesic connecting to .
is_flat(::HamiltonianMatrices)Return true.
is_flat(::HeisenbergMatrices)Return true.
exp(M::HermitianPositiveDefinite, p, X)
exp(M::MetricManifold{<:HermitianPositiveDefinite,AffineInvariantMetric}, p, X)Compute the exponential map from p with tangent vector X on the HermitianPositiveDefinite M with its default MetricManifold having the AffineInvariantMetric.
log(M::HermitianPositiveDefinite, p, q)
log(M::MetricManifold{HermitianPositiveDefinite,AffineInvariantMetric}, p, q)Compute the logarithmic map from p to q on the HermitianPositiveDefinite as a MetricManifold with AffineInvariantMetric.
is_flat(M::HermitianPositiveDefinite)Return true if the HermitianPositiveDefinite M is one-dimensional, i.e. for , and false otherwise.
is_flat(M::MetricManifold{๐ฝ,<:HermitianPositiveDefinite{๐ฝ},AffineInvariantMetric})Return true if the HermitianPositiveDefinite with AffineInvariantMetric is one-dimensional, i.e. for , and false otherwise.
parallel_transport_to(M::HermitianPositiveDefinite, p, X, q)
parallel_transport_to(M::MetricManifold{HermitianPositiveDefinite,AffineInvariantMetric}, p, X, y)Compute the parallel transport of X from the tangent space at p to the tangent space at q on the HermitianPositiveDefinite as a MetricManifold with the AffineInvariantMetric.
exp(M::Hyperbolic, p, X)Compute the exponential map on the Hyperbolic space emanating from p towards X.
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.
is_flat(::Hyperbolic)Return false.
parallel_transport_to(M::Hyperbolic, p, X, q)Compute the parallel transport of the X from the tangent space at p on the Hyperbolic space to the tangent at q along the geodesic connecting p and q.
exp(M::Hyperrectangle, p, X)Compute the exponential map on the Hyperrectangle manifold M from p in direction X, which in this case is just
log(M::Hyperrectangle, p, q)Compute the logarithmic map on the Hyperrectangle M from p to q, which in this case is just
is_flat(::Hyperrectangle)Return true.
parallel_transport_to(M::Hyperrectangle, p, X, q)the parallel transport on Hyperrectangle is the identity, i.e. returns X.
is_flat(::InvertibleMatrices)Return true.
metric_signature(M::AbstractManifold)Return the signature of the metric of M, i.e. the numbers of positive, negative and zero eigenvalues of the matrix of the metric in a basis of a tangent space, see local_metric.
is_flat(::MultinomialDoubleStochastic)Return false.
is_flat(M::MultinomialSymmetric)Return true if the MultinomialSymmetric M is one-dimensional, that is for , and false otherwise.
is_flat(M::MultinomialSymmetricPositiveDefinite)Return whether the MultinomialSymmetricPositiveDefinite M is flat, which is the case if and only if its dimension is one.
parallel_transport_to(M::Oblique, p, X, q)Compute the parallel transport on the Oblique manifold by doing a column wise parallel transport on the Sphere
exp(M::PositiveNumbers, p, X)Compute the exponential map on the PositiveNumbers M.
log(M::PositiveNumbers, p, q)Compute the logarithmic map on the PositiveNumbers M.
is_flat(::PositiveNumbers)Return false.
parallel_transport_to(M::PositiveNumbers, p, X, q)Compute the parallel transport of X from the tangent space at p to the tangent space at q on the PositiveNumbers M.
metric_signature(M::AbstractPowerManifold)Return the signature of the metric of the power manifold M, i.e. the signature of the manifold that is raised to a power, multiplied by the number of its copies.
exp(M::ProbabilitySimplex, p, X)Compute the exponential map on the probability simplex.
log(M::ProbabilitySimplex, p, q)Compute the logarithmic map of p and q on the ProbabilitySimplex M.
is_flat(::ProbabilitySimplex)Return false.
metric_signature(M::ProductManifold)Return the signature of the metric of the ProductManifold M, i.e. the sum of the signatures of the manifolds M is constructed from.
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.
is_flat(M::AbstractProjectiveSpace)Return true if AbstractProjectiveSpace is of dimension 1 and false otherwise.
parallel_transport_to(M::AbstractProjectiveSpace, p, X, q)Parallel transport a vector X from the tangent space at a point p on the AbstractProjectiveSpace M to the tangent space at another point q.
exp(M::MetricManifold{โ, Segre{โ, V}, WarpedMetric{A}}, p, X)Exponential map on the warped Segre manifold.
exp(M::Segre{โ, V}, p, X)Exponential map on the Segre manifold.
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.
exp(M::KendallsShapeSpace, p, X)Compute the exponential map on KendallsShapeSpace M.
log(M::KendallsShapeSpace, p, q)Compute the logarithmic map on KendallsShapeSpace M.
is_flat(::KendallsShapeSpace)Return false.
is_flat(::SkewHermitianMatrices)Return true.
is_flat(M::SPDFixedDeterminant)Return true if the SPDFixedDeterminant M is a single point, i.e. for , and false otherwise.
is_flat(::Spectrahedron)Return false.
exp(M::AbstractSphere, p, X)Compute the exponential map from p in the tangent direction X on the AbstractSphere M by following the great arc emanating from p in direction X.
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.
is_flat(M::AbstractSphere)Return true if AbstractSphere is of dimension 1 and false otherwise.
parallel_transport_to(M::AbstractSphere, p, X, q)Compute the parallel transport on the Sphere of the tangent vector X at p to q, provided, the geodesic between p and q is unique.
is_flat(::SphereSymmetricMatrices)Return false.
q = exp(M::MetricManifold{โ,<:Stiefel{โ},<:StiefelSubmersionMetric}, p, X)
exp!(M::MetricManifold{โ,<:Stiefel{โ},<:StiefelSubmersionMetric}, q, p, X)Compute the exponential map on the Stiefel(n,k) manifold with respect to the StiefelSubmersionMetric.
q = exp(M::MetricManifold{โ,<:Stiefel{โ},CanonicalMetric}, p, X)
exp!(M::MetricManifold{โ,<:Stiefel{โ},CanonicalMetric}, q, p, X)Compute the exponential map on the Stiefel(n, k) manifold with respect to the CanonicalMetric.
exp(M::Stiefel, p, X)Compute the exponential map on the Stiefel{n,k,๐ฝ}() manifold M emanating from p in tangent direction X.
log(M::MetricManifold{โ,<:Stiefel{โ},<:StiefelSubmersionMetric}, p, q; kwargs...)Compute the logarithmic map on the Stiefel(n,k) manifold with respect to the StiefelSubmersionMetric.
log(M::MetricManifold{โ,<:Stiefel{โ},CanonicalMetric}, p, q; maxiter=10000, tolerance=1.0e-9)Compute an approximation of the logarithmic map on the Stiefel(n, k) manifold with respect to the CanonicalMetric.
is_flat(MetricManifold{โ,<:Stiefel{โ},CanonicalMetric})Return true if Stiefel M is one-dimensional, since only then, the manifold is flat.
is_flat(M::Stiefel)Return true if Stiefel M is one-dimensional.
is_flat(::SymmetricMatrices)Return true.
exp(M::MetricManifold{โ,<:SymmetricPositiveDefinite,<:GeneralizedBuresWassersteinMetric}, p, X)Compute the exponential map on the SymmetricPositiveDefinite manifold M with respect to the GeneralizedBuresWassersteinMetric with matrix , given in Table 1 of [HMJG23] by
exp(::MetricManifold{โ,SymmetricPositiveDefinite,BuresWassersteinMetric}, p, X)Compute the exponential map on SymmetricPositiveDefinite with respect to the BuresWassersteinMetric given by
exp(M::MetricManifold{SymmetricPositiveDefinite,LogCholeskyMetric}, p, X)Compute the exponential map on the SymmetricPositiveDefinite M with LogCholeskyMetric from p into direction X.
exp(M::SymmetricPositiveDefinite, p, X)
exp(M::MetricManifold{<:SymmetricPositiveDefinite,AffineInvariantMetric}, p, X)Compute the exponential map from p with tangent vector X on the SymmetricPositiveDefinite M with its default MetricManifold having the AffineInvariantMetric.
log(M::MetricManifold{โ,<:SymmetricPositiveDefinite,<:GeneralizedBuresWassersteinMetric}, p, q)Compute the logarithmic map on the SymmetricPositiveDefinite manifold M with respect to the GeneralizedBuresWassersteinMetric with matrix 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.
is_flat(M::MetricManifold{โ,<:SymmetricPositiveDefinite,<:GeneralizedBuresWassersteinMetric})Return true if the SymmetricPositiveDefinite with GeneralizedBuresWassersteinMetric is one-dimensional, i.e. for , and false otherwise.
is_flat(M::MetricManifold{โ,<:SymmetricPositiveDefinite,AffineInvariantMetric})Return true if the SymmetricPositiveDefinite with AffineInvariantMetric is one-dimensional, i.e. for , and false otherwise.
is_flat(M::MetricManifold{โ,<:SymmetricPositiveDefinite,BuresWassersteinMetric})Return true if the SymmetricPositiveDefinite with BuresWassersteinMetric is one-dimensional, i.e. for , and false otherwise.
is_flat(::MetricManifold{โ,<:SymmetricPositiveDefinite,LogCholeskyMetric})Return true.
is_flat(::MetricManifold{โ,<:SymmetricPositiveDefinite,LogEuclideanMetric})Return true.
vector_transport_to(
M::MetricManifold{โ,<:SymmetricPositiveDefinite,LogCholeskyMetric},
p,
X,
q,
::ParallelTransport,
)Parallel transport the tangent vector X at p along the geodesic to q with respect to the SymmetricPositiveDefinite manifold M and LogCholeskyMetric.
parallel_transport_to(M::SymmetricPositiveDefinite, p, X, q)
parallel_transport_to(M::MetricManifold{SymmetricPositiveDefinite,AffineInvariantMetric}, p, X, y)Compute the parallel transport of X from the tangent space at p to the tangent space at q on the SymmetricPositiveDefinite as a MetricManifold with the AffineInvariantMetric.
exp(M::SymmetricPositiveSemidefiniteFixedRank, q, Y)Compute the exponential map on the SymmetricPositiveSemidefiniteFixedRank, which just reads
log(M::SymmetricPositiveSemidefiniteFixedRank, q, p)Compute the logarithmic map on the SymmetricPositiveSemidefiniteFixedRank manifold by minimizing with respect to .
is_flat(::SymmetricPositiveSemidefiniteFixedRank)Return false.
exp(M::SymplecticMatrices, p, X)
exp!(M::SymplecticMatrices, q, p, X)The Exponential mapping on the Symplectic manifold with the RealSymplecticMetric Riemannian metric.
is_flat(::SymplecticMatrices)Return false.
exp(::SymplecticGrassmann, p, X)
exp!(M::SymplecticGrassmann, q, p, X)Compute the exponential mapping
is_flat(::SymplecticGrassmann)Return true if the SymplecticGrassmann degenerates to a point, false otherwise.
exp(::SymplecticStiefel, p, X)
exp!(M::SymplecticStiefel, q, p, X)Compute the exponential mapping
is_flat(::SymplecticStiefel)Return false.
is_flat(::EmbeddedTorus)Return false.
is_flat(::Tucker)Return false.
metric_signature(B::Union{TangentBundle, CotangentBundle})Return the signature of the metric of the tangent or cotangent bundle B, which is twice the signature of its base manifold, since the metric is the sum of the metrics of the base manifold and the fibe
metric_signature(F::Union{TangentSpace, CotangentSpace})Return the signature of the metric of the tangent or cotangent space F, which is the one of the base manifold, since the metric of a cotangent space is dual to it.
is_flat(::VectorBundle)Return true if the underlying manifold of VectorBundle M is flat.
exp(M::Veronese, p, X)
exp!(M::Veronese, q, p, X)Exponential map on Veronese.
log(M::Veronese, p, q)
log!(M::Veronese, X, p, q)The logarithmic map returns the tangent vector X at p such that along a minimizing geodesic.