WHEREFIRST Procedure

Standard Library procedure that returns the index of the first 1 in array of 0’s and 1’s.

For large binary arrays, WHEREFIRST is faster than (WHERE(b))(0).

Usage

WHEREFIRST, b, i

Input Parameters

b — Array containing only 0’s and 1’s.

i — (I/O) Index from which the forward search begins.

Output Parameters

i — (I/O) Index of the first occurrence of 1 in b which is greater than or equal to the input index.

Discussion

Given an array of 0's and 1's and a 1D index i, WHEREFIRST returns the 1D index j of the first 1 such that j ³ i. For large binary arrays (arrays that contain only ones and zeros) WHEREFIRST is much more efficient than using WHERE to find the first nonzero element.

It is important that the array contain only zeros and ones, otherwise results are unpredictable. For performance reasons, the input array is not checked for invalid values.

Example

i=1
WHEREFIRST,[0,0,0,1,1,0,1,0,1],i
PM, i

Output

3

See Also

WHERE