# Orbits¶

*Orbits* is free software licensed under the GNU Public license, version 2 or higher,
and it is provided without warranty of any kind.

In a remarkable paper by Ian Agol, Joel Hass and Bill Thurston it was shown that the problem of deciding whether a knot has a genus \(g\) spanning surface is NP complete. Along the way, the authors described an algorithm for solving the following problem:

- Given an equivalence relation on the set \(J = \{1, ..., N\}\) whichis generated by \(k\) isometric pairings between subintervals of \(J\),compute the number of equivalence classes.

They showed that the running time of the algorithm is amazingly fast – bounded by a polynomial in \(k \log N\).

*Orbits* is a python module which implements their algorithm.

## Installation¶

*Orbits* is a simple python module consisting of a single file. To install it run

```
python setup.py install
```

or, on linux,

```
sudo python setup.py install
```

A simple example computation is provided in the file example.py.