[squeak-dev] Fwd: [Glass] Negative infinity and positive infinity have the same sign

Bert Freudenberg bert at freudenbergs.de
Fri Jan 27 17:19:01 UTC 2017


Be sure to fix Float printing of negative zero. I guess this is the only
reason it was implemented this way.

- Bert -

On Fri, Jan 27, 2017 at 2:11 PM, David T. Lewis <lewis at mail.msen.com> wrote:

> 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?
> > IEEE-754 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
> > >> Reply-To: Martin McClure <martin.mcclure at gemtalksystems.com>
> > >> Delivered-To: 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 IEEE-754 negative-zero 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
> > >
> > >
> >
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20170127/c0d07676/attachment.html>


More information about the Squeak-dev mailing list