 
Summary: Under consideration for publication in J. Functional Programming 1
Persistent Triangulations
Guy Blelloch, Hal Burch, Karl Crary, Robert Harper, Gary Miller, and Noel Walkington
Carnegie Mellon University
Pittsburgh, PA 15213
Abstract
Triangulations of a surface are of fundamental importance in computational geometry,
computer graphics, and engineering and scientific simulations. Triangulations are ordinar
ily represented as mutable graph structures for which both adding and traversing edges
take constant time per operation. These representations of triangulations make it difficult
to support persistence, including "multiple futures", the ability to use a data structure in
several unrelated ways in a given computation; "time travel", the ability to move freely
among versions of a data structure; or parallel computation, the ability to operate con
currently on a data structure without interference.
We present a purely functional interface and representation of triangulated surfaces,
and more generally of simplicial complexes in higher dimensions. In addition to being
persistent in the strongest sense, the interface more closely matches the mathematical
definition of triangulations (simplicial complexes) than do interfaces based on mutable
representations. The representation, however, comes at the cost of requiring O(lg n) time
for traversing or adding triangles (simplices), where n is the number of triangles in the
