Making data structures persistent
Journal of Computer and System Sciences - 18th Annual ACM Symposium on Theory of Computing (STOC), May 28-30, 1986
Applications of random sampling in computational geometry, II
Discrete & Computational Geometry - Selected papers from the fourth ACM symposium on computational geometry, Univ. of Illinois, Urbana-Champaign, June 6 8, 1988
An optimal convex hull algorithm and new results on cuttings (extended abstract)
SFCS '91 Proceedings of the 32nd annual symposium on Foundations of computer science
A Delaunay refinement algorithm for quality 2-dimensional mesh generation
SODA '93 Selected papers from the fourth annual ACM SIAM symposium on Discrete algorithms
Randomized algorithms
Programming parallel algorithms
Communications of the ACM
The quickhull algorithm for convex hulls
ACM Transactions on Mathematical Software (TOMS)
Computational geometry: algorithms and applications
Computational geometry: algorithms and applications
Purely functional data structures
Purely functional data structures
Primitives for the manipulation of general subdivisions and the computation of Voronoi
ACM Transactions on Graphics (TOG)
The Definition of Standard ML
Fully Persistent Arrays (Extended Array)
WADS '89 Proceedings of the Workshop on Algorithms and Data Structures
Efficient applicative data types
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A new method for functional arrays
Journal of Functional Programming
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
Automatic Generation of Staged Geometric Predicates
Higher-Order and Symbolic Computation
Engineering a compact parallel delaunay algorithm in 3D
Proceedings of the twenty-second annual symposium on Computational geometry
Hi-index | 0.00 |
Triangulations of a surface are of fundamental importance in computational geometry, computer graphics, and engineering and scientific simulations. Triangulations are ordinarily 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 concurrently 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 surface. We show both analytically and experimentally that for certain important cases, this extra cost does not seriously affect end-to-end running time. Analytically, we present a new randomized algorithm for 3-dimensional Convex Hull based on our representations for which the running time matches the Ω(n lg n) lower-bound for the problem. This is achieved by using only O(n) traversals of the surface. Experimentally, we present results for both an implementation of the 3-dimensional Convex Hull and for a terrain modeling algorithm, which demonstrate that, although there is some cost to persistence, it seems to be a small constant factor.