abstract class ZN extends AnyRef
N-dimensional z-curve base class
- Alphabetic
- By Inheritance
- ZN
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
- new ZN()
Abstract Value Members
- abstract def BitsPerDimension: Int
- abstract def Dimensions: Int
- abstract def MaxMask: Long
- abstract def TotalBits: Int
-
abstract
def
combine(z: Long): Int
Combine every (Dimensions - 1) bits to re-create a single dimension.
Combine every (Dimensions - 1) bits to re-create a single dimension. Opposite of split.
- z
value to combine
-
abstract
def
contains(range: ZRange, value: Long): Boolean
Is the value contained in the range.
Is the value contained in the range. Considers user-space.
- range
range
- value
value to be tested
-
abstract
def
overlaps(range: ZRange, value: ZRange): Boolean
Does the value overlap with the range.
Does the value overlap with the range. Considers user-space.
- range
range
- value
value to be tested
-
abstract
def
split(value: Long): Long
Insert (Dimensions - 1) zeros between each bit to create a zvalue from a single dimension.
Insert (Dimensions - 1) zeros between each bit to create a zvalue from a single dimension. Only the first BitsPerDimension can be considered.
- value
value to split
Concrete Value Members
-
def
contains(range: ZRange, value: ZRange): Boolean
Is the value contained in the range.
Is the value contained in the range. Considers user-space.
- range
range
- value
value to be tested
-
def
cut(r: ZRange, xd: Long, inRange: Boolean): List[ZRange]
Cuts Z-Range in two and trims based on user space, can be used to perform augmented binary search
-
def
longestCommonPrefix(values: Long*): ZPrefix
Calculates the longest common binary prefix between two z longs
Calculates the longest common binary prefix between two z longs
- returns
(common prefix, number of bits in common)
-
def
zdivide(p: Long, rmin: Long, rmax: Long): (Long, Long)
Returns (litmax, bigmin) for the given range and point
Returns (litmax, bigmin) for the given range and point
- p
point
- rmin
minimum value
- rmax
maximum value
- returns
(litmax, bigmin)
-
def
zranges(zbounds: Array[ZRange], precision: Int = 64, maxRanges: Option[Int] = None, maxRecurse: Option[Int] = Some(ZN.DefaultRecurse)): Seq[IndexRange]
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
- zbounds
search space
- precision
precision to consider, in bits (max 64)
- maxRanges
loose cap on the number of ranges to return. A higher number of ranges will have less false positives, but require more processing.
- maxRecurse
max levels of recursion to apply before stopping
- returns
ranges covering the search space
- def zranges(zbounds: ZRange, precision: Int, maxRanges: Option[Int]): Seq[IndexRange]
- def zranges(zbounds: ZRange, precision: Int): Seq[IndexRange]
- def zranges(zbounds: ZRange): Seq[IndexRange]