Unifpack (Web version 2.0)

A Package for Studying Riemann Surfaces with Symmetry

by Carlos O'Ryan Lira (coryan@mat.puc.cl)

Unifweb World Wide Web front end by Paul Burchard at the Geometry Center, using W3Kit.


Unifpack is a set of programs and C libraries designed to help in the study of Riemann Surfaces. The first version was written in the beginning of 1992 as part of Carlos' undergraduate thesis. See the Unifpack User's Manual for a complete explanation of the program. Here is a brief summary:

Basically Unifpack accepts a presentation of a finite group and calculates the Cayley graph of the group for that presentation. If the presentation is ``admissible'' in the sense described below, Unifpack can calculate a fundamental polygon for a uniformization of a Riemann surface that admits this group as a group of symmetries.

What the Picture Means

The calculated Riemann surface is displayed as a tiling in the hyperbolic plane (Unifpack only works with surfaces of genus > 1). The ``pelt'' of the split-apart surface forms a large tile of which a single copy is displayed. This large tile is then split into smaller tiles representing fundamental domains of the action of the symmetry group on the surface.

Adjusting Parameters

Usually there is a family of Riemann surfaces that admit such a group of symmetries; this maps to a family of fundamental polygons controlled by some parameters. Unifpack lets you change these parameters and thus study the family of Riemann surfaces. Different admissible presentations of the same group generally produce different families of surfaces; the families may even differ in genus.


Although Unifpack normally works with conformal symmetries, in some cases the symmetry group can be extended to include reflection symmetries (which reverse orientation). In these cases, the program offers a boolean ``parameter'' which enables the display of the reflection axes in a lighter color (it's not really a parameter of the Riemann surface).

Admissible Presentations

In Unifpack, the symmetry groups are specified using generators and relations. The main difficulty with this form of input is that it is difficult to tell if the group you have defined is finite! However, this is required in order for the program to work.

The second condition for a presentation to be ``admissible'' is that the relations must be written in a special form, listing in order:

  1. a power of each generator;
  2. a power of the product of all the generators; and
  3. other relations consistent with these (optional).
Consistency means in particular that these optional additional relations should not redefine the orders of the generators as specified by the required relations.

In Unifpack, writing out the relations in this form picks out a genus for the Riemann surface. The final condition for ``admissibility'' is that this genus be greater than 1 so that the surface can be displayed using a tiling of the hyperbolic plane.

Geometry Center Home  ... Up to Previous

The Geometry Center
University of Minnesota
400 Lind Hall 
207 Church Street S.E.
Minneapolis, MN  55455