poppar

Date:

10-12-2011

NAME

_poppar, POPPAR - Compute bit population parity

SYNOPSIS

C

#include <intrinsics.h>

long _poppar (long i);

Fortran

POPPAR ([I=]i)

IMPLEMENTATION

Cray Linux Environment (CLE)

STANDARDS

C extension

Fortran extension

DESCRIPTION

C

The _poppar function returns 0 if the argument i has an even number of bits that are set to 1. This is the parity of the population count for argument i.

Fortran

This intrinsic function computes the bit population parity and returns an integer value. It accepts the following argument:

i

A Boolean, integer, real, or Cray pointer value. The i argument cannot be declared as REAL(KIND=16).

POPPAR is an elemental function. The name of this intrinsic cannot be passed as an argument.

NOTES

C

Because _poppar is an intrinsic function, no externally visible library function is available for it. The compiler generates inline code to produce the result.

RETURN VALUES

In Fortran, POPPAR returns the value 0 if an even number of bits in i are set. It returns the value 1 if an odd number of bits are set in i.

POPPAR and poppar return 64-bit values.

C programmers can cause the poppar function to return a 32-bit int instead of 64-bit long by declaring the intrinsic manually with int as the return type.

EXAMPLES

The following section of Fortran code shows the POPPAR function used with an argument of type integer. The bit pattern of the argument and the value of the result are also given. For simplicity, a 16-bit object is used.

INTEGER I1, I2
...
I2 = POPPAR(I1)
 ---------------------------------------------------------------
| 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 0 |
 ---------------------------------------------------------------
                              I1

The POPPAR function returns the value 0 to the integer variable I2.

SEE ALSO

For a complete list of C intrinsic functions, see the Cray C and C++ Reference Manual.