This function performs an in-place rearrangment of the the elements
of an array according to the specified permutation, represented by
the indices argument. The indices array is assumed to
contain unique integers in the range [0,length(A)-1].
Notes
The function modifies the elements of the indices array while
it performs the rearrangement. The values will get restored upon
return from function.
The shift function shifts the elements of an array by a specified amount
and returns the result. If n is positive, the ith element of the array
will be shifted to the position i-n of the array. Elements for
which i-n is less than 0 will be moved to the end of the array.
Example
A = [1,2,3,4,5,6,7,8,9];
B = shift (A, 3); % ==> B = [4,5,6,7,8,9,1,2,3];
C = shift (A, -1); % ==> C = [9,1,2,3,4,5,6,7,8];
Notes
It many ways rotate would be a better name for this function.