case DOUBLE: {
                // TODO: we might want to skip copy, and use existing pointer/data here
                val dPointer = new DoublePointer(dataNumElements);
                Pointer.memcpy(dPointer, dataPointer,dataNumElements);