Distributions
The following functions and types provide support for manifold-valued and tangent space-valued distributions:
Manifolds.FVectorDistribution — TypeFVectorDistribution{TSpace<:VectorBundleFibers, T}An abstract distribution for vector bundle fiber-valued distributions (values from a fiber of a vector bundle at point x from the given manifold). For example used for tangent vector-valued distributions.
Manifolds.FVectorSupport — TypeFVectorSupport(space::AbstractManifold, VectorBundleFibers)Value support for vector bundle fiber-valued distributions (values from a fiber of a vector bundle at a point from the given manifold). For example used for tangent vector-valued distributions.
Manifolds.FVectorvariate — TypeFVectorvariateStructure that subtypes VariateForm, indicating that a single sample is a vector from a fiber of a vector bundle.
Manifolds.MPointDistribution — TypeMPointDistribution{TM<:AbstractManifold}An abstract distribution for points on manifold of type TM.
Manifolds.MPointSupport — TypeMPointSupport(M::AbstractManifold)Value support for manifold-valued distributions (values from given AbstractManifold M).
Manifolds.MPointvariate — TypeMPointvariateStructure that subtypes VariateForm, indicating that a single sample is a point on a manifold.
Base.rand — MethodRandom.rand(M::AbstractManifold, [d::Integer]; vector_at=nothing)
Random.rand(rng::AbstractRNG, M::AbstractManifold, [d::Integer]; vector_at=nothing)Generate a random point on manifold M (when vector_at is nothing) or a tangent vector at point vector_at (when it is not nothing).
Optionally a random number generator rng to be used can be specified. An optional integer d indicates that a vector of d points or tangent vectors is to be generated.
Usually a uniform distribution should be expected for compact manifolds and a Gaussian-like distribution for non-compact manifolds and tangent vectors, although it is not guaranteed. The distribution may change between releases.
rand methods for specific manifolds may take additional keyword arguments.
Distributions.support — Methodsupport(d::FVectorDistribution)Get the object of type FVectorSupport for the distribution d.
Manifolds.ProjectedFVectorDistribution — TypeProjectedFVectorDistribution(type::VectorBundleFibers, p, d, project!)Generates a random vector from ambient space of manifold type.manifold at point p and projects it to vector space of type type using function project!, see project for documentation. Generated arrays are of type TResult.
Manifolds.ProjectedPointDistribution — TypeProjectedPointDistribution(M::AbstractManifold, d, proj!, p)Generates a random point in ambient space of M and projects it to M using function proj!. Generated arrays are of type TResult, which can be specified by providing the p argument.
Manifolds.normal_tvector_distribution — Methodnormal_tvector_distribution(M::Euclidean, p, σ)Normal distribution in ambient space with standard deviation σ projected to tangent space at p.
Manifolds.projected_distribution — Functionprojected_distribution(M::AbstractManifold, d, [p=rand(d)])Wrap the standard distribution d into a manifold-valued distribution. Generated points will be of similar type to p. By default, the type is not changed.