Class ArrayOfDoublesSketch

java.lang.Object
org.apache.datasketches.tuple.arrayofdoubles.ArrayOfDoublesSketch
Direct Known Subclasses:
ArrayOfDoublesCompactSketch, ArrayOfDoublesUpdatableSketch

public abstract class ArrayOfDoublesSketch extends Object
The base class for the tuple sketch of type ArrayOfDoubles, where an array of double values is associated with each key. A primitive array of doubles is used here, as opposed to a generic Summary object, for improved performance.
  • Method Details

    • heapify

      public static ArrayOfDoublesSketch heapify(MemorySegment seg)
      Heapify the given MemorySegment as an ArrayOfDoublesSketch
      Parameters:
      seg - the given MemorySegment
      Returns:
      an ArrayOfDoublesSketch
    • heapify

      public static ArrayOfDoublesSketch heapify(MemorySegment seg, long seed)
      Heapify the given MemorySegment and seed as a ArrayOfDoublesSketch
      Parameters:
      seg - the given MemorySegment
      seed - the given seed
      Returns:
      an ArrayOfDoublesSketch
    • wrap

      public static ArrayOfDoublesSketch wrap(MemorySegment seg)
      Wrap the given MemorySegment as an ArrayOfDoublesSketch. If the given source MemorySegment is read-only, the returned TupleUnion object will also be read-only.
      Parameters:
      seg - the given MemorySegment
      Returns:
      an ArrayOfDoublesSketch
    • wrap

      public static ArrayOfDoublesSketch wrap(MemorySegment seg, long seed)
      Wrap the given MemorySegment and seed as a ArrayOfDoublesSketch. If the given source MemorySegment is read-only, the returned TupleUnion object will also be read-only.
      Parameters:
      seg - the given MemorySegment
      seed - the given seed
      Returns:
      an ArrayOfDoublesSketch
    • getEstimate

      public double getEstimate()
      Estimates the cardinality of the set (number of unique values presented to the sketch)
      Returns:
      best estimate of the number of unique values
    • getUpperBound

      public double getUpperBound(int numStdDev)
      Gets the approximate upper error bound given the specified number of Standard Deviations. This will return getEstimate() if isEmpty() is true.
      Parameters:
      numStdDev - See Number of Standard Deviations
      Returns:
      the upper bound.
    • getLowerBound

      public double getLowerBound(int numStdDev)
      Gets the approximate lower error bound given the specified number of Standard Deviations. This will return getEstimate() if isEmpty() is true.
      Parameters:
      numStdDev - See Number of Standard Deviations
      Returns:
      the lower bound.
    • hasMemorySegment

      public abstract boolean hasMemorySegment()
      Returns true if this sketch's data structure is backed by MemorySegment.
      Returns:
      true if this sketch's data structure is backed by MemorySegment.
    • isEmpty

      public boolean isEmpty()
      Returns:
      true if empty.
    • getNumValues

      public int getNumValues()
      Returns number of double values associated with each key
      Returns:
      number of double values associated with each key
    • isEstimationMode

      public boolean isEstimationMode()
      Returns true if the sketch is Estimation Mode (as opposed to Exact Mode). This is true if theta < 1.0 AND isEmpty() is false.
      Returns:
      true if the sketch is in estimation mode.
    • getTheta

      public double getTheta()
      Gets the value of theta as a double between zero and one
      Returns:
      the value of theta as a double
    • getRetainedEntries

      public abstract int getRetainedEntries()
      Returns number of retained entries
      Returns:
      number of retained entries
    • getMaxBytes

      public abstract int getMaxBytes()
      Returns the maximum number of bytes for this sketch when serialized.
      Returns:
      the maximum number of bytes for this sketch when serialized.
    • getCurrentBytes

      public abstract int getCurrentBytes()
      For compact sketches this is the same as getMaxBytes().
      Returns:
      the current number of bytes for this sketch when serialized.
    • toByteArray

      public abstract byte[] toByteArray()
      Returns serialized representation of the sketch
      Returns:
      serialized representation of the sketch
    • getValues

      public abstract double[][] getValues()
      Returns array of arrays of double values in the sketch
      Returns:
      array of arrays of double values in the sketch
    • iterator

      public abstract ArrayOfDoublesSketchIterator iterator()
      Returns an iterator over the sketch
      Returns:
      an iterator over the sketch
    • compact

      public ArrayOfDoublesCompactSketch compact()
      Returns this sketch in compact form, which is immutable.
      Returns:
      this sketch in compact form, which is immutable.
    • compact

      public abstract ArrayOfDoublesCompactSketch compact(MemorySegment dstSeg)
      Returns this sketch in compact form, which is immutable.
      Parameters:
      dstSeg - the destination MemorySegment
      Returns:
      this sketch in compact form, which is immutable.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • wrapUnion

      public static ArrayOfDoublesUnion wrapUnion(MemorySegment srcSeg, long seed)
      Wrap the given MemorySegment and seed as an ArrayOfDoublesUnion If the given source MemorySegment is read-only, the returned TupleUnion object will also be read-only.
      Parameters:
      srcSeg - the given source MemorySegment
      seed - the given seed
      Returns:
      an ArrayOfDoublesUnion
    • wrapUnion

      public static ArrayOfDoublesUnion wrapUnion(MemorySegment srcSeg)
      Wrap the given MemorySegment as an ArrayOfDoublesUnion If the given source MemorySegment is read-only, the returned TupleUnion object will also be read-only.
      Parameters:
      srcSeg - the given source MemorySegment
      Returns:
      an ArrayOfDoublesUnion
    • heapifyUnion

      public static ArrayOfDoublesUnion heapifyUnion(MemorySegment srcSeg, long seed)
      Heapify the given MemorySegment and seed as an ArrayOfDoublesUnion
      Parameters:
      srcSeg - the given source MemorySegment
      seed - the given seed
      Returns:
      an ArrayOfDoublesUnion
    • heapifyUnion

      public static ArrayOfDoublesUnion heapifyUnion(MemorySegment srcSeg)
      Heapify the given MemorySegment as an ArrayOfDoublesUnion
      Parameters:
      srcSeg - the given source MemorySegment
      Returns:
      an ArrayOfDoublesUnion
    • wrapUpdatableSketch

      public static ArrayOfDoublesUpdatableSketch wrapUpdatableSketch(MemorySegment srcSeg, long seed)
      Wrap the given MemorySegment and seed as a ArrayOfDoublesUpdatableSketch. If the given source MemorySegment is read-only, the returned TupleUnion object will also be read-only.
      Parameters:
      srcSeg - the given source MemorySegment
      seed - the given seed
      Returns:
      an ArrayOfDoublesUpdatableSketch
    • wrapUpdatableSketch

      public static ArrayOfDoublesUpdatableSketch wrapUpdatableSketch(MemorySegment srcSeg)
      Wrap the given MemorySegment as an ArrayOfDoublesUpdatableSketch. If the given source MemorySegment is read-only, the returned TupleUnion object will also be read-only.
      Parameters:
      srcSeg - the given source MemorySegment
      Returns:
      an ArrayOfDoublesUpdatableSketch
    • wrapSketch

      public static ArrayOfDoublesSketch wrapSketch(MemorySegment srcSeg, long seed)
      Wrap the given MemorySegment and seed as a ArrayOfDoublesSketch. If the given source MemorySegment is read-only, the returned TupleUnion object will also be read-only.
      Parameters:
      srcSeg - the given source MemorySegment
      seed - the given seed
      Returns:
      an ArrayOfDoublesSketch
    • wrapSketch

      public static ArrayOfDoublesSketch wrapSketch(MemorySegment srcSeg)
      Wrap the given MemorySegment as an ArrayOfDoublesSketch. If the given source MemorySegment is read-only, the returned TupleUnion object will also be read-only.
      Parameters:
      srcSeg - the given source MemorySegment
      Returns:
      an ArrayOfDoublesSketch
    • heapifyUpdatableSketch

      public static ArrayOfDoublesUpdatableSketch heapifyUpdatableSketch(MemorySegment srcSeg, long seed)
      Heapify the given MemorySegment and seed as a ArrayOfDoublesUpdatableSketch
      Parameters:
      srcSeg - the given source MemorySegment
      seed - the given seed
      Returns:
      an ArrayOfDoublesUpdatableSketch
    • heapifyUpdatableSketch

      public static ArrayOfDoublesUpdatableSketch heapifyUpdatableSketch(MemorySegment srcSeg)
      Heapify the given MemorySegment as an ArrayOfDoublesUpdatableSketch
      Parameters:
      srcSeg - the given source MemorySegment
      Returns:
      an ArrayOfDoublesUpdatableSketch
    • heapifySketch

      public static ArrayOfDoublesSketch heapifySketch(MemorySegment srcSeg, long seed)
      Heapify the given MemorySegment and seed as a ArrayOfDoublesSketch
      Parameters:
      srcSeg - the given source MemorySegment
      seed - the given seed
      Returns:
      an ArrayOfDoublesSketch
    • heapifySketch

      public static ArrayOfDoublesSketch heapifySketch(MemorySegment srcSeg)
      Heapify the given MemorySegment as an ArrayOfDoublesSketch
      Parameters:
      srcSeg - the given source MemorySegment
      Returns:
      an ArrayOfDoublesSketch