WHEREFIRST Procedure

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

Note:

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.

Note:

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