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;
186 j0 += templatewidth0;
190 j1 += templatewidth1;
200 result[offset].
len =
end - start;
end[inform, rinform, sol, inst, schur, redrhs, pivnul_list, sym_perm, uns_perm, icntl, cntl, colsca_out, rowsca_out, keep_out, dkeep_out]