333{
334
335 Int templateheight1, templatewidth1;
336 Int templateheight0, templatewidth0;
338
339 templateheight1 = p1 * mb->
nbrow;
340 templateheight0 = p0 * ma->
nbrow;
341 templatewidth1 = q1 * mb->
nbcol;
342 templatewidth0 = q0 * ma->
nbcol;
343
344
345
346 (*ptrsizebuff) = 0;
347 for (h = 0; h < hinter_nb; h++)
348 for (v = 0; v < vinter_nb; v++) {
350 for (j = 0; j < h_inter[h].
len; j++)
351 intersect(uplo, diag, j + h_inter[h].gstart,
352 v_inter[v].gstart, v_inter[v].gstart + v_inter[v].len,
353 action, ptrsizebuff, &ptrbuff, ptrblock, m, n,
354 ma, ia, ja, templateheight0, templatewidth0,
355 mb, ib, jb, templateheight1, templatewidth1);
356 }
357}
static2 void intersect(char *uplo, char *diag, Int j, Int start, Int end, Int action, Int *ptrsizebuff, dcomplex **pptrbuff, dcomplex *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)