Copyright Digital Equipment Corp. All rights reserved.

CSHIFT

 CSHIFT (array, shift [,dim])

 Class:  Transformational function - Generic

 Performs a circular shift on a rank-one array, or performs circular
 shifts on all the complete rank-one sections along a given
 dimension of an array of rank two or greater.

 Elements shifted off one end are inserted at the other end.
 Different sections can be shifted by different amounts and in
 different directions.

 The "shift" can be a scalar integer or array with rank one less
 than "array".  The "dim" must be a scalar integer with a value in
 the range 1 to n, where "n" is the rank of "array".  If "dim" is
 omitted, it is assumed to be 1.

 The result is an array with the same type, type parameters, and
 shape as "array".

 If "array" has rank one, element i of the result is array (1 +
 MODULO (i + "shift" - 1, SIZE (array))).

 If "array" has rank greater than 1, section (s1, s2, ...s"dim"-1,
 :, s"dim"+1, ..., sn) of the result has a value equal to CSHIFT
 (array(s1, s2, ..., s"dim"-1, :, s"dim"+1, ..., sn), sh, 1), where
 "sh" is "shift" or shift(s1, s2, ..., s"dim"-1, s"dim"+1,..., sn).

 The value of "shift" determines the amount and direction of the
 circular shift.  A positive integer causes a shift to the left (in
 rows) or up (in columns).  A negative integer causes a shift to the
 right (in rows) or down (in columns).

 Examples:

 V is the array (1, 2, 3, 4, 5, 6).

 CSHIFT (V, SHIFT=2) shifts V circularly to the left by 2 positions,
 producing the value (3, 4, 5, 6, 1, 2).

 CSHIFT (V, SHIFT= -2) shifts V circularly to the right by 2
 positions, producing the value (5, 6, 1, 2, 3, 4).

 M is the array Consider the following array:

   Array M

   |1 2 3|
   |4 5 6|
   |7 8 9|

 CSHIFT (M, SHIFT = 1, DIM = 2) produces the result:

   |2 3 1|
   |5 6 4|
   |8 9 7|

 CSHIFT (M, SHIFT = -1, DIM = 1) produces the result

   |7 8 9|
   |1 2 3|
   |4 5 6|

 CSHIFT (M, SHIFT = (/1, -1, 0/), DIM = 2) produces the result

   |2 3 1|
   |6 4 5|
   |7 8 9|