[Numpy-discussion] Bitwise operations and unsigned types
Charles R Harris
Fri Apr 6 00:45:34 CDT 2012
On Thu, Apr 5, 2012 at 11:39 PM, Charles R Harris <firstname.lastname@example.org
> On Thu, Apr 5, 2012 at 11:16 PM, Travis Oliphant <email@example.com>wrote:
>> Which version of NumPy are you using. This could be an artefact of the
>> new casting rules.
>> This used to work. So, yes, this is definitely a bug.
> It's because the '3' is treated as signed, so the uint64 needs to be cast
> to something of higher precision, of which there is none. You can either
> use uint64(3) or just stick to int64. I don't know if this used to work or
> not, mixing signed and unsigned has always led to higher precision in
> arithmetic operations, even (mistakenly in my opinion) promoting uint64(5)
> + 3 to lower precision float64.
In particular, in this case it is because two scalars are used. It works
fine for arrays
In : ones(3, uint64) & 3
Out: array([1, 1, 1], dtype=uint64)
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the NumPy-Discussion