138scan_intervals(type, ja, jb, n, ma, mb, q0, q1, col0, col1,
 
  141  Int   ja, jb, n, q0, q1, col0, col1;
 
  145  Int   offset, j0, j1, templatewidth0, templatewidth1, nbcol0, nbcol1;
 
  147  assert(type == 
'c' || type == 
'r');
 
  148  nbcol0 = (type == 
'c' ? ma->
nbcol : ma->
nbrow);
 
  149  nbcol1 = (type == 
'c' ? mb->
nbcol : mb->
nbrow);
 
  150  templatewidth0 = q0 * nbcol0;
 
  151  templatewidth1 = q1 * nbcol1;
 
  155    j0 = 
SHIFT(col0, sp0, q0) * nbcol0 - ja;
 
  156    j1 = 
SHIFT(col1, sp1, q1) * nbcol1 - jb;
 
  163  assert(j0 + nbcol0 > 0);
 
  164  assert(j1 + nbcol1 > 0);
 
  165  while ((j0 < n) && (j1 < n)) {
 
  171      j0 += templatewidth0;
 
  176      j1 += templatewidth1;
 
  181    start = 
max(start, 0);
 
  183    result[offset].
lstart = l + start - j0;
 
  184    end = 
min(end0, end1);
 
  186      j0 += templatewidth0;
 
  190      j1 += templatewidth1;
 
  200    result[offset].
len = end - start;