Skip to main content

An implementation of the Birman-Margalit-Menasco Theorem, to be used in a experimental, exploratory manner.

Project description

The curve complex is a simplicial complex composed of vertices representing equivalency classes of isotopic simple closed curves on a surface of fixed genus and of edges drawn between vertices if classes contain a disjoint representative. MICC is a tool designed to compute short distances between these disjoint representatives, based on an intuitive disk-with-handles represntation of a surface.


Installing through pip is recommended to use the programmatic interface:

$ pip install micc

Otherwise, the command line interface for MICC is available here.

Getting Started

Example useage of MICC:


from micc.curvepair import CurvePair

top = [21,7,8,9,10,11,22,23,24,0,1,2,3,4,5,6,12,13,14,15,16,17,18,19,20] bottom = [9,10,11,12,13,14,15,1,2,3,4,5,16,17,18,19,20,21,22,23,24,0,6,7,8] test = CurvePair(top, bottom) print test.distance


MICC’s key interface is an abstract representation of a pair of curves a,*b* on a surace S of genus g. We present the details and nuances in our full publication <link>.


Define one of the two curves as a reference curve; in the above case, we choose a as our reference curve. Aftering arbitrarily labeling the arcs of b created by the removal of a, as shown above, read off the chosen identifications in the order they appear on the each side of a during an oriented traversal. Upon doing so, you will have two sequences of integer identifications. In the above example, they look like:

[1, 4, 3, 4, 1, 6] [6, 5, 2, 3, 2, 5]

These two lists are the input to the CurvePair object, the primary interface layer for MICC. It is highly recommended that users restrict their attention to this object alone.

To compute the distance between a and b:

>>> curve = CurvePair([1, 4, 3, 4, 1, 6],[6, 5, 2, 3, 2, 5])
>>> curve.distance



Copyright 2014 Matt Morse and Paul Glenn.

MICC is licensed under the MIT License.

Project details

Release history Release notifications

History Node


History Node


This version
History Node


History Node


History Node


History Node


History Node


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
MICC-0.1.3.tar.gz (19.9 kB) Copy SHA256 hash SHA256 Source None Aug 12, 2014

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page