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.