.. _spkg_regina:

regina: Low-dimensional topology: triangulations, knots, links, normal surfaces, angle structures
=================================================================================================

Description
-----------

Regina is a software package for 3-manifold and 4-manifold topologists, with a focus on triangulations, knots and links, normal surfaces, and angle structures.

For 3-manifolds, it includes high-level tasks such as 3-sphere recognition, connected sum decomposition and Hakenness testing, comes with a rich database of census manifolds, and incorporates the SnapPea kernel for working with hyperbolic manifolds. For 4-manifolds, it offers a range of combinatorial and algebraic tools, plus support for normal hypersurfaces. For knots and links, Regina can perform combinatorial manipulation, compute knot polynomials, and work with several import/export formats.

License
-------

GPLv2+

Upstream Contact
----------------

Regina: https://regina-normal.github.io/

We use the Python packaging from https://pypi.org/project/regina/
(https://github.com/3-manifolds/regina_wheels)


Type
----

optional


Dependencies
------------

- $(PYTHON)
- $(PYTHON_TOOLCHAIN)
- :ref:`spkg_numpy`

Version Information
-------------------

requirements.txt::

    regina

Installation commands
---------------------

.. tab:: PyPI:

   .. CODE-BLOCK:: bash

       $ pip install regina

.. tab:: Sage distribution:

   .. CODE-BLOCK:: bash

       $ sage -i regina


If the system package is installed and if the (experimental) option
``--enable-system-site-packages`` is passed to ``./configure``, then 
``./configure`` will check if the system package can be used.
