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