HELP ARRAYVECTOR                               John Williams, January 1985

    arrayvector(_____array) -> ___________vectorclass;

    ___________vectorclass -> arrayvector(_____array);

    arrayvector_bounds(_____array) -> ____________lo_subscript -> ____________hi_subscript;


When applied to an array (created by * ___________NEWANYARRAY or * ________NEWARRAY), the
procedure arrayvector returns the vector in which the array elements are
stored. The procedure arrayvector_bounds returns the bounds of the
portion of this vector used by the array. Normally the bounds are 1 and
the length of the vector, but not if the array is displaced to another
array or vector.

For example:

    vars a b lo hi;
    newarray([1 3 1 3], nonop *) -> a;
    arrayvector(a) =>
    ** {1 2 3 2 4 6 3 6 9}
    arrayvector_bounds(a) -> lo -> hi;
    lo =>
    ** 1
    hi =>
    ** 9

Now create a displaced array:

    newanyarray([1 4], a, 3) -> b;
    arrayvector(b) =>
    ** {1 2 3 2 4 6 3 6 9}
    arrayvector_bounds(b) =>
    ** 7 4

The updater of arrayvector can be used to replace an array's
arrayvector. The new arrayvector must be of the same type as the old,
and at least as long as the maximum arrayvector bound.

See ___REF * ______ARRAYS for a full discussion of arrays in Poplog.



--- ______________________C.all/help/arrayvector
--- _________Copyright __________University __of ______Sussex _____1988. ___All ______rights _________reserved.
