# Representations

Since we use both the Poincare disk as well as the Weierstrass (or hyperboloid) representation of the hyperbolic plane, transformations between the two coordinate systems are required.

Note that the Weierstrass coordinate system can be represented in two different orders: (t, x, y) and (x, y, t). These should not be confused.

The Hyperbolic Weierstrass coordinates, also known as hyperboloid coordinates, are used in hyperbolic geometry to describe points on a hyperboloid in Minkowski space. In this system, a point on the hyperboloid is given by coordinates that satisfy the relation:

$-t^2 + x^2 + y^2 = -1$

for the one-sheeted hyperboloid in three dimensions. This coordinate system describes points on a hyperboloid in Minkowski spacetime. The Weierstrass coordinates provide a natural way to parametrize hyperbolic space, facilitating calculations in areas such as Lorentz transformations and hyperbolic trigonometry. These coordinates are particularly useful for visualizing the geometry of the hyperbolic plane and for performing complex transformations.

The Poincaré disk model, another representation of hyperbolic geometry, maps the entire hyperbolic plane onto the interior of a unit disk. In this model, geodesics are represented by arcs of circles that are orthogonal to the boundary of the disk. This representation is useful for visualizing hyperbolic space and for solving problems involving hyperbolic distances and angles. The Poincaré disk model preserves angles but distorts distances, providing a different but complementary perspective to the Weierstrass coordinates.

hypertiling.representations.p2w(z: complex128) array

Convert Poincare to Weierstraß representation.

Parameters:

z (np.complex128) – A complex number.

Returns:

A numpy array representing Weierstraß coordinates.

Return type:

np.array

hypertiling.representations.p2w_xyt(z: complex128) array

Convert Poincare to Weierstraß representation.

Parameters:

z (np.complex128) – A complex number.

Returns:

A numpy array representing Weierstraß coordinates in [x, y, t] format.

Return type:

np.array

hypertiling.representations.p2w_xyt_vector(z_list)

Convert a list of Poincare coordinates to Weierstraß representation.

Parameters:

z_list (list) – List of complex numbers representing Poincare coordinates.

Returns:

A numpy array of Weierstraß coordinates.

Return type:

np.array

hypertiling.representations.valid_weierstrass_point(point)

Check that a point is a valid Weierstrass point.

Parameters:

point (list) – A list containing three elements [t, x, y].

Returns:

True if the point is a valid Weierstrass point, False otherwise.

Return type:

bool

hypertiling.representations.w2p(point: array) complex128

Convert Weierstraß to Poincare representation.

Parameters:

point (np.array) – A numpy array representing Weierstraß coordinates.

Returns:

A complex number representing Poincare coordinates.

Return type:

np.complex128

hypertiling.representations.w2p_xyt(point: array) complex128

Convert Weierstraß to Poincare representation.

Parameters:

point (np.array) – A numpy array representing Weierstraß coordinates in [x, y, t] format.

Returns:

A complex number representing Poincare coordinates.

Return type:

np.complex128

hypertiling.representations.w2p_xyt_vector(xyt_list)

Convert a list of Weierstraß coordinates to Poincare representation.

Parameters:

xyt_list (list) – List of numpy arrays representing Weierstraß coordinates in [x, y, t] format.

Returns:

A numpy array of complex numbers representing Poincare coordinates.

Return type:

np.array