321{
322
323 Int templateheight1, templatewidth1;
324 Int templateheight0, templatewidth0;
326
327 templateheight1 = p1 * mb->
nbrow;
328 templateheight0 = p0 * ma->
nbrow;
329 templatewidth1 = q1 * mb->
nbcol;
330 templatewidth0 = q0 * ma->
nbcol;
331
332
333
334 (*ptrsizebuff) = 0;
335 for (h = 0; h < hinter_nb; h++)
336 for (v = 0; v < vinter_nb; v++) {
338 for (j = 0; j < h_inter[h].
len; j++)
339 intersect(uplo, diag, j + h_inter[h].gstart,
340 v_inter[v].gstart, v_inter[v].gstart + v_inter[v].len,
341 action, ptrsizebuff, &ptrbuff, ptrblock, m, n,
342 ma, ia, ja, templateheight0, templatewidth0,
343 mb, ib, jb, templateheight1, templatewidth1);
344 }
345}
static2 void intersect(char *uplo, char *diag, Int j, Int start, Int end, Int action, Int *ptrsizebuff, Int **pptrbuff, Int *ptrblock, Int m, Int n, MDESC *ma, Int ia, Int ja, Int templateheight0, Int templatewidth0, MDESC *mb, Int ib, Int jb, Int templateheight1, Int templatewidth1)