[Numpy-discussion] Re: indexing problem

Arnd Baecker arnd.baecker at web.de
Tue Feb 14 02:55:02 CST 2006


On Mon, 13 Feb 2006, David M. Cooke wrote:

> 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.

+1 from me for the special casing.
A speed improvement of more than a factor 16 (from David's numbers)
is something relevant!

Best, Arnd





More information about the Numpy-discussion mailing list