[Python-Dev] Re: [Patches] fix float_hash and complex_hash for 64-bit *nix
Guido van Rossum
guido@python.org
Thu, 11 May 2000 09:01:10 -0400
I have to admit I have no clue about the details of this debate any
more, and I'm cowardly awaiting a patch submission that Tim approves
of. (I'm hoping a day will come when Tim can check it in himself. :-)
In the mean time, I'd like to emphasize the key invariant here: we
must ensure that (a==b) => (hash(a)==hash(b)). One quick way to deal
with this could be the following pseudo C:
PyObject *double_hash(double x)
{
long l = (long)x;
if ((double)l == x)
return long_hash(l);
...double-specific code...
}
This code makes one assumption: that if there exists a long l equal to
a double x, the cast (long)x should yield l...
--Guido van Rossum (home page: http://www.python.org/~guido/)