Number of places elements to be shifted, with default value
of 1 meaning to put the last element first, followed by the first
element, then the second, etc
a
Array to be shifted
v
Vector of numbers to be shifted in each dimension, with
default value corresponding to shift()ing each dimension by 1
unit. If the length of v is less than length(dim(a)),
it is padded with zeroes (thus
Details
Function shift(x,n) returns $P^n(x)$ where
$P$ is the permutation
$(n,1,2,\ldots,n-1)$.
Function ashift is the array generalization of this: the
$n^{\rm th}$ dimension is shifted by v[n]. In other
words,
ashift(a,v)=a[shift(1:(dim(a)[1]),v[1]),...,shift(1:(dim(a)[n]),v[n])].
It is named by analogy with abind() and aperm().
This function is here because a shifted semimagic square or hypercube
is semimagic and a shifted pandiagonal square or hypercube is
pandiagonal (note that a shifted magic square is not necessarily
magic, and a shifted perfect hypercube is not necessarily perfect).