So this represents the order of the tuple, but the bits will be encoded in reverse order: ....z1y1x1z0y0x0 This is a little confusing.
combine every third bit to form a value.
Is the value contained in the range.
Is the value contained in the range.
Is the value contained in the range. Considers user-space.
range
value to be tested
Cuts Z-Range in two and trims based on user space, can be used to perform augmented binary search
Cuts Z-Range in two and trims based on user space, can be used to perform augmented binary search
Calculates the longest common binary prefix between two z longs
Calculates the longest common binary prefix between two z longs
(common prefix, number of bits in common)
Does the value overlap with the range.
insert 00 between every bit in value.
Returns (litmax, bigmin) for the given range and point
Returns (litmax, bigmin) for the given range and point
point
minimum value
maximum value
(litmax, bigmin)
Calculates ranges in index space that match any of the input bounds.
Calculates ranges in index space that match any of the input bounds. Uses breadth-first searching to allow a limit on the number of ranges returned.
To improve performance, the following decisions have been made: uses loops instead of foreach/maps uses java queues instead of scala queues allocates initial sequences of decent size sorts once at the end before merging
search space
precision to consider, in bits (max 64)
loose cap on the number of ranges to return. A higher number of ranges will have less false positives, but require more processing.
max levels of recursion to apply before stopping
ranges covering the search space