Thanks Tim, that makes total sense, though I was thinking of a way of expressing this in a matlab-ish kind of way.
How about defining a macro to override type promotion, similar to @inbounds? @nopromote b = A / uint8(2) I would like something shorter, but we could decide on the exact name later. Does this make sense? ------------------------------------------ Carlos On Fri, Apr 4, 2014 at 11:40 AM, Tim Holy <tim.h...@gmail.com> wrote: > This doesn't address your bigger question, but for truncating division by > n I > usually use b[i] = div(A[i], convert(eltype(A), n)). For the particular > case > of dividing by 2, an even better choice is b[i] = A[i] >> 1. > > --Tim > > On Friday, April 04, 2014 02:09:24 AM Carlos Becker wrote: > > I've seen previous posts in this list about this, but either I missed > some > > of them or this particular issue is not addressed. I apologize if it is > the > > former. > > > > I have a Uint8 array and I want to divide (still in Uint8) by 2. This is > > very handy when dealing with large images: no need to use more memory > than > > needed. > > So, for example: > > > > A = rand(Uint8, (100,100)); # simulated image > > > > b = A / uint8(2) > > > > typeof( b ) # ==> returns Array{Float32,2} > > > > > > I understand why one may want that, but is there a way to override it and > > do the plain, element-wise uint8-by-uint8 division? > > (ie ignore promotion rules) > > > > Thanks. >