
	The program riemannmap implements W. Thurston's algorithm for 

approximating conformal maps by circle packing isomorphisms. B. Rodin 

and D. Sullivan have proved convergence of this scheme to the Riemann 

mapping for simply-connected domains.  Furthermore, X.S. He and Rodin 

have recently proved that the ratio of range radii to domain radii 

converges to the norm of the derivative of the Riemann map. The program 

also supports the mapping of domains of any finite connectivity, and 

runs as follows: 

	Use the mouse to draw any sequence of closed loops on the screen.

	Choose a filling radius and fill the region bounded by the 

	loops with the regular hexagonal packing of chosen mesh.

	The program then does an N-dimensional damped Newton method 

	to construct an isomorphic packing of the disk (minus holes, 

	if the domain was multiply-connected). Here, N is roughly 

	the number of circles. The Yale sparse matrix package

	smpak (rewritten in C) is invoked to solve the Newton linear system. Full 

	use is made of the smpak compact matrix storage scheme,

	so no memory of order greater than the number of circles

 	is ever allocated. A color scheme was implemented which 

	assigns colors constant on hexagons concentric with the 

	domain circle which gets sent to the origin. Upon convergence 

	of the algorithm, the user is allowed to choose a different 

	nullcircle by clicking with the mouse.

	Note that the circles' data is stored in a matrix

	with the following special pattern:


	0     0     0     0     0     0     0     0     0     0     0

  	   0     0     0     0     0     0     0     0     0     0     0

	      0     0     0     0     9     9     9     0     0     0     0

	         0     0     0     9     2     2     9     0     0     0     0

	            0     0     9     2     2     2     9     0     0     0     0

	               0     0     9     2     2     9     0     0     0     0     0
 
	                  0     0     9     9     9     0     0     0     0     0     0

	                     0     0     0     0     0     0     0     0     0     0     0

	                        0     0     0     0     0     0     0     0     0     0     0

	                           0     0     0     0     0     0     0     0     0     0     0


Column indices j increment from left to right.

Row indices i increment from top to bottom.

For more specifics, see the comments in the source code.
