remaptakes an argument of the same shape as the array (which does not, however, conform with the array) and copies its value into the array.
void ArrayInt :: remap(ArrayInt) ; void ArrayFloat :: remap(ArrayFloat) ; void ArrayDouble :: remap(ArrayDouble) ; ...Eg
c.remap(d) ; // c = dThis operation clearly does require communication.
shiftis similar to
remap, except that the argument does conform with the array, but the copy is a shifted copy.
Again, communication is required.