Shared Integer Dichotomy
Résumé
The Integer Dichotomy Diagram IDD(n) represents a natural number n ∈ N by a Directed Acyclic Graph in which equal nodes are shared to reduce the size s(n). That IDD also represents some finite set of integers by a Digital Search DAG where equal subsets are shared. The same IDD also represents representing Boolean Functions, IDDs are equivalent to (Zero-suppressed) ZDD or to (Binary Moment) BMD Decision Diagrams. The IDD data-structure and algorithms combines three standard software packages into one: arithmetics, sets and Boolean functions. Unlike the binary length l(n), the IDD size s(n) < l(n) is not monotone in n. Most integers are dense, and s(n) is near l(n). Yet, the IDD size of sparse integers can be arbitrarily smaller. We show that a single IDD software package combines many features from the best known specialized packages for operating on integers, sets, Boolean functions, and more. Over dense structures, the time/space complexity of IDD operations is proportional to that of its specialized competitors. Yet equality testing is performed in unit time with IDDs, and the complexity of some integer operations (e.g. n < m, n ± 2 m , 2 2 n ,. . .) is exponentially lower than with bit-arrays. In general, the IDD is best in class over sparse structures, where both the space and time complexities can be arbitrarily lower than those of un-shared representations. We show that sparseness is preserved by most integer operations, including arithmetic and logic operations, but excluding multiplication and division. Keywords: computer arithmetic, integer dichotomy & trichotomy, sparse & dense structures , dictionary package, digital search tree, minimal acyclic automata, binary Trie, boolean function, decision diagram, store/compute/code once. 2
Domaines
Informatique [cs]Origine | Publication financée par une institution |
---|
Loading...