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)