asked on
// Since a NAN is not a single, unique value, a special function is
// needed for this test
FUNCTION IsNAN(CONST d: DOUBLE): BOOLEAN;
VAR
Overlay: Int64 ABSOLUTE d;
BEGIN
RESULT :=
((Overlay AND $7FF0000000000000) = $7FF0000000000000) AND
((Overlay AND $000FFFFFFFFFFFFF) <> $0000000000000000)
END {IsNAN};