[Numpy-discussion] Re: indexing problem

David M. Cooke cookedm at physics.mcmaster.ca
Mon Feb 13 20:14:01 EST 2006


Gary Ruben <gruben at bigpond.net.au> writes:

> Tim Hochberg wrote:
> <snip>
>> However, I'm not convinced this is a good idea for numpy. This would
>> introduce a discontinuity in a**b that could cause problems in some
>> cases. If, for instance, one were running an iterative solver of
>> some sort (something I've been known to do), and b was a free
>> variable, it could get stuck at b = 2 since things would go
>> nonmonotonic there.
>
> I don't quite understand the problem here. Tim says Python special
> cases integer powers but then talks about the problem when b is a
> floating type. I think special casing x**2 and maybe even x**3 when
> the power is an integer is still a good idea.

Well, what I had done with Numeric did special case x**0, x**1,
x**(-1), x**0.5, x**2, x**3, x**4, and x**5, and only when the
exponent was a scalar (so x**y where y was an array wouldn't be). I
think this is very useful, as I don't want to microoptimize my code to
x*x instead of x**2. The reason for just scalar exponents was so
choosing how to do the power was lifted out of the inner loop. With
that, x**2 was as fast as x*x.

-- 
|>|\/|<
/--------------------------------------------------------------------------\
|David M. Cooke                      http://arbutus.physics.mcmaster.ca/dmc/
|cookedm at physics.mcmaster.ca




More information about the NumPy-Discussion mailing list