- 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