Hardware or System Incompatibility
William O. Dargel
wDargel at shoshana.com
Wed Feb 17 19:18:20 UTC 1999
Dan Ingalls wrote:
> B. Secondly, Andres reports that
> 0.0 raisedTo: 0.75 ==> -0.0 on his machine,
> whereas I get 0.0 on my Mac.
> If you get -0.0, please also supply the information requested above.
I already reported directly to Dan that I have this problem on Windows.
It seems to have started on the transition from version 1.31 to 2.0.
Based on some of the other messages here, I got interested in exploring
it a bit further.
I don't understand floating point representation, and so don't know what
to make of this. So I present the following results of printing
expressions in the context of Float in hopes that someone else will know
what to make of it.
(0.0 raisedTo: 0.75) -0.0
(0.0 raisedTo: 0.75) = NegativeInfinity true
(0.0 raisedTo: 0.75) = NegativeZero true
(0.0 raisedTo: 0.75) = Infinity true
(0.0 raisedTo: 0.75) = NaN true
(0.0 raisedTo: 0.75) = 1.2 true
NaN = Infinity true
NaN = NegativeInfinity true
NaN = NegativeZero true
NaN = 1.2 true
NegativeZero = NegativeInfinity false
Infinity = NegativeInfinity false
(0.0 raisedTo: 0.75) hex 'FFF8000000000000'
NegativeInfinity hex 'FFF0000000000000'
NegativeZero hex '8000000000000000'
Infinity hex '7FF0000000000000'
NaN hex '7FF8000000000000'
1.2 hex '3FF3333333333333'
Ah, the -0.0 appears to be a 'negative' version of NaN. It really
surprises me though that NaN seems to be equal to _any_ Float value.
Is that normal behavior?
I was going to check NaN behavior in 1.31, but it wasn't a class
variable back then.
Bill Dargel wdargel at shoshana.com
100 West Joy Road, Ann Arbor, MI 48105 USA
More information about the Squeak-dev