sclass CompressToInterpolatedDoubleArray { // raw data to compress (integers) int[] data; // output InterpolatedDoubleArray result; // internal new IntBuffer indices; new DoubleBuffer values; *(int[] *data) {} InterpolatedDoubleArray get() { int iData = 0; while (iData < data.length) { indices.add(iData); values.add(data[iData]); iData++; } ret result = new InterpolatedDoubleArray(indices.toArrayNonNull(), values.toArrayNonNull()); } }