This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Failed to load latest commit information.
branched Copyright 2013, 2014 by Alden Walker email@example.com math.uchicago.edu/~akwalker Released under the GPL Usage: ./branched -v[n] [-w] [-d] <genus> <nboundaries <loops> -v: verbose -w: find complementary regions and winding numbers -d: display a preset genus 3 example ************** Introduction **************** branched finds the minimal configuration of the loops and then produces a cellulation of the surface which is built of cells which are complementary regions. In its current state, it finds a minimal configuration (and displays it), then (if asked) it finds the complementary regions (and displays them with their winding numbers). It is intended to eventually work with branched surfaces (hence the name), but that functionality is in development. The winding numbers are computed relative to an arbitrary complementary region. Notice that they will *not* make much sense if the collection of loops isn't homologically trivial. Moira Chas (Stony Brook) has some Java applets on her web site http://www.math.sunysb.edu/~moira/ which compute self-intersections of a single loop on a surface with one boundary component. branched has been tested to agree with this applet on a bunch of inputs. ************** Installation ******************* You need to have the X11 development libraries installed (you probably do); it expects them to be either in your include path (probably the case for linux) or at /usr/X11R6/ (probably the case for OSX). Just type "make" to make. ************** Execution ******************* Input: <genus> and <nboundaries> give the genus and number of boundaries, respectively, and <loops> is a space-separated list of words in the surface group. Surface group presentation: The surface group is generated by two letters for each genus, and one letter for each boundary, starting at the beginning of the alphabet. The relator is always the product of the commutators and all the boundary generators, so for example a genus 2 surface has the presentation <a,b,c,d | [a,b][c,d]>, and a genus 2 surface with two boundary components has the presentation <a,b,c,d,e,f | [a,b][c,d]ef> Display format: The surface is displayed as a polygon together with the gluing pattern. Boundary edges are bold. The convention is that a letter "a" corresponds to the loop *entering* the polygon edge labeled "a". Note that the order of the polygon edges is different from the order of the letters in the relator. Geodesicifying: branched will rewrite the input words as geodesics. This happens *even in the case of a free group* (surface with boundary), in which case you may find that your word has been rewritten using the boundary loop generators. You may also find that it has been rewritten to another word of the same length. This is due to the program finding a *unique* geodesic representative, so it has to make an (arbitrary) choice. Examples: ./branched 1 1 abAABB ab ./branched 1 1 AAAbABaaBab ABabaaB Ab ./branched 2 0 AdbcBCbaBD ./branched 2 0 ADDBdcBDaDCbcd ./branched 2 0 ADDBdcBDaDCbcd CCda a AcDadbAcd AC ./branched 2 2 AeefffaCfcFBCFBacadB AEbeFbCaeCD AAcdcbFeD ./branched 10 0 AtClEaltqIQndFmtElaRENBnIbLHsdBjeBBPKTP DcSIfLhlNbbSgeThqP AKscqDlbPOSQIGQCNftRQO T ./branched 6 8 AtClEaltqIQndFmtElaRENBnIbLHsdBjeBBPKTP DcSIfLhlNbbSgeThqP AKscqDlbPOSQIGQCNftRQO T