[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Scheme-reports] multiple NaN values
On 02/20/2012 08:01 AM, John Cowan wrote:
> Per Bothner scripsit:
>> IEEE 754 specifies multiple NaN values. Scheme generally does
>> not care if there is a single value (bit pattern) for NaN,
>> or if there are multiple values: If there are multiple NaN
>> values, or just one, they are all equivalent in terms of Scheme
>> If there are multiple NaN values, they are all =.
> This is not the case: NaN is not = to any number, not even NaN.
Oops, indeed. I wanted to convey something like "All combinations
of numerical operations must be the same as if all NaN values
> [eqv?] is the subject of http://trac.sacrideo.us/wg/ticket/229 , which
> will be part of the upcoming fifth ballot.
The last comment seems incorrect. You write:
> I confirmed that nan and nan2 expand to different bit patterns using
>Java's Double.doubleToRawLongBits method on the same system.
In Kawa nan and nan2 have the *same* bit-pattern (at least when run
under JDK 1.7.0
on Fedora). Thus as you'd expect eqv? returns #t. I assume this would
all/most Java-based Schemes, at least, so your experiment is meaningless.
#|kawa:1|# (define nan (/ 0.0 0.0))
#|kawa:2|# (define inf (/ 1.0 0.0))
#|kawa:3|# (define nan2 (- inf inf))
#|kawa:11|# (define nan3 (java.lang.Double:longBitsToDouble
/dev/stdin:11:49: warning - integer 18444492273895866369 not in range of
#|kawa:13|# (nan? nan3)
#|kawa:14|# (eqv? nan2 nan3)
Scheme-reports mailing list