When using Uint8 one has a good reason for that.
I have found that that arrays have a different promotion rule:
Array{Int32}+Array{Int32} -> Array{Int32}
So this does not seem to be entirely consistant.
Am Mittwoch, 15. Januar 2014 09:43:23 UTC+1 schrieb Milan Bouchet-Valat:
>
> Le mercredi 15 janvier 2014 à 00:17 -0800, Tobias Knopp a écrit :
> > @Stefan: Is there a good reason to promote Int32 operations to the
> > native mashine type? Sorry, if this has already discussed in depth.
> > But for me it feals wrong to automatically upcast integer operations.
> > I think that the type should keep stable and that this is more
> > important than overflow issues.
> Yeah, that's hard to guess what to do by default. With Int32 preserving
> the type when summing might be reasonable (though not always), but if
> somebody uses e.g. Uint8 to save space when there are many observations
> with small counts, the sum should really use a different type.
>
> But maybe it would be better to preserve the type, and let people use an
> accumulator of a different type if they need it. If they are using a non
> standard integer length, they must now what they are doing.
>
> Related to this discussion:
> https://github.com/JuliaLang/julia/issues/5311
>
>
> Regards
>
>