Hello, I would like to do some stuff with modeling geometry in hyperbolic space in software. When I look up information on hyperbolic space, however, I tend to find only information on working with models of hyperbolic space. For example I find lots of information on the poincare disc model, and information on, well, if you want to have a line here's the thing which in the poincare disc model is dual to a hyperbolic line, if you want to do a translation here's the thing which in the poincare disc model is dual to a hyperbolic translation, etc. What I cannot find is any information on how to work with hyperbolic geometry "natively"-- that is, in an actual hyperbolic geometry rather than a euclidean model. What I would like to do is work with actual points, lines, translations, rotations etc in hyperbolic space, and then only project them onto the poincare disc when I need to display them. However I cannot find any way to mathematically represent these objects in hyperbolic space itself (other than in euclidean systems, like the poincare disc, which are dual to hyperbolic space). Do any such ways exist, is there even such a thing as a "coordinate in hyperbolic space"? Are there any resources on this subject I ought to be aware of? (Also, a somewhat tangential question-- are "hyperbolic space" and "de sitter space" the same thing or different?)
The most straightforward way of working with hyperbolic space is by thinking of it as the upper half-plane with metric [tex] ds^2 = \frac{1}{y^2} ( \textrm{d} x^2 + \textrm{d} y^2 ) [/tex]. That is, points in hyperbolic space become ordered pairs [tex] (x,y) [/tex] with [tex] y > 0 [/tex], and the inner product on the tangent space at [tex] (x,y) [/tex] is given by the matrix [tex] \begin{pmatrix} 1/y^2 & 0\\ 0 & 1/y^2\\ \end{pmatrix} \textrm{.} [/tex] Using the metric, you can work out the geodesic equations, which turn out to be solvable in this case (geodesics correspond to semicircles centered on the x-axis), and the Gaussian curvature, which is identically equal to -1. With a little more work, you can find the hyperbolic distance formula: If [tex] p_1 = (x_1, y_1) [/tex] and [tex] p_2 = (x_2, y_2) [/tex] denote two points in the upper half-plane, then the hyperbolic distance between them is given by [tex] d(p_1, p_2) = \cosh^{-1} \left( \frac{(y_1^2 + y_2^2) + (x_2 - x_1)^2}{2y_1 y_2} \right) \textrm{.} [/tex] With a bit more work and imagination, you can prove the hyperbolic laws of sines and cosines (see <http://en.wikipedia.org/wiki/Law_of_cosines_(hyperbolic)>). By the Gauss-Binet theorem, the area of any hyperbolic triangle is [tex] \pi - (\alpha + \beta + \gamma) [/tex], where [tex] \alpha, \beta [/tex], and [tex] \gamma [/tex] are the angles of the triangle. This is the really about the best you can do. I suspect that you may be still unsatisfied, however, because the Poincare disk should in fact work for any of the purposes you've listed. I expect that you're frustrated with it because you've made the mistake of thinking of it as a subsection of Euclidean space with strange, somewhat arbitrary properties that make it look like hyperbolic space. It's not. Rather, the Poincare disk is best thought of as a coordinate chart for hyperbolic space in which the metric takes the form [tex] ds^2 = \frac{4}{1 - (x^2 + y^2)} ( \textrm{d} x^2 + \textrm{d} y^2 ) \textrm{.} [/tex] In other words, the Poincare disk model just gives another way of imposing coordinates on hyperbolic space. It is exactly equivalent to the upper half-plane model given above (I'm too lazy just now to write down the explicit coordinate transformation). Each vector in [tex] \mathbb{R}^2 [/tex] with norm less than one corresponds to a point in hyperbolic space; thus, vectors in the interior of the unit circle are your "hyperbolic coordinates" in this case, just as vectors in the upper half-plane are the "hyperbolic coordinates" in the above system. You say that you want to consider "points, lines, rotations, etc." in hyperbolic space. I'm most familiar with the upper half-plane model, so I'll tell you how to do these things in that context. As I've said, points correspond to ordered pairs [tex] (x,y) [/tex] with [tex] y > 0 [/tex]. Lines are geodesics, which as I've already noted correspond to semicircles in the upper half-plane; if you really want, I can give you a unit-speed parametrization of the (unique) geodesic between any two points (it's ugly). Rotations and translations are a bit trickier. It turns out that any orientation-preserving isometry of hyperbolic space corresponds to exactly two matrices with coefficients in [tex] \mathbb{R} [/tex] and determinant 1, and that any such matrix determines a unique isometry. For example, given [tex] A = \begin{pmatrix} a & b\\ c & d \end{pmatrix} \textrm{,} [/tex] the isometry [tex] F_A [/tex] corresponding to [tex] A [/tex] acts on the point [tex] p = (x,y) [/tex], represented by the complex number [tex] z = x + iy [/tex], via [tex] F_A (p) = \frac{az + b}{cz + d} \textrm{.} [/tex] (These are called Moebius transformations.) A more intuitive way of thinking about this is that all orientation-preserving isometries of hyperbolic space can be written as the composition of a finite number of translations along the x-direction, rescalings, and inversions (inversion takes [tex] (x,y) [/tex] to [tex] \left( \frac{-x}{x^2 + x^2}, \frac{y}{x^2 + y^2} \right) [/tex]). "Rotations" of hyperbolic space then correspond to the latter two. To answer your last question: "de Sitter space" is a Lorentzian spacetime, so its metric has a different signature ( (1,-1,-1,-1) or (-1,1,1,1), depending on your sign convention) than ordinary hyperbolic space. However, there are similarities; while hyperbolic space can be realized as a hyperboloid embedded in Euclidean space, de Sitter space is usually thought of as a four-dimensional hyperboloid given by [tex] -u^2 + x^2 + y^2 + z^2 + w^2 = \alpha^2 [/tex] sitting inside five-dimensional Minkowski space (i.e., a 5D space with metric [tex] ds^2 = -\textrm{d} u^2 + \textrm{d} x^2 + \textrm{d} y^2 + \textrm{d} z^2 + \textrm{d} w^2 [/tex]). We can induce coordinates on the hyperboloid; long story short, its metric is then [tex] ds^2 = -\textrm{d} t^2 + \alpha^2 \cosh^2(t/\alpha) [ \textrm{d} \chi^2 + \sin^2(\chi) ( \textrm{d} \theta^2 + \sin^2(\theta) \textrm{d} \varphi^2)] \textrm{.} [/tex]
I guess I'm not quite sure what you're after. When we say that the Poincare disk is a model of hyperbolic space, we don't mean that it's an approximation - it IS hyperbolic space, and here's one way of realizing it.
Vkint/zhentil, that helps a great deal, thank you. I think my bias against the poincare disc was unfounded. I do have a couple of questions. First, I should probably explain my motivations a bit further and specifically note that the main reason I am nervous about the poincare disc model is that as I understand as you approach the circle limit, points a constant distance apart in terms of the distance function get closer and closer in terms of coordinates. This is bad because I am going to be doing my work in software-- i.e., I will be representing coordinates as floating point numbers. With floating point numbers, the closer I get to the unit circle, the less accuracy I will have*. As I understand the poincare half plane will have this same issue, since again here "distances" get closer and closer together in terms of coordinates as you approach the y=0 line. This may not actually be a problem**, but I am curious-- is there any way of representing points on the hyperbolic plane that does not have this issue, the issue where there are regions where points get exponentially "closer together" with distance? Maybe this is the question I should have been asking to begin with. * Basically a computer floating point of the kind I'm using is a number [tex]N*2^M[/tex], where effectively N is a 23-bit number plus 1 bit of +/- sign, and M is an 7-bit number plus 1 bit of +/- sign. So I can represent numbers in the neighborhood of [tex]2^{-127}[/tex] very accurately, but I cannot represent numbers in the neighborhood of [tex](1-2^{-127})[/tex] at all. I estimate I only have to get about 16 or 17 units from the origin in terms of the poincare disc distance function before the difference between any two points becomes unrepresentable using 32-bit floats. The half-plane will be actually much better because points close to the y=0 line can be represented more accurately, but there will still be a point where I lose resolution... ** It may be that I can just rig things ahead of time so that my calculations never involve points far away from the origin. Also a friend had the interesting suggestion that instead of internally representing poincare disc coordinates using [tex](x,y)[/tex] I could represent them using [tex](\theta,r')[/tex] where [tex]r'=1-r[/tex]... although I do not know if this would make math difficult.
Look up "hyperboloid model." It's another model for hyperbolic space that takes its metric as the induced metric from Euclidean space. It's also the best way of seeing the symmetries of hyperbolic space, in my opinion.