in datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/CompareAndCopy.java [390:405]
static void putNonNativeDoubles(final double[] srcArray, int srcOffsetDoubles,
int lengthDoubles, long copyBytes, final Object unsafeObj, long cumOffsetBytes) {
ResourceImpl.checkBounds(srcOffsetDoubles, lengthDoubles, srcArray.length);
while (copyBytes > UNSAFE_COPY_THRESHOLD_BYTES) {
final long chunkBytes = Math.min(copyBytes, UNSAFE_COPY_THRESHOLD_BYTES);
final int chunkDoubles = (int) (chunkBytes >> DOUBLE_SHIFT);
putDoubleArrayChunk(srcArray, srcOffsetDoubles, chunkDoubles,
unsafeObj, cumOffsetBytes);
cumOffsetBytes += chunkBytes;
srcOffsetDoubles += chunkDoubles;
copyBytes -= chunkBytes;
lengthDoubles -= chunkDoubles;
}
putDoubleArrayChunk(srcArray, srcOffsetDoubles, lengthDoubles,
unsafeObj, cumOffsetBytes);
}