
		Class Flow version 2.0

The directory contains Mathematica programs for drawing
the geodesic flow on the class surface Y of PSL_2(Z).
See "Example.m" for an example.

Mathematical Notes
------------------
Let PSL_2(Z) be the modular group acting on the
upper half-plane H.  The exact sequence
	0 -> K -> PSL_2(Z) -> Z/6 -> 0
gives the abelianization of the modular group,
and determines a degree 6 Galois covering space
	X = H/K 
of the modular surface H/PSL_2(Z).  The surface X is
a once-punctured torus with H_1(X,Z) = Z+Z.
We obtain a further covering (a la Alexander)
by abelianizing K:
	0 -> G -> K -> Z+Z -> 0.
The surface
	Y = H/G = C-L
is isomorphic to the complement of the equilateral
lattice L in the complex plane C.  

We refer to Y as the "class surface" since it is 
the maximal abelian unramified covering of X (cf. class
field theory).  The geodesic flow on Y keeps 
track of the location of a geodesic in the 
*homology* of the torus X.

The classflow program
---------------------
Given a real number p and a hyperbolic distance d,
the classflow program draws a geodesic segment 
on Y of length d.  In H the geodesic starts at 
p+I and heads towards p.

Usage
-----
In Mathematica execute:

<<src/classflow.m; DiG[p,d,name]

Here	p = a point in the real axis
	d = hyperbolic distance
	name = name for plot (in quotes)
The program renders the geodesic segment in Y and 
the portion of the equilateral lattice it occupies.
The image is saved to the file name.ps

DiG[p,d] saves the image to the default file /tmp/test.ps.

To draw horocycles, use DiH[p,d].
DiH[p,d,r] varies the "radius" of the horocycle (default 1).
-------------------------------------------------------
Copyright (c) April 2001

Curtis T McMullen
