Hi
On 27.01.2017, at 08:37, Tobias Pape Das.Linux@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@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@programmer.net, glass@lists.gemtalksystems.com Reply-To: Martin McClure martin.mcclure@gemtalksystems.com Delivered-To: glass@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@lists.gemtalksystems.com http://lists.gemtalksystems.com/mailman/listinfo/glass