# 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?