Skip Menu |
 

This queue is for tickets about the bignum CPAN distribution.

Report information
The Basics
Id: 13866
Status: resolved
Worked: 15 min
Priority: 0/
Queue: bignum

People
Owner: TELS [...] cpan.org
Requestors: sisyphus1 [...] optusnet.com.au
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: NaN
Download (untitled) / with headers
text/plain 434b
Hi Tels, use warnings; use bigint; my $z = NaN; my $x = NaN; if($x == $z) {print "Not ok\n"} else {print "Ok\n"} __END__ On Win32, perl 5.8.7, I believe that script should produce simply: Ok Instead, I'm getting: Use of uninitialized value in numeric eq (==) at try.pl line 7. Not ok If I change both occurrences of NaN to inf, then I still get "Not ok" - though there's no warning about any uninitialised value. Cheers, Rob
From: Tels <nospam-abuse [...] bloodgate.com>
To: bug-bignum [...] rt.cpan.org
Subject: Re: [cpan #13866] NaN
Date: Tue, 26 Jul 2005 18:12:30 +0200
RT-Send-Cc:
Download (untitled) / with headers
text/plain 2.3k
-----BEGIN PGP SIGNED MESSAGE----- Moin, On Tuesday 26 July 2005 01:15, Guest via RT wrote: Show quoted text
> This message about bignum was sent to you by guest <> via rt.cpan.org > > Full context and any attached attachments can be found at: > <URL: https://rt.cpan.org/Ticket/Display.html?id=13866 > > > Hi Tels, > > use warnings; > use bigint; > > my $z = NaN; > my $x = NaN; > > if($x == $z) {print "Not ok\n"} > else {print "Ok\n"} > > __END__ > > On Win32, perl 5.8.7, I believe that script should produce simply: > > Ok
inf != inf (due to inf +1 == inf and thus inf != inf). NaN might be == NaN - I forgot the reasoning, trough. However, from Math::BigInt: ==, !=, <, >, <=, >= with NaNs BigInt’s bcmp() routine currently returns undef to sig­ (that is why you get the warning) nal that a NaN was involved in a comparisation. However, the overload code turns that into either 1 or ’’ and thus operations like "NaN != NaN" might return wrong values. So: #perl -MMath::BigInt -le 'print 1 if Math::BigInt->bnan() == Math::BigInt->bnan()' 1 # perl -Mbignum -le 'print NaN == NaN' 1 # perl -Mbignum -le 'print NaN != NaN' # perl -Mbignum -le 'print NaN != 1' # perl -Mbignum -le 'print NaN == 1' 1 Oh well. Show quoted text
> Instead, I'm getting: > > Use of uninitialized value in numeric eq (==) at try.pl line 7. > Not ok > If I change both occurrences of NaN to inf, then I still get "Not ok" - > though there's no warning about any uninitialised value.
As I said, inf != inf. Dont ask me - I consider the entire NaN and inf stuff so wierd that I always get headaches from it. But there really might be bugs in my code. Best wishes, Tels - -- Signed on Tue Jul 26 18:04:26 2005 with key 0x93B84C15. Visit my photo gallery at http://bloodgate.com/photos/ PGP key on http://bloodgate.com/tels.asc or per email. "Und jetzt kommen Sie!" - Stenkelfeld -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iQEVAwUBQuZg9ncLPEOTuEwVAQHE5Qf9EYjl1Hz7Y+hOHCKf0bCW/gRniNH6K+1u tKibxvYThsTwOULs/Nxdfy13Max9pfO9xmvII79qwSvbmMtSHgnja1301T98Gkpr lTGuxUd3JB/LDPAJGl0C7wllxd9wJAdELUc5ab5keHqcm7tYkajKwhKU9udo2W1E CQw6lZq1Fa7KdqmvfMQl3TI1FP8DGqTGCWZIyAUs6klqZ8qTASltdYByjY/jkiJA F8+xF2BbhcBpZM/Pd3lr+S3tYx16XwmArzDYPiA0YwhOUvfEp8Hj9FeWiE47YKEO 8USh/GtD51qSyAPG2w0XNmL8dQXve+/xoQa4l8hOf0VA1dip0QSjFQ== =nXWQ -----END PGP SIGNATURE-----
Download (untitled) / with headers
text/plain 127b
With the release of Math::BigInt 1.80, this bug has now been resolved. Thank you for your report, and sorry for the long delay.


This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

Please report any issues with rt.cpan.org to rt-cpan-admin@bestpractical.com.