HYPERBOLIC(1) Mathematica package HYPERBOLIC(1) NAME Projective, PoincareBall, Minkowski, UpperHalfSpace, Hemi- sphere, ModelQ, UnitCircle, Vector, Convert, Distance, Vec- torLength, Angle, Drag, Frame, CompleteFrame, Isometry, Peel, ResolveHyperbolic SYNOPSIS <model]. For example: In[2]:= Convert[UpperHalfSpace[{.5,.5}], Minkowski] Out[2]= Minkowski[{1., -0.5, 1.5}] Vector[x,y] denotes the Euclidean vector y based at x. Distance[model1[x],model2[y]], gives the hyperbolic distance between model1[x] and model2[y]. VectorLength[model[Vector[x,y]]] gives the hyperbolic length of the given tangent vector. Angle[model1[Vector[x1,y1]],model2[Vector[x2,y2]]] gives the angle between two tangent vectors at the same point. Model1[x1] and model2[x2] must represent the same point and y1 and y2 must be nonzero. Drag[model[Vector[x,y]]] gives the vector obtained by parallel transport of Vector[x,y] along the geodesic it determines, by a dis- tance equal to the length of y. Drag[model[Vector[x, y]],d] drags Vector[x,y] a distance d. WARNING: the syntax for the next three commands is likely to change Minkowski[Frame[x]], where x is an (n+1) by (n+1) matrix, representing an orthonormal basis for (n+1)-dimensional Minkowski space. The last element should have length -1, the others length 1, and all inner products should be 0. In hyper- bolic space this corresponds to giving a point and an orthonormal basis for the tangent space at that point. CompleteFrame[model[Vector[x,y]],sign_:1] yields a frame having x and y (more precisely their counterparts in Minkowski space) in the last and last- but-one positions. The optional argument sign gives the sign of the frame's determinant. Isometry[frame1,frame2], where frame1 and frame2 are of the form Minkowski[Frame[x]], gives the unique isometry that takes frame1 to frame2. Isometry[,] . model[x], where x is a point or a vector, gives the image of x under the isometry. Isometries can be composed using the . opera- tor, and inverted using Inverse[]. Peel[x] removes the head of the expression x, which should have only one element. This should be used with caution as it removes essential information about the meaning of x. ResolveHyperbolic contains a set of replacement rules for turning Point, Line, Polygon and Text expressions containing hyperbolic coordinates into standard Mathematica graphics primi- tives. Coordinates may be in the Projective, Poincare- Ball or the UpperHalfSpace model and in either two or three dimensions with the following exceptions: Lines in the UpperHalfSpace model and Polygons (in any model) are only supported in dimension two. In practice, as the following paragraph describes, it should never be neces- sary to make direct use of ResolveHyperbolic. Mathematica's built-in Display function is overloaded to apply the current default Convert function followed by ResolveHyperbolic whenever it encounters points in hyper- bolic space. Display is called automatically whenever Graph- ics or Graphics3D objects are shown. For example, to draw a line in the poincare ball model: In[4]:= SetOptions[Convert, Model -> PoincareBall] Out[4]= {Model -> PoincareBall} In[5]:= Show[Graphics[Line[{Projective[{1,0}], Projective[{0,.5}]}]]] Out[5]= -Graphics- SEE ALSO Manual entry "hypintro" for an introduction to the facili- ties of the package.