On Tue, Feb 18, 2014 at 9:51 AM, Sturla Molden <sturla.mol...@gmail.com> wrote:
> Charles R Harris <charlesr.har...@gmail.com> wrote:
>> This is apropos issue #899 <<a
>> href="https://github.com/numpy/numpy/issues/899";>https://github.com/numpy/numpy/issues/899</a>>,
>> where it is suggested that power promote integers to float. That sounds
>> reasonable to me, but such a change in behavior makes it a bit iffy.
>>
>> Thoughts?
>
> Numpy should do the same as Python does.

That's problematic because Python's behavior is value dependent.

Python 3.3.1 (default, May 16 2013, 17:20:13)
[GCC 4.2.1 Compatible Apple Clang 4.1 ((tags/Apple/clang-421.11.66))] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 2 ** 2
4
>>> 2 ** -2
0.25

That's fine if you only have one value for each operand. When you have
multiple values for each operand, say an exponent array containing
both positive and negative integers, that becomes a problem.
Generally, we try to make ufuncs return types that are predictable
from the types of the operands, not the values of the operands.

I am -1 on the proposal to make power(x:int, y:int) always return a
float. It is usually trivial to just make the exponent a float if one
wants a float returned. Or we could introduce an fpow() that always
coerces the inputs to the best inexact type.

-- 
Robert Kern
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to