[squeakdev] Fwd: [Glass] Negative infinity and positive infinity have the same sign
David T. Lewis
lewis at mail.msen.com
Fri Jan 27 13:11:11 UTC 2017
So this should be added as a failing test in FloatTest?
Dave
On Fri, Jan 27, 2017 at 08:42:15AM +0100, Das.Linux at gmx.de wrote:
> Hi
>
> On 27.01.2017, at 08:37, Tobias Pape <Das.Linux at gmx.de> wrote:
>
> > Hi all,
> >
> > it seems, we also suffer from this bug:
> >
> > { 0 sign.
> > 0.0 sign.
> > 0 sign.
> > 0.0 sign.
> > }
> > "=> #(0 0 0 1)"
>
> PS: why bug?
> IEEE754 says that 0.0 and 0.0 are equal and equal numbers have same sign,
> but for us
>
> (0.0 = 0.0) ==> (0.0 sign = 0.0 sign)
>
> is false, while it should be true.
>
>
> >
> > Begin forwarded message:
> >
> >> From: Martin McClure via Glass <glass at lists.gemtalksystems.com>
> >> Subject: Re: [Glass] Negative infinity and positive infinity have the same sign
> >> Date: 26. Januar 2017 21:10:32 MEZ
> >> To: monty <monty2 at programmer.net>, glass at lists.gemtalksystems.com
> >> ReplyTo: Martin McClure <martin.mcclure at gemtalksystems.com>
> >> DeliveredTo: glass at mail.commonhouse.net
> >>
> >> On 01/25/2017 12:45 PM, monty via Glass wrote:
> >>> On 3.3.0, "0.0 sign = 0.0 sign". On Pharo, "1 sign = 1", "0.0 sign = 1", "0.0 sign = 0", and "1 sign = 1". IEEE Standard 754 mandates that negative zero have the same sign bit as a negative number.
> >>> _______________________________________________
> >> Hi Monty,
> >>
> >> The ANSI Smalltalk standard says that #sign should answer 0 if "the
> >> receiver equals zero". This agrees with ISO/IEC 10967 Portable Numerics
> >> standard, which says the same thing. The IEEE 754 spec does not specify
> >> a "sign" operation. The closest equivalent I see is the "isSignMinus"
> >> operation. We don't currently have that message in GemStone, but we
> >> might add it. In GemStone, you can distinguish positive and negative
> >> zero by sending #_sign.
> >>
> >> Pharo's implementation seems very odd. It looks like it's been that way
> >> a long time (John Maloney in 1998?) but the comment contradicts itself.
> >> It says
> >> "Answer 1 if the receiver is greater than 0, 1 if less than 0, else 0.
> >> Handle IEEE754 negativezero by reporting a sign of 1"
> >>
> >> But negative zero *is* equal to 0, so it claims to be answering both 0
> >> and 1 for 0.0. Leaving that aside, it's disturbingly asymmetric to
> >> answer 0 for 0.0 but 1 for 0.0.
> >>
> >> Regards,
> >>
> >> Martin
> >> _______________________________________________
> >> Glass mailing list
> >> Glass at lists.gemtalksystems.com
> >> http://lists.gemtalksystems.com/mailman/listinfo/glass
> >
> >
>
>
More information about the Squeakdev
mailing list
