On May 12, 2:09 am, "Terry Reedy" <[EMAIL PROTECTED]> wrote: > Then it seems equally dubious that 0.**y, y>0, should be well-defined. > It seems to me that lim as x goes to 0. exp(y*log(x)) is equally well > defined whether y is 0 or not, even though there is a discontinuity in the > limit.
Well, there's a difference: the limit of exp(y*log(x)) as (x, y) -> (0, a) exists for all finite nonzero a. The limit as (x, y) -> (0, 0) doesn't. > 2.5 raises an exception. In 3.0,>>> (-2)**1.99999999 > > (3.9999999722741113-1.2566370355167477e-07j) Interesting---I hadn't realised that 3.0 had changed this. I can't quite decide whether I like this behaviour much. It seems to be the only case where a computation involving only floats can produce a complex number. > > | Incidentally, the decimal module is slightly schizophrenic about this: > > That module follows the IBM-led standard, no matter how crazy. Yeah---I know. :-). The current decimal __pow__ code is mostly my fault, at least in 2.5.2/2.6/3.0 onwards. For what it's worth, the author of the Decimal standard has indicated that the behaviour of 0**0 might change after IEEE 754r finally sees the light of day. Mark -- http://mail.python.org/mailman/listinfo/python-list