# How to sample points in hyperbolic space?

Hyperbolic space in the Poincaré upper half space model looks like ordinary $$\Bbb R^n$$ but with the notion of angle and distance distorted in a relatively simple way. In Euclidean space I can sample a random point uniformly in a ball in several ways, e.g. by generating $$n$$ independent Gaussian samples to obtain a direction, and separately sample a radial coordinate $$r$$ by uniformly sampling $$s$$ from $$\left[0, \frac1{n+1}R^{n+1}\right]$$, where $$R$$ is the radius, and setting $$r = \left((n+1)s\right)^{\frac1{n+1}}$$. In the hyperbolic upper half plane a sphere happens to still be a sphere, only its centre will not be the centre in the Euclidean metric, so we could do the same.

If we want to sample according to a non-uniform distribution, but still in an isotropic way, e.g. a Gaussian distribution, this doesn't seem so easy. In Euclidean space we could just generate a Gaussian sample for each coordinate (this only works for the Gaussian distribution), or equivalently generate a multidimensional Gaussian sample. Is there a direct way to convert this sample to a sample in hyperbolic space?

An alternative approach could be to first generate a direction uniformly distributed direction (e.g. from $$n$$ Gaussian samples) then a Gaussian sample for the radial component, and finally generate the image under the exponential map in the specified direction for the specified length. A variation would be to just take the Euclidean Gaussian sample and map it under the exponential map.

My questions:

• what would be a good and efficient way to obtain a Gaussian sample with given mean and standard deviation in hyperbolic space?
• do the ways I describe above provide the desired sampling?
• did anyone work out the formula's already?
• how does this generalize to other metrics and other probability distributions?

EDIT

I just realized that even in the case of uniform sampling these questions remain; even though a sphere is a sphere, a uniform distribution would not be described by a constant function on a ball.

• @yes thanks for your comment. On every topological space you have the Borel sigma algebra, generated by the topology. A Riemannian metric gives you a notion of a volume. If the total volume is finite, this can be normalized to give a probability distribution, or more generally it gives you in a direct way uniform probability distributions on measurable sets of finite volume. Since you have a geometrical structure, including the notion of geodesics and arc lengths, you could also define Gaussian distributions by a probability density that decays by distance in the same way as in euclidean space – doetoe May 20 '15 at 6:27
• @yes It may be easier to sample around the centre of the ball in the ball model and then transport it through an isometry, at least Euclidean and hyperbolic rotations around the centre coincide. If this is indeed the most efficient, the question would reduce to how to sampling around the centre in the disk model according to the normal distribution for the hyperbolic metric. – doetoe May 20 '15 at 7:45

Accept-Reject (AR) sampling is probably the way to go here. AR sampling works in $$n$$ dimensional spaces just like it does in 1 dimensional space (e.g. sampling from a Gaussian via a Laplace/Double exponential) you define an envelope function and then sample uniformly under the envelope. Here the envelope function would need to be a function covering the Poincare space. The closer the envelope is to the actual space the more efficient the sampling process. A key point here though is that in order to sample from the Poincare disk space you need to actually define a probability measure over the space. It isn't clear to me what a Gaussian measure on the Poincare disk means.