Fortran implementations come with a set of built-in functions and
subroutines called the *intrinsics*.
The *transformational intrinsics* are a subset of the intrinsics that
peform functions on whole arrays, sometimes returning whole array results.
In HPF these functions can operate on distributed arrays, implying
new patterns of communication.

Some of the transformational intrinsics just reshuffle elements of
arrays in regular ways. For example if the `CSHIFT`, `EOSHIFT`,
`TRANSPOSE` and `SPREAD` intrinsics are applied to distributed
arrays, they imply patterns of data remapping that are quite similar
to patterns in the array assignments of section 1.1.
The reduction intrinsics, including `SUM`, `PRODUCT`, `MAXVAL`, `MINVAL`, `ALL`, `ANY` and several others, introduce
qualitatively different communication patterns. They reduce an array
either to a scalar or a lower-rank array by arithmetically combining
elements along some or all dimensions. Typically the associated
communications occur on some spanning tree. In MPI terms they are
related to, and might be implemented in terms of, `MPI_REDUCE`.

*Parallel prefix* operations can also be expressed. The HPF standard
includes them as standard library functions (rather than intrinsics).
They can also be expressed in terms of FORALL statements:

FORALL (I = 1 : N) RES (I) = SUM(A (1 : I))The th element of the result contains the sum of all elements in