[Numpy-discussion] Bitwise operations and unsigned types
Charles R Harris
Fri Apr 6 01:19:29 CDT 2012
On Fri, Apr 6, 2012 at 12:01 AM, Charles R Harris <firstname.lastname@example.org
> On Thu, Apr 5, 2012 at 11:57 PM, Travis Oliphant <email@example.com>wrote:
>> As of 1.5.1 this worked:
>> >>> numpy.__version__
>> >>> numpy.uint64(5) & 3
>> 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
i.e., a float, which certainly doesn't look right either. Whereas
>>> np.int(3) + 4
The float promotion is still there in 1.6.1
In : uint64(1) + 2
So I suppose there is the larger question is how combining numpy scalars
with python scalars should be done in general.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the NumPy-Discussion