Multidimensional wave assignment avoiding loop

I'm doing the following things in a loop

for(i = 0; i < 5; i += 1)
    Multithread wv[first[i], last[i]][col] = fac * source[decFac * (p - first)][sourceColumn[i]]

Is it possible to not use an explicit loop here for speed?
But instead use some p,q,r magic?

Something obvious like
Multithread wv[first[q], last[q]][] = fac * source[decFac * (p - first)][sourceColumn[q]]

fails as Igor insists that p,q,r are only to be used on the right hand side.

I could of course manually create a worker thread for each destination column but that I want to be sure that all other options are exhausted.