On Thu, Nov 15, 2012 at 8:24 PM, Gökhan Sever <[email protected]> wrote:
> Hello,
>
> Could someone briefly explain why are these two operations are casting my
> float32 arrays to float64?
>
> I1 (np.arange(5, dtype='float32')).dtype
> O1 dtype('float32')
>
> I2 (100000*np.arange(5, dtype='float32')).dtype
> O2 dtype('float64')
>
This one is depends on the size of the multiplier and is first present in
1.6.0. I suspect it is a side effect of making the type conversion code
sensitive to magnitude.
>
>
>
> I3 (np.arange(5, dtype='float32')[0]).dtype
> O3 dtype('float32')
>
> I4 (1*np.arange(5, dtype='float32')[0]).dtype
> O4 dtype('float64')
>
This one probably depends on the fact that the element is a scalar, but
doesn't look right. Scalars are promoted differently. Also holds in numpy
1.5.0 so is of old provenance.
Chuck
_______________________________________________
NumPy-Discussion mailing list
[email protected]
http://mail.scipy.org/mailman/listinfo/numpy-discussion