Skip to content

MarkCBell/curver

Repository files navigation

Curver

PyPI version PyPI license Github build status

Curver is a program for performing calculations in the curve complex. It implements the Bell--Webb algorithm to determine the Nielsen--Thurston type of a mapping class. This algorithm runs in polynomial time but the constants involved currently make this implementation impractical.

Curver officially supports Python 3.8 -- 3.12. Unoffically, it also runs on PyPy and Sage with some care.

Quickstart

Curver is available on PyPI, so it can be installed via:

$ pip install curver --user --upgrade

Once installed, try it inside of Python:

>>> import curver
>>> S = curver.load(0, 5)
>>> S('s_0.s_1.s_0') == S('s_1.s_0.s_1')
True
>>> f = S('s_0.s_1.s_2.s_3')
>>> g = S('s_0.s_1.s_3.s_2')
>>> h = S('s_0.s_1.S_2.S_3')
>>> f.order(), g.order(), h.order()
(5, 5, 5)
>>> f.is_conjugate_to(g)
True
>>> f.is_conjugate_to(g)
False

Features

  • Solves the word problem for mapping class groups.
  • Performs Nielsen--Thurston classification of mapping classes.
  • Solves the conjugacy problem for periodic mapping classes.
  • Computes the asymptotic translation length of mapping classes on the curve complex.
  • Computes geodesics in the curve complex.
  • Computes quotient orbifolds and their quotient maps.
  • Computes the action of mapping classes on H_1.
  • Determines the topological type of multicurves.

External Links

About

For calculations in the curve complex

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages