Product manifold
Product manifold $\mathcal M = \mathcal{M}_1 Γ \mathcal{M}_2 Γ β¦ Γ \mathcal{M}_n$ of manifolds $\mathcal{M}_1, \mathcal{M}_2, β¦, \mathcal{M}_n$. Points on the product manifold can be constructed using ArrayPartition
(from RecursiveArrayTools.jl
) with canonical projections $Ξ _i : \mathcal{M} β \mathcal{M}_i$ for $i β 1, 2, β¦, n$ provided by submanifold_component
.
Manifolds.ProductFVectorDistribution
β TypeProductFVectorDistribution([type::VectorSpaceFiber], [x], distrs...)
Generates a random vector at point x
from vector space (a fiber of a tangent bundle) of type type
using the product distribution of given distributions.
Vector space type and x
can be automatically inferred from distributions distrs
.
Manifolds.ProductPointDistribution
β TypeProductPointDistribution(M::ProductManifold, distributions)
Product distribution on manifold M
, combined from distributions
.
ManifoldDiff.riemannian_Hessian
β MethodY = riemannian_Hessian(M::ProductManifold, p, G, H, X)
riemannian_Hessian!(M::ProductManifold, Y, p, G, H, X)
Compute the Riemannian Hessian $\operatorname{Hess} f(p)[X]$ given the Euclidean gradient $β f(\tilde p)$ in G
and the Euclidean Hessian $β^2 f(\tilde p)[\tilde X]$ in H
, where $\tilde p, \tilde X$ are the representations of $p,X$ in the embedding,.
On a product manifold, this decouples and can be computed elementwise.
Manifolds.flat
β Methodflat(M::ProductManifold, p, X::FVector{TangentSpaceType})
use the musical isomorphism to transform the tangent vector X
from the tangent space at p
on the ProductManifold
M
to a cotangent vector. This can be done elementwise for every entry of X
(with respect to the corresponding entry in p
) separately.
Manifolds.manifold_volume
β Methodmanifold_volume(M::ProductManifold)
Return the volume of ProductManifold
M
, i.e. product of volumes of the manifolds M
is constructed from.
Manifolds.sharp
β Methodsharp(M::ProductManifold, p, ΞΎ::FVector{CotangentSpaceType})
Use the musical isomorphism to transform the cotangent vector ΞΎ
from the tangent space at p
on the ProductManifold
M
to a tangent vector. This can be done elementwise for every entry of ΞΎ
(and p
) separately
Manifolds.volume_density
β Methodvolume_density(M::ProductManifold, p, X)
Return volume density on the ProductManifold
M
, i.e. product of constituent volume densities.