HELP ARRAY_ROTATE                                   David Young
                                                    February 2000

LIB * ARRAY_ROTATE provides a procedure that circulates an array or
region of an array by moving values off the left edge and onto the right
edge, off the top and onto the bottom, etc.

array_rotate(arrin, region, shift, arrout) -> arrout
        arrin is an array. See *arraysample for the kinds of arrays that
        are handled most efficiently.

        region is a *boundslist type specification of the input region
        of the array. If <false>, then this defaults to the boundslist
        of arrin.

        shift is a list or vector specifying how far in each dimension
        to shift the input, as in *arrayshift.

        arrout may be an output array, which must contain the area
        specified by region, or it may be <false>, in which case an
        array with boundslist given by region is created and returned.
        arrout may be the same array as arrin, in which case the
        original data are overwritten by the rotated data.

        On exit, the part of arrout specified by region contains the
        circularly shifted values.

Note that array_rotate can be combined with *arrayshift to allow the
bounds of an array containing data that is periodic to be shifted
without, in effect, altering the position of the data.


--- $popvision/help/array_rotate
--- Copyright University of Sussex 2000. All rights reserved.
