# Class ArrayOfDoublesUnion

java.lang.Object
org.apache.datasketches.tuple.arrayofdoubles.ArrayOfDoublesUnion

public abstract class ArrayOfDoublesUnion extends Object
The base class for unions of tuple sketches of type ArrayOfDoubles.

## Method Summary

Modifier and Type
Method
Description
`static int`
`getMaxBytes(int nomEntries, int numValues)`
Returns maximum required storage bytes given nomEntries and numValues
`ArrayOfDoublesCompactSketch`
`getResult()`
Returns the resulting union in the form of a compact sketch
`ArrayOfDoublesCompactSketch`
`getResult(MemorySegment dstSeg)`
Returns the resulting union in the form of a compact sketch
`static ArrayOfDoublesUnion`
`heapify(MemorySegment srcSeg)`
Heapify the given MemorySegment as an ArrayOfDoublesUnion.
`static ArrayOfDoublesUnion`
`heapify(MemorySegment srcSeg, long seed)`
Heapify the given MemorySegment and seed as an ArrayOfDoublesUnion.
`void`
`reset()`
Resets the union to an empty state
`byte[]`
`toByteArray()`
Returns a byte array representation of this object
`void`
`union(ArrayOfDoublesSketch tupleSketch)`
Updates the union by adding a set of entries from a given sketch, which can be on-heap or off-heap.
`static ArrayOfDoublesUnion`
`wrap(MemorySegment srcSeg)`
Wrap the given MemorySegment as an ArrayOfDoublesUnion.
`static ArrayOfDoublesUnion`
`wrap(MemorySegment srcSeg, long seed)`
Wrap the given MemorySegment and seed as an ArrayOfDoublesUnion.

### Methods inherited from class Object

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

## Method Details

### heapify

public static ArrayOfDoublesUnion heapify(MemorySegment srcSeg)
Heapify the given MemorySegment as an ArrayOfDoublesUnion.

Parameters:
  `srcSeg` - the given source MemorySegment
Returns:
  an ArrayOfDoublesUnion

### heapify

public static ArrayOfDoublesUnion heapify(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

### wrap

public static ArrayOfDoublesUnion wrap(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

### wrap

public static ArrayOfDoublesUnion wrap(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

### union

public void union(ArrayOfDoublesSketch tupleSketch)
Updates the union by adding a set of entries from a given sketch, which can be on-heap or off-heap. Both the given tupleSketch and the internal state of the TupleUnion must have the same numValues.

Nulls and empty sketches are ignored.

Parameters:
  `tupleSketch` - sketch to add to the union.

### getResult

public ArrayOfDoublesCompactSketch getResult(MemorySegment dstSeg)
Returns the resulting union in the form of a compact sketch

Parameters:
  `dstSeg` - MemorySegment for the result (can be null)
Returns:
  compact sketch representing the union (off-heap if MemorySegment is provided)

### getResult

public ArrayOfDoublesCompactSketch getResult()
Returns the resulting union in the form of a compact sketch

Returns:
  on-heap compact sketch representing the union

### reset

public void reset()
Resets the union to an empty state

### toByteArray

public byte[] toByteArray()
Returns a byte array representation of this object

Returns:
  a byte array representation of this object

### getMaxBytes

public static int getMaxBytes(int nomEntries, int numValues)
Returns maximum required storage bytes given nomEntries and numValues

Parameters:
  `nomEntries` - Nominal number of entries. Forced to the nearest power of 2 greater than or equal to given value.
  `numValues` - Number of double values to keep for each key
Returns:
  maximum required storage bytes given nomEntries and numValues