IPARITY (The GNU Fortran Compiler)

### 8.162 `IPARITY` — Bitwise XOR of array elements ¶

Synopsis:

  `RESULT = IPARITY(ARRAY[, MASK])`
  `RESULT = IPARITY(ARRAY, DIM[, MASK])`

Description:

  Reduces with bitwise XOR (exclusive or) the elements of ARRAY along dimension DIM if the corresponding element in MASK is `TRUE`.

Class:

  Transformational function

Arguments:

  ARRAY | Shall be an array of type `INTEGER` or `UNSIGNED`.
  DIM | (Optional) shall be a scalar of type `INTEGER` with a value in the range from 1 to n, where n equals the rank of ARRAY.
  MASK | (Optional) shall be of type `LOGICAL` and either be a scalar or an array of the same shape as ARRAY.

Return value:

  The result is of the same type as ARRAY.

  If DIM is absent, a scalar with the bitwise XOR of all elements in ARRAY is returned. Otherwise, an array of rank n-1, where n equals the rank of ARRAY, and a shape similar to that of ARRAY with dimension DIM dropped is returned.

Example:

      PROGRAM test_iparity
        INTEGER(1) :: a(2)

        a(1) = int(b'00100100', 1)
        a(2) = int(b'01101010', 1)

        ! prints 01001110
        PRINT '(b8.8)', IPARITY(a)
      END PROGRAM

Standard:

  Fortran 2008 and later. Extension for `UNSIGNED` (see Unsigned integers)

See also:

  `IANY` — Bitwise OR of array elements,
  `IALL` — Bitwise AND of array elements,
  `IEOR` — Bitwise logical exclusive or,
  `PARITY` — Reduction with exclusive OR