GNU bug report logs -
#14865
flmax and flmin do not handle +nan.0 correctly
Previous Next
Reported by: Göran Weinholt <goran <at> weinholt.se>
Date: Mon, 15 Jul 2013 11:15:03 UTC
Severity: normal
Done: Mark H Weaver <mhw <at> netris.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your message dated Tue, 16 Jul 2013 05:27:30 -0400
with message-id <8738re4zy5.fsf <at> tines.lan>
and subject line Re: bug#14865: flmax and flmin do not handle +nan.0 correctly
has caused the debbugs.gnu.org bug report #14865,
regarding flmax and flmin do not handle +nan.0 correctly
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)
--
14865: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=14865
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
[Message part 3 (text/plain, inline)]
Hello schemers,
the flmax and flmin procedures from (rnrs) do not handle +nan.0
correctly:
scheme@(guile-user)> (import (rnrs))
scheme@(guile-user)> (flmax +inf.0 +nan.0)
$1 = +inf.0
scheme@(guile-user)> (flmin -inf.0 +nan.0)
$2 = -inf.0
The result should be +nan.0. From r6rs-lib: "They always return a NaN
when one or more of the arguments is a NaN." Tested with
2.0.9.22-7e816-dirty.
Regards,
--
Göran Weinholt <goran <at> weinholt.se>
It's a beautiful day.
Don't let it get away.
[Message part 4 (application/pgp-signature, inline)]
[Message part 5 (message/rfc822, inline)]
Göran Weinholt <goran <at> weinholt.se> writes:
> the flmax and flmin procedures from (rnrs) do not handle +nan.0
> correctly:
>
> scheme@(guile-user)> (import (rnrs))
> scheme@(guile-user)> (flmax +inf.0 +nan.0)
> $1 = +inf.0
> scheme@(guile-user)> (flmin -inf.0 +nan.0)
> $2 = -inf.0
>
> The result should be +nan.0. From r6rs-lib: "They always return a NaN
> when one or more of the arguments is a NaN."
Indeed. I had actually carefully implemented 'min' and 'max' according
to R6RS section 11.7.4 (Numerical operations), which states:
For any real number object x:
(max +inf.0 x) => +inf.0
(min -inf.0 x) => -inf.0
and section 3.5 states that NaNs are real number objects.
At first I was baffled by the inconsistency between min/max and
flmin/flmax, but now I see that the R6RS errata corrected this:
The examples for min and max involving infinities should be prefixed by:
"For any real number object x /that is not a NaN/:"
Fixed in b4c55c9ccedd47c16007b590f064ef3bd67565aa.
Thanks!
Mark
This bug report was last modified 12 years and 8 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.