Regular numeral systems for data structures

We formalize several regular numeral systems, state their properties and supported operations, clarify the correctness, and tabulate the proofs. Our goal is to use as few symbols in the presentation of digits and make as few digit changes as possible in every operation. Most importantly, we introduce two new systems: (1) the buffered regular system is simple and allows the increment and decrement of the least-significant digit in constant time, and (2) the strictly regular system allows the increment and decrement of a digit at arbitrary position with a constant number of digit changes while using three symbols only (instead of four symbols required by the extended regular system). To demonstrate the usefulness of the regular systems, we survey how they have been used in the design of data structures.

[1]  J. Ian Munro,et al.  Integer Representation and Counting in the Bit Probe Model , 2008, Algorithmica.

[2]  Leonidas J. Guibas,et al.  A dichromatic framework for balanced trees , 1978, 19th Annual Symposium on Foundations of Computer Science (sfcs 1978).

[3]  Torben Hagerup,et al.  Sorting and Searching on the Word RAM , 1998, STACS.

[4]  Amr Elmasry,et al.  In-Place Binary Counters , 2013, MFCS.

[5]  Amr Elmasry,et al.  A Priority Queue with the Working-set Property , 2006, Int. J. Found. Comput. Sci..

[6]  Amr Elmasry,et al.  The Weak-Heap Family of Priority Queues in Theory and Praxis , 2012, CATS.

[7]  Amr Elmasry,et al.  The Magic of a Number System , 2010, FUN.

[8]  Behrooz Parhami,et al.  Generalized Signed-Digit Number Systems: A Unifying Framework for Redundant Number Representations , 1990, IEEE Trans. Computers.

[9]  Haim Kaplan,et al.  Purely functional, real-time deques with catenation , 1999, JACM.

[10]  Amr Elmasry,et al.  Two Skew-Binary Numeral Systems and One Application , 2011, Theory of Computing Systems.

[11]  Amr Elmasry,et al.  Red–black trees with constant update time , 2018, Acta Informatica.

[12]  Algirdas Avizienis,et al.  Signed-Digit Numbe Representations for Fast Parallel Arithmetic , 1961, IRE Trans. Electron. Comput..

[13]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[14]  Haim Kaplan,et al.  Meldable heaps and boolean union-find , 2002, STOC '02.

[15]  F. Warren Burton,et al.  A New Method for Functional Arrays , 1997, J. Funct. Program..

[16]  Donald E. Knuth,et al.  The Art of Computer Programming: Combinatorial Algorithms, Part 1 , 2011 .

[17]  Paz Carmi,et al.  Improved Methods For Generating Quasi-Gray Codes , 2010, SWAT.

[18]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[19]  Behrooz Parhami,et al.  Computer arithmetic - algorithms and hardware designs , 1999 .

[20]  Xin-She Yang,et al.  Introduction to Algorithms , 2021, Nature-Inspired Optimization Algorithms.

[21]  J. Boothroyd,et al.  Algorithm 246: Graycode , 1964, CACM.

[22]  Bjarne Stroustrup,et al.  The C++ programming language (2nd ed.) , 1991 .

[23]  Eugene W. Myers,et al.  An Applicative Random-Access Stack , 1983, Inf. Process. Lett..

[24]  Haim Kaplan,et al.  Purely functional representations of catenable sorted lists , 1996, STOC '96.

[25]  Leonidas J. Guibas,et al.  A new representation for linear lists , 1977, STOC '77.

[26]  Gerth Stølting Brodal,et al.  Fast Meldable Priority Queues , 1995, WADS.

[27]  Chris Okasaki,et al.  Simple and efficient purely functional queues and deques , 1995, Journal of Functional Programming.

[28]  Amr Elmasry,et al.  Two-tier relaxed heaps , 2006, Acta Informatica.

[29]  Ronald D. Dutton,et al.  Weak-heap sort , 1993, BIT.

[30]  Edward M. Reingold,et al.  Efficient generation of the binary reflected gray code and its applications , 1976, CACM.

[31]  Mark R. Brown,et al.  Implementation and Analysis of Binomial Queue Algorithms , 1978, SIAM J. Comput..

[32]  Amr Elmasry,et al.  Multipartite priority queues , 2008, TALG.

[33]  Amr Elmasry,et al.  Fat Heaps without Regular Counters , 2012, Discret. Math. Algorithms Appl..

[34]  S. Srinivasa Rao,et al.  Integer Representations towards Efficient Counting in the Bit Probe Model , 2011, TAMC.

[35]  I. Koren Computer arithmetic algorithms , 2018 .

[36]  Amr Elmasry,et al.  The weak-heap data structure: Variants and applications , 2012, J. Discrete Algorithms.

[37]  Donald E. Knuth,et al.  A Programming and Problem-Solving Seminar , 1981 .

[38]  Jyrki Katajainen Worst-Case-Efficient Dynamic Arrays in Practice , 2016, SEA.

[39]  J. Ian Munro,et al.  An Implicit Binomial Queue with Constant Insertion Time , 1988, SWAT.

[40]  Chris Okasaki,et al.  Purely functional data structures , 1998 .

[41]  Jean Vuillemin,et al.  A data structure for manipulating priority queues , 1978, CACM.

[42]  Amr Elmasry,et al.  Two new methods for constructing double-ended priority queues from priority queues , 2008, Computing.

[43]  Amr Elmasry,et al.  Strictly-Regular Number System and Data Structures , 2010, SWAT.

[44]  Amr Elmasry,et al.  Bipartite binomial heaps , 2017, RAIRO Theor. Informatics Appl..

[45]  Amr Elmasry,et al.  Worst-Case Optimal Priority Queues via Extended Regular Counters , 2011, CSR.

[46]  Robert HOOD,et al.  Real-Time Queue Operation in Pure LISP , 1980, Inf. Process. Lett..

[47]  Donald E. Knuth,et al.  The art of computer programming, volume 3: (2nd ed.) sorting and searching , 1998 .

[48]  Jyrki Katajainen,et al.  Experiences with the Design and Implementation of Space-Efficient Deques , 2001, Algorithm Engineering.

[49]  Gerth Stølting Brodal,et al.  Worst-case efficient priority queues , 1996, SODA '96.

[50]  Robert E. Tarjan,et al.  Relaxed heaps: an alternative to Fibonacci heaps with applications to parallel computation , 1988, CACM.