Float question

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Float question

Ralph Johnson
"Float nan = Float nan" is false.   Is it supposed to be false?  I
suppoes the rule could be that NaN is not equal to anything, even
itself.

"Float nan == Float nan" is true.

-Ralph

Reply | Threaded
Open this post in threaded view
|

Re: Float question

Bert Freudenberg
On Oct 7, 2007, at 1:35 , Ralph Johnson wrote:

> "Float nan = Float nan" is false.   Is it supposed to be false?  I
> suppoes the rule could be that NaN is not equal to anything, even
> itself.

Correct. That's what IEEE specifies IIRC.

> "Float nan == Float nan" is true.

It's the same object.

Is this causing problems anywhere?

- Bert -



Reply | Threaded
Open this post in threaded view
|

Re: Float question

Nicolas Cellier-3
Bert Freudenberg a écrit :

> On Oct 7, 2007, at 1:35 , Ralph Johnson wrote:
>
>> "Float nan = Float nan" is false.   Is it supposed to be false?  I
>> suppoes the rule could be that NaN is not equal to anything, even
>> itself.
>
> Correct. That's what IEEE specifies IIRC.
>
>> "Float nan == Float nan" is true.
>
> It's the same object.
>
> Is this causing problems anywhere?
>
> - Bert -
>
>
>
>

Testing Float nan == Float nan does answer true.
It rely on the fact that Float nan is a constant ^NaN.

But has this any usefull meaning?

I mean, is this really a deliberated feature, or just a side effect of
current implementation?

I tend to interpret it a side effect, because most operations will
produce a NaN which is ~~ Float nan:

(0.0 ln / 0.0 ln) == Float nan. "is false"
(0.0 ln / 0.0 ln) isNan/ "is true'

So, the Float tests just assert that implementation is what it is, which
must absolutely NOT be interpreted by user as a feature.
This test just forbid implementation to change, which is arbitrary and
useless.
User should never use test == Float nan. It might be true sometimes
(when coming from Float nan or Number readFrom: 'NaN'), wrong most times.
He (she) should use isNan. That's what the test should emphasize as a
feature.

Nicolas