Packages

abstract class ZN extends AnyRef

N-dimensional z-curve base class

Linear Supertypes
AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ZN
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new ZN()

Abstract Value Members

  1. abstract def BitsPerDimension: Int
  2. abstract def Dimensions: Int
  3. abstract def MaxMask: Long
  4. abstract def TotalBits: Int
  5. 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

  6. 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

  7. 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

  8. 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

  1. 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

  2. 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

  3. 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)

  4. 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)

  5. 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

  6. def zranges(zbounds: ZRange, precision: Int, maxRanges: Option[Int]): Seq[IndexRange]
  7. def zranges(zbounds: ZRange, precision: Int): Seq[IndexRange]
  8. def zranges(zbounds: ZRange): Seq[IndexRange]