Skip to main content

Veerer is a package for SageMath to deal with veering triangulations of surfaces and their associated flat structures. It can in particular be used to provide representatives of pseudo-Anosov mapping classes of surfaces. The theoretical background is based on ideas of I. Agol and F. Guéritaud, and is developed in:

M. Bell, V. Delecroix, V. Gadre, R. Gutiérrez-Romo, S. Schleimer, “Coding Teichmüller flow using veering triangulations”, arXiv:1909.00890.

Example

As in Flipper, edges of a triangulation are labeled with the integers 0, 1, …, n-1. Each edge comes with an orientation and the edge opposite to i is labelled ~i (so -1, -2, etc. are respectively opposite edges to 0, 1, etc.). To input a triangulation, you must provide a list of triangles, each triangle being a triple of oriented edges, and a list of colours:

>>> from veerer import *
>>> T = VeeringTriangulation([(0, 1, 2), (-1, -2, -3)], [RED, RED, BLUE])
>>> T.is_core()
True

Since the above example is a core triangulation, it admits a flat realization. One can be computed by taking the middle of the barycenter of the vertices of the polytope parametrizing the flat structures:

>>> F = T.flat_structure_middle()

If you use Veerer inside SageMath, the flat structure can be displayed with:

>>> F.plot(vertical_train_track=True)
>>> F.plot(horizontal_train_track=True)

Testing

To run the SageMath doctests, install the package with pip, typically:

$ sage -pip install -e .

and then run:

$ sage -t --force-lib veerer/

Or:

$ sage -t --force-lib veerer/my_file.py

Building the documentation

Go to the docs directory and then do:

$ sage -sh
$ make html

The documentation should be available under docs/build/ as HTML pages.

Typically you might want to use veerer_demo.rst as a Jupyter notebook. In order to convert veerer_demo.rst into veerer_demo.ipynb you need to have available on your computer

  • rst2latex python-docutils

  • pdflatex

  • pandoc

  • the Python package rst2ipynb

  • the Python package nbconvert

Then do:

$ export FILE_PREFIX="veerer_demo"
$ rst2ipynb --kernel=sagemath veerer_demo.rst veerer_demo.ipynb

If you installed rst2ipynb using the --user option of pip, the executables might be installed in $HOME/.local/bin, in which case you should first make the system aware of this via:

$ PATH=$PATH:$HOME/.local/bin

Authors

  • Mark Bell

  • Vincent Delecroix

  • Saul Schleimer

Metadata

Release files for veerer 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for veerer 0.2.0
File Size Uploaded
veerer-0.2.0.tar.gz 284.9 kB Details

Release files / veerer-0.2.0.tar.gz

Download URL veerer-0.2.0.tar.gz
Size 284.9 kB
Tags Source
SHA-256 checksum
How to use checksums
e64b6559a8409d0c9616f1ca5e9e290e9223fdfcec13653b13502988d2461be9
BLAKE2b-256 checksum
How to use checksums
4beb1d5dc35f2469a2cb092754a4d5825d2b303251d3ec4f43d58bda51512c24
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.6

Release history Release notifications | RSS feed

This release

0.2.0 This release

1 release file

0.1.2

1 release file

0.1.1

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page