HELP ARRAY_REFLECT                              David Young
                                                October 1992
                                                revisec February 2000

LIB *ARRAY_REFLECT extends an array or region by reflecting it about its
boundaries.

array_reflect(ARRIN, REGIONIN, ARROUT_OR_FALSE, REGIONOUT) -> ARROUT
    ARRIN is an input array. Packed floating point arrays are most
    efficient (see *ARRAYSAMPLE, which is used by this routine).
    REGIONIN is a list the same length as the boundslist of ARRIN,
    specifying a region of ARRIN to extend; alternatively REGIONIN
    may be <false>, in which case it defaults to the boundslist of
    ARRIN. If ARROUT_OR_FALSE is an array (again preferably
    floating-point packed), then the output data is stored in this
    array; it may be the same array as ARRIN. If ARROUT_OR_FALSE is
    <false>, a new array is created with boundslist given by REGIONOUT
    and the data is stored in it. In either case, the array used is
    returned. REGIONOUT specifies the region of ARROUT in which data is
    to be stored; it must contain REGIONIN. If REGIONOUT is <false> then
    ARROUT_OR_FALSE must be an array, and its boundslist is used for
    REGIONOUT.

With 2-D arrays, the effect is to tile the plane with tiles that are
twice as big (in each dimension) as the original region, and which match
up at their junctions.

Note: this used to be almost identical to *ARRAY_WRAP, but in Feb 2000
ARRAY_WRAP was updated to be much more flexible. The same job needs to
be done on ARRAY_REFLECT so that it uses the same techniques and allows
the same flexibility. Specifically, at present regionout has to contain
regionin, which should not be required.

--- $popvision/help/array_reflect
--- Copyright University of Sussex 1992. All rights reserved. ----------
