387{
388 int rpiv, colpos=0, rowpos=0;
389 int ia=ready, ie=all;
390
391 do
392 {
393 rowpos++;
394 do
395 {
396 colpos++;
397 rpiv =
ivColPivot(imat, colpos, rowpos, ia, ie);
398 } while (rpiv==0);
399 if (rpiv>ia)
400 {
401 if (rowpos!=rpiv)
402 {
406 rpiv = rowpos;
407 }
408 ia++;
409 if (ia==imat->
cols())
410 {
411 ready = ia;
412 all = ie;
413 return;
414 }
415 }
416 ivReduce(imat, rpiv, colpos, ia, ie);
418 } while (ie>ia);
419 ready = ia;
420 all = ie;
421}
static int ivColPivot(intvec *, int, int, int, int)
static void ivSetRow(intvec *, int, int)
static void ivFreeRow(intvec *, int, int)
static void ivZeroElim(intvec *, int, int, int &)
static void ivSaveRow(intvec *, int)
static void ivReduce(intvec *, int, int, int, int)