Differences between revisions 3 and 4
Revision 3 as of 2012-02-16 16:44:46
Size: 1023
Editor: hivertwiki
Comment:
Revision 4 as of 2012-02-16 20:04:27
Size: 1083
Editor: vdelecroix
Comment:
Deletions are marked like this. Additions are marked like this.
Line 14: Line 14:
    sage: dd = {3.1415926535897932: 'approx', pi: 'exact'}

Equality and Coercion could be harmful

The goal of this page is to gather all problems due to equality accepting coercion in borderline cases:

sage: bool(pi == 3.14159265358979323)
True
sage: hash(pi)
2943215493
sage: hash(3.14159265358979323)
1826823505
sage: dd = {3.1415926535897932: 'approx', pi: 'exact'}
sage: dd
{3.1415926535897932: 'approx', pi: 'exact'}
sage: {0:"exact", 0.0000000000000000000:"approx"}
{0: 'approx'}

as a consequence:

sage: pii = 3.14159265358979323
sage: bool(pii == pi)
True
sage: dd = {pi: "exact"}
sage: pi in dd
True
sage: pii in dd
False
sage: pii in dd.keys()
True

More strange consequences when using UniqueRepresentation

sage: F1 = FiniteEnumeratedSet([0.000000])
sage: F2 = FiniteEnumeratedSet([0])
sage: F1 is F2
True
sage: F2.list()
[0.000000000000000]
sage:

EqualityCoercion (last edited 2017-03-13 22:32:31 by hivertwiki)