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).