Hyperbolic Models¶
In this module, a hyperbolic model is a collection of data that allow the user to implement new models of hyperbolic space with minimal effort. The data include facts about the underlying set (such as whether the model is bounded), facts about the metric (such as whether the model is conformal), facts about the isometry group (such as whether it is a linear or projective group), and more. Generally speaking, any data or method that pertains to the model itself – rather than the points, geodesics, or isometries of the model – is implemented in this module.
Abstractly, a model of hyperbolic space is a connected, simply connected manifold equipped with a complete Riemannian metric of constant curvature \(-1\). This module records information sufficient to enable computations in hyperbolic space without explicitly specifying the underlying set or its Riemannian metric. Although, see the SageManifolds project if you would like to take this approach.
This module implements the abstract base class for a model of hyperbolic space of arbitrary dimension. It also contains the implementations of specific models of hyperbolic geometry.
AUTHORS:
- Greg Laun (2013): Initial version.
EXAMPLES:
We illustrate how the classes in this module encode data by comparing the upper half plane (UHP), Poincaré disk (PD) and hyperboloid (HM) models. First we create:
sage: U = HyperbolicPlane().UHP()
sage: P = HyperbolicPlane().PD()
sage: H = HyperbolicPlane().HM()
We note that the UHP and PD models are bounded while the HM model is not:
sage: U.is_bounded() and P.is_bounded()
True
sage: H.is_bounded()
False
The isometry groups of UHP and PD are projective, while that of HM is linear:
sage: U.is_isometry_group_projective()
True
sage: H.is_isometry_group_projective()
False
The models are responsible for determining if the coordinates of points and the matrix of linear maps are appropriate for constructing points and isometries in hyperbolic space:
sage: U.point_in_model(2 + I)
True
sage: U.point_in_model(2 - I)
False
sage: U.point_in_model(2)
False
sage: U.boundary_point_in_model(2)
True
-
sage.geometry.hyperbolic_space.hyperbolic_model.
HyperbolicModel
¶ Abstract base class for hyperbolic models.
-
sage.geometry.hyperbolic_space.hyperbolic_model.
HyperbolicModelHM
¶ Hyperboloid Model.
-
sage.geometry.hyperbolic_space.hyperbolic_model.
HyperbolicModelKM
¶ Klein Model.
-
sage.geometry.hyperbolic_space.hyperbolic_model.
HyperbolicModelPD
¶ Poincaré Disk Model.
-
sage.geometry.hyperbolic_space.hyperbolic_model.
HyperbolicModelUHP
¶ Upper Half Plane model.