[Numpy-discussion] optimizing power() for complex and real cases

Gary Ruben gruben at bigpond.net.au
Wed Feb 15 17:25:11 EST 2006


Tim Hochberg wrote:

>> optimize:
>>
>> A**2, A**(2+0j), etc
> 
> 
> I'm guessing here that you did not mean to include (2+0j) on both lists 
> and that, in fact you wanted not to optimize on complex exponents:

Oops. The complex index in the optimise list has integer parts. I 
assumed Python distinguished between complex numbers with integer and 
real parts, but it doesn't, so you're correct about which cases I'd vote 
to optimise.

> So, optimize:
> 
> A**-1, A**0, A**1, A**2, etc.
> 
>>
>> and
>>
>> A**array([1,2,3])
>>
>> but not
>>
>> A**array[1.0, 2.0, 3.0], A**2.0, A**(2.0+0j)
> 
> 
> That makes sense. It's safer and easier to explain: "numpy optimizes 
> raising matrices (and possibly scalars) to integer powers)". The only 
> sticking point that I see is if David is still interested in optimizing 
> A**0.5, that's not going to mesh with this. On the other hand, perhaps 
> he can be persuaded that sqrt(A) is just as good. After all, it's only 
> one more character long ;)
> 
> -tim





More information about the NumPy-Discussion mailing list