[Numpy-discussion] Bitwise operations and unsigned types
Charles R Harris
charlesr.harris@gmail....
Fri Apr 6 01:19:29 CDT 2012
On Fri, Apr 6, 2012 at 12:01 AM, Charles R Harris <charlesr.harris@gmail.com
> wrote:
>
>
> On Thu, Apr 5, 2012 at 11:57 PM, Travis Oliphant <travis@continuum.io>wrote:
>
>> As of 1.5.1 this worked:
>>
>> >>> numpy.__version__
>> 1.5.1
>> >>> numpy.uint64(5) & 3
>> 1L
>>
>>
>> So, this is a regression and a bug. It should be fixed so that it
>> doesn't raise an error. I believe the scalars were special cased so that a
>> raw 3 would not be interpreted as a signed int when it is clearly unsigned.
>> The casting rules were well established over a long period. They had
>> issues, but they should not have been changed like this in a 1.X release.
>>
>> Fortunately there are work-arounds and these issues arise only in corner
>> cases, but we should strive to do better.
>>
>>
> I disagree, promoting to object kind of destroys the whole idea of bitwise
> operations. I think we *fixed* a bug.
>
Although 1.5.1 also gives
>>> np.uint(3) + 4
7.0
i.e., a float, which certainly doesn't look right either. Whereas
>>> np.int(3) + 4
7
The float promotion is still there in 1.6.1
In [4]: uint64(1) + 2
Out[4]: 3.0
So I suppose there is the larger question is how combining numpy scalars
with python scalars should be done in general.
Chuck
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.scipy.org/pipermail/numpy-discussion/attachments/20120406/6e139a74/attachment.html
More information about the NumPy-Discussion
mailing list