in datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/CompareAndCopy.java [227:243]
static void getNonNativeDoubles(final Object unsafeObj, long cumOffsetBytes,
long copyBytes, final double[] dstArray, int dstOffsetDoubles,
int lengthDoubles) {
ResourceImpl.checkBounds(dstOffsetDoubles, lengthDoubles, dstArray.length);
while (copyBytes > UNSAFE_COPY_THRESHOLD_BYTES) {
final long chunkBytes = Math.min(copyBytes, UNSAFE_COPY_THRESHOLD_BYTES);
final int chunkDoubles = (int) (chunkBytes >> DOUBLE_SHIFT);
getDoubleArrayChunk(unsafeObj, cumOffsetBytes,
dstArray, dstOffsetDoubles, chunkDoubles);
cumOffsetBytes += chunkBytes;
dstOffsetDoubles += chunkDoubles;
copyBytes -= chunkBytes;
lengthDoubles -= chunkDoubles;
}
getDoubleArrayChunk(unsafeObj, cumOffsetBytes,
dstArray, dstOffsetDoubles, lengthDoubles);
}