And slightly unrelated, but just showing how bizarre floats are:
x = 1e66666 y = x/x cmp(y, y) 0 cmp(x/x, x/x) -1
Yeah object identity checks! From: python-dev-bounces+dinov=microsoft.com@python.org [mailto:python-dev-bounces+dinov=microsoft.com@python.org] On Behalf Of Daniel Stutzbach Sent: Tuesday, February 10, 2009 12:43 PM To: cesare.dimauro@a-tono.com Cc: Python-Dev Subject: Re: [Python-Dev] Expression optimizations On Tue, Feb 10, 2009 at 2:36 PM, Cesare Di Mauro <cesare.dimauro@a-tono.com> wrote: OK, so I can make assumptions only for built-in types. Yes, but even there you have to be careful of odd corner-cases, such as:
nan = float('nan') nan < nan False nan >= nan False -- Daniel Stutzbach, Ph.D. President, Stutzbach Enterprises, LLC