[Issue 7836] New: NaNs inside associative array don't use normal FP equality
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Thu Apr 5 17:44:25 PDT 2012
http://d.puremagic.com/issues/show_bug.cgi?id=7836
Summary: NaNs inside associative array don't use normal FP
equality
Product: D
Version: D2
Platform: x86
OS/Version: Windows
Status: NEW
Keywords: wrong-code
Severity: normal
Priority: P2
Component: druntime
AssignedTo: nobody at puremagic.com
ReportedBy: bearophile_hugs at eml.cc
--- Comment #0 from bearophile_hugs at eml.cc 2012-04-05 17:45:03 PDT ---
I don't know if this is a bug, or if here D/DMD is working as designed. I am
not sure.
This code shows that floating point NaNs are not tested with == inside
associative arrays (because NaNs != NaNs):
import std.stdio: writeln;
void main() {
int[double] aa;
aa[double.nan] = 1;
writeln(aa);
aa[double.nan] = 2;
writeln(aa);
}
Output DMD 2.059beta:
[nan:1]
[nan:2]
Python uses == to compare dict (associative array) keys, so NaNs can't
overwrite each other:
>>> a = {}
>>> a[float("nan")] = 1
>>> a
{nan: 1}
>>> a[float("nan")] = 2
>>> a
{nan: 1, nan: 2}
So maybe DMD has to act as Python in this case.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
More information about the Digitalmars-d-bugs
mailing list