WHERENAN
Name
WHERENAN()
Purpose
Find the indices of all big-endian NaN values in an array. OBSOLETE
Explanation
Find the positions of all values within an array that correspond to the
big-endian NaN (not-a-number) special values.
THIS PROCEDURE ONLY IDENTIFIES BIG_ENDIAN NaN VALUES. DO NOT USE IT
TO IDENTIFY NaN VALUES IN GENERAL. Instead, to identify NaN values on
the host machine use the FINITE() function
IDL> result = where( finite(array,/NAN) )
The main purpose of this routine is to catch NaN special values
written in big_endian format (e.g. FITS data) on a little endian
machine prior to conversion with e.g. IEEE_TO_HOST. It was needed
many years ago because VMS machines could not handle big-endian
special values, but this routine is now kept only for backwards
compatibility.
Calling Sequence
Result = WHERENAN( ARRAY [, COUNT ] )
Input Parameters
ARRAY = Array to test against the IEEE NaN special values. Must be
of either floating point, double-precision, or complex type.
Outputs
The result of the function is the indices of all values of ARRAY
corresponding to the IEEE NaN specification, similar to the IDL WHERE
function.
Optional Output Parameters
COUNT = Number of values found corresponding to IEEE NaN.
Side Effects
If no NaN values are found, or if ARRAY is not of type float, double
precision, or complex, then -1 is returned, and COUNT is set to 0.
Restrictions
ARRAY must be of type float, double-precision, or complex.
Procedure
The bit patterns of the numbers being tested are compared against the
IEEE NaN standard.
Modification History
William Thompson, Feb. 1992.
William Thompson, Oct. 1992, fixed bug regarding order of bytes on VAX
machines.
Converted to IDL V5.0 W. Landsman September 1997