Array Reduction Functions

** Next:** Array Combining Scatter
**Up:** Library Procedures
** Previous:** Bit Manipulation Functions

HPF adds additional array reduction functions that operate in the same
manner as the Fortran 90 `SUM` and `ANY` intrinsic functions.
The new reduction functions are `IALL`, `IANY`, `IPARITY`,
and `PARITY`, which correspond to the commutative, associative
binary operations `IAND`, `IOR`, `IEOR`, and `.NEQV.`
respectively.

In the specifications of these functions, the terms ```XXX`
reduction'' are used, where `XXX` is one of the binary operators
above. These are defined by means of an example. The `IAND`
reduction of all the elements of `array` for which the
corresponding element of `mask` is true is the scalar integer
computed in `result` by

result = IAND_IDENTITY_ELEMENT
DO i_1 = LBOUND(array,1), UBOUND(array,1)
...
DO i_n = LBOUND(array,n), UBOUND(array,n)
IF ( mask(i_1,i_2,...,i_n) ) &
result = IAND( result, array(i_1,i_2,...,i_n) )
END DO
...
END DO

Here, is the rank of `array` and
`IAND_IDENTITY_ELEMENT` is the integer which has all bits equal to one.
(The interpretation of an integer as a sequence of bits is given in
Section 13.5.7 of the Fortran 90 standard.)
The other three reductions are similarly defined. The identity elements
for `IOR` and `IEOR` are zero. The identity element for `PARITY` is
`.FALSE.`

*paula@erc.msstate.edu *

Thu Dec 8 16:17:11 CST 1994