Hi All,<br><br>Currently we have:<br><br>In [2]: ones(1,dtype=int8) &lt;&lt; ones(1,dtype=uint8)<br>
Out[2]: array([2], dtype=int16)<br><br>In [4]: ones(1,dtype=int64) &lt;&lt; ones(1,dtype=uint64)<br>Out[4]: array([2], dtype=object)<br><br>Note the increased size in the first case and the return of a Python long integer object in the second. I propose that these operators should preserve the type of the first argument, although this is not easy to do with the current ufunc setup. It is impossible to use a type of sufficient size for all shift values and preserving the type of the first argument is what I think most folks would expect.<br>
<br>Chuck<br>