270{
271 Int vtemp, htemp, vsubtemp, hsubtemp, il, jl;
272 assert(ig >= 0 && ig < a->m && jg >= 0 && jg < a->n);
273
274
275
276 vtemp = ig / templateheight;
277 htemp = jg / templatewidth;
278
279
280 vsubtemp = ig % a->
nbrow;
281 hsubtemp = jg % a->
nbcol;
282
283 il = a->
nbrow * vtemp + vsubtemp;
284 jl = a->
nbcol * htemp + hsubtemp;
285 assert(il < a->lda);
286#ifndef NDEBUG
287 {
288 Int pr, pc, p, q, lp, lq;
290 p = templateheight / a->
nbrow;
291 q = templatewidth / a->
nbcol;
292 lp = ig % templateheight / a->
nbrow;
293 lq = jg % templatewidth / a->
nbcol;
296 }
297#endif
298 return (jl * a->
lda + il);
299}
#define SHIFT(row, sprow, nbrow)