A method for generating a reflection of data in a plurality of processing
elements comprises shifting the data along, for example, each row in the
array until each processing element in the row has received all the data
held by every other processing element in that row. Each processing
element stores and outputs final data as a function of its position in
the row. A similar reflection along a horizontal line can be achieved by
shifting data along columns instead of rows. Also disclosed is a method
for reflecting data in a matrix of processing elements about a vertical
line comprising shifting data between processing elements arranged in
rows. An initial count is set in each processing element according to the
expression (2.times.Col_Index) MOD (array size). In one embodiment, a
counter counts down from the initial count in each processing element as
a function of the number of shifts that have peen performed. Output is
selected as a function of the current count. A similar reflection about a
horizontal line can be achieved by shifting data between processing
elements arranged in columns and setting the initial count according to
the expression (2.times.Row_Index) MOD (array size). The present
invention represents an efficient method for obtaining the reflection of
data.