# 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 Summary

Modifier and Type
Method
Description
`ArrayOfDoublesCompactSketch`
`compact()`
Returns this sketch in compact form, which is immutable.
`abstract ArrayOfDoublesCompactSketch`
`compact(MemorySegment dstSeg)`
Returns this sketch in compact form, which is immutable.
`abstract int`
`getCurrentBytes()`
For compact sketches this is the same as getMaxBytes().
`double`
`getEstimate()`
Estimates the cardinality of the set (number of unique values presented to the sketch)
`double`
`getLowerBound(int numStdDev)`
Gets the approximate lower error bound given the specified number of Standard Deviations.
`abstract int`
`getMaxBytes()`
Returns the maximum number of bytes for this sketch when serialized.
`int`
`getNumValues()`
Returns number of double values associated with each key
`abstract int`
`getRetainedEntries()`
Returns number of retained entries
`double`
`getTheta()`
Gets the value of theta as a double between zero and one
`double`
`getUpperBound(int numStdDev)`
Gets the approximate upper error bound given the specified number of Standard Deviations.
`abstract double[][]`
`getValues()`
Returns array of arrays of double values in the sketch
`abstract boolean`
`hasMemorySegment()`
Returns true if this sketch's data structure is backed by MemorySegment.
`static ArrayOfDoublesSketch`
`heapify(MemorySegment seg)`
Heapify the given MemorySegment as an ArrayOfDoublesSketch
`static ArrayOfDoublesSketch`
`heapify(MemorySegment seg, long seed)`
Heapify the given MemorySegment and seed as a ArrayOfDoublesSketch
`static ArrayOfDoublesSketch`
`heapifySketch(MemorySegment srcSeg)`
Heapify the given MemorySegment as an ArrayOfDoublesSketch
`static ArrayOfDoublesSketch`
`heapifySketch(MemorySegment srcSeg, long seed)`
Heapify the given MemorySegment and seed as a ArrayOfDoublesSketch
`static ArrayOfDoublesUnion`
`heapifyUnion(MemorySegment srcSeg)`
Heapify the given MemorySegment as an ArrayOfDoublesUnion
`static ArrayOfDoublesUnion`
`heapifyUnion(MemorySegment srcSeg, long seed)`
Heapify the given MemorySegment and seed as an ArrayOfDoublesUnion
`static ArrayOfDoublesUpdatableSketch`
`heapifyUpdatableSketch(MemorySegment srcSeg)`
Heapify the given MemorySegment as an ArrayOfDoublesUpdatableSketch
`static ArrayOfDoublesUpdatableSketch`
`heapifyUpdatableSketch(MemorySegment srcSeg, long seed)`
Heapify the given MemorySegment and seed as a ArrayOfDoublesUpdatableSketch
`boolean`
`isEmpty()`
See Empty
`boolean`
`isEstimationMode()`
Returns true if the sketch is Estimation Mode (as opposed to Exact Mode).
`abstract ArrayOfDoublesSketchIterator`
`iterator()`
Returns an iterator over the sketch
`abstract byte[]`
`toByteArray()`
Returns serialized representation of the sketch
`String`
`toString()`
`static ArrayOfDoublesSketch`
`wrap(MemorySegment seg)`
Wrap the given MemorySegment as an ArrayOfDoublesSketch.
`static ArrayOfDoublesSketch`
`wrap(MemorySegment seg, long seed)`
Wrap the given MemorySegment and seed as a ArrayOfDoublesSketch.
`static ArrayOfDoublesSketch`
`wrapSketch(MemorySegment srcSeg)`
Wrap the given MemorySegment as an ArrayOfDoublesSketch.
`static ArrayOfDoublesSketch`
`wrapSketch(MemorySegment srcSeg, long seed)`
Wrap the given MemorySegment and seed as a ArrayOfDoublesSketch.
`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.
`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.
`static ArrayOfDoublesUpdatableSketch`
`wrapUpdatableSketch(MemorySegment srcSeg)`
Wrap the given MemorySegment as an ArrayOfDoublesUpdatableSketch.
`static ArrayOfDoublesUpdatableSketch`
`wrapUpdatableSketch(MemorySegment srcSeg, long seed)`
Wrap the given MemorySegment and seed as a ArrayOfDoublesUpdatableSketch.

### Methods inherited from class Object

`equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## 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()
See Empty

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