long[] destPosition = new long[n];
long[] srcPosition = new long[n];
for (int k = 0; k < n; k++) {
IRange range = destRegion.coordRange(k);
dimensions[k] = range.size();
destPosition[k] = range.min();
srcPosition[k] = shifts.length > k ? destPosition[k] - shifts[k] : destPosition[k];
}
if (dest.isTiled()) {
return new ToTiled(dest, src, continuationMode, continuationMode,
destPosition, srcPosition, dimensions).copySubMatrix(context);