I think it's comparing based upon object identity so it may be a little non-deterministic:
>>> x= 1e666666 >>> y = x/x >>> z = x/x >>> cmp(y, z) 1 >>> cmp(z, y) -1 >>> But I may have accidently run that on IronPython though where we're assigning ids differently :) -----Original Message----- From: Cesare Di Mauro [mailto:cesare.dima...@a-tono.com] Sent: Tuesday, February 10, 2009 1:12 PM To: Dino Viehland Cc: Daniel Stutzbach; cesare.dima...@a-tono.com; Python-Dev Subject: RE: [Python-Dev] Expression optimizations It's bizarre enough, since I have got a different result (with Python 2.6.1, 32 bit): >>> x = 1e66666 >>> y = x/x >>> x inf >>> y nan >>> cmp(y, y) 0 >>> cmp(x/x, x/x) 1 :D Cesare On Mar, Feb 10, 2009 10:02PM, Dino Viehland wrote: > 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....@python.org > [mailto:python-dev-bounces+dinov=microsoft....@python.org] On Behalf Of > Daniel Stutzbach > Sent: Tuesday, February 10, 2009 12:43 PM > To: cesare.dima...@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.dima...@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 > _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com