Sixteen space-filling curves and traversals for d-dimensional cubes and simplices

This article describes sixteen different ways to traverse d-dimensional space recursively in a way that is well-defined for any number of dimensions. Each of these traversals has distinct properties that may be beneficial for certain applications. Some of the traversals are novel, some have been known in principle but had not been described adequately for any number of dimensions, some of the traversals have been known. This article is the first to present them all in a consistent notation system. Furthermore, with this article, tools are provided to enumerate points in a regular grid in the order in which they are visited by each traversal. In particular, we cover: five discontinuous traversals based on subdividing cubes into 2^d subcubes: Z-traversal (Morton indexing), U-traversal, Gray-code traversal, Double-Gray-code traversal, and Inside-out traversal; two discontinuous traversals based on subdividing simplices into 2^d subsimplices: the Hill-Z traversal and the Maehara-reflected traversal; five continuous traversals based on subdividing cubes into 2^d subcubes: the Base-camp Hilbert curve, the Harmonious Hilbert curve, the Alfa Hilbert curve, the Beta Hilbert curve, and the Butz-Hilbert curve; four continuous traversals based on subdividing cubes into 3^d subcubes: the Peano curve, the Coil curve, the Half-coil curve, and the Meurthe curve. All of these traversals are self-similar in the sense that the traversal in each of the subcubes or subsimplices of a cube or simplex, on any level of recursive subdivision, can be obtained by scaling, translating, rotating, reflecting and/or reversing the traversal of the complete unit cube or simplex.

[1]  H. Haverkort The sound of space-filling curves , 2017 .

[2]  Mario A. López,et al.  High dimensional similarity search with space filling curves , 2001, Proceedings 17th International Conference on Data Engineering.

[3]  H. Maehara Some replicating simplices other than Hill-simplices , 2014 .

[4]  A. Liu,et al.  On the shape of tetrahedra from bisection , 1994 .

[5]  Christos Faloutsos,et al.  Multiattribute hashing using Gray codes , 1986, SIGMOD '86.

[6]  Jonathan K. Lawder Calculation of Mappings Between One and n-dimensional Values Using the Hilbert Space-filling Curve ⋆ , 2009 .

[7]  Herman J. Haverkort,et al.  How many three-dimensional Hilbert curves are there? , 2016, J. Comput. Geom..

[8]  H. Freudenthal Simplizialzerlegungen von Beschrankter Flachheit , 1942 .

[9]  D. Hilbert Ueber die stetige Abbildung einer Line auf ein Flächenstück , 1891 .

[10]  Arthur R. Butz,et al.  Alternative Algorithm for Hilbert's Space-Filling Curve , 1971, IEEE Transactions on Computers.

[11]  John J. Bartholdi,et al.  Spacefilling curves and the planar travelling salesman problem , 1989, JACM.

[12]  Carsten Burstedde,et al.  A Tetrahedral Space-Filling Curve for Nonconforming Adaptive Meshes , 2015, SIAM J. Sci. Comput..

[13]  Barry Joe,et al.  Quality local refinement of tetrahedral meshes based on 8-subtetrahedron subdivision , 1996, Math. Comput..

[14]  Laura Toma,et al.  Quadtrees and Morton Indexing , 2016, Encyclopedia of Algorithms.

[15]  G. Schrack,et al.  The spatial U-order and some of its mathematical characteristics , 1995, IEEE Pacific Rim Conference on Communications, Computers, and Signal Processing. Proceedings.

[16]  Felix Wolf,et al.  Dynamic Load Balancing for Unstructured Meshes on Space-Filling Curves , 2012, 2012 IEEE 26th International Parallel and Distributed Processing Symposium Workshops & PhD Forum.

[17]  Christos Faloutsos,et al.  On packing R-trees , 1993, CIKM '93.

[18]  Herman J. Haverkort,et al.  Recursive tilings and space-filling curves with little fragmentation , 2010, J. Comput. Geom..

[19]  James M. Kang,et al.  Space-Filling Curves , 2017, Encyclopedia of GIS.

[20]  Michael Bader,et al.  Cache oblivious matrix multiplication using an element ordering based on the Peano curve , 2006 .

[21]  Hanan Samet,et al.  Foundations of multidimensional and metric data structures , 2006, Morgan Kaufmann series in data management systems.

[22]  H. Hahn Leçons sur l'intégration et la recherche des fonctions primitives , 1904 .

[23]  Desh Ranjan,et al.  Space-Filling Curves and Their Use in the Design of Geometric Data Structures , 1997, Theor. Comput. Sci..

[24]  Herman J. Haverkort,et al.  Locality and bounding-box quality of two-dimensional space-filling curves , 2008, Comput. Geom..

[25]  Walter Wunderlich Über Peano-Kurven. , 1973 .

[26]  Carsten Burstedde,et al.  Bounds on the number of discontinuities of Morton-type space-filling curves , 2015, 1505.05055.

[27]  D. Auber,et al.  GosperMap: Using a Gosper Curve for Laying Out Hierarchical Data , 2013, IEEE Transactions on Visualization and Computer Graphics.

[28]  Carsten Burstedde,et al.  Morton curve segments produce no more than two distinct face-connected subdomains , 2015, ArXiv.

[29]  G. Peano Sur une courbe, qui remplit toute une aire plane , 1890 .

[30]  Hans-Joachim Bungartz,et al.  A Parallel Adaptive Cartesian PDE Solver Using Space-Filling Curves , 2006, Euro-Par.

[31]  van der,et al.  3D cache-oblivious multi-scale traversals of meshes using 8-reptile polyhedra , 2016 .

[32]  Florian Grand Organized Data for Organized Sound Space Fitting Curves in Sonification , 2007 .

[33]  Michael Bader,et al.  Space-Filling Curves - An Introduction with Applications in Scientific Computing , 2012, Texts in Computational Science and Engineering.

[34]  Herman J. Haverkort,et al.  Hyperorthogonal well-folded Hilbert curves , 2015, J. Comput. Geom..

[35]  Peter J. H. King,et al.  Querying multi-dimensional data indexed using the Hilbert space-filling curve , 2001, SGMD.

[36]  Kevin Buchin Constructing Delaunay Triangulations along Space-Filling Curves , 2009, ESA.

[37]  D. Voorhies SPACE-FILLING CURVES AND A MEASURE OF COHERENCE , 1991 .

[38]  Herman J. Haverkort,et al.  Harmonious Hilbert curves and other extradimensional space-filling curves , 2012, ArXiv.