405{
406 int rpiv, colpos=0, rowpos=0;
407 int ia=ready, ie=all;
408
409 do
410 {
411 rowpos++;
412 do
413 {
414 colpos++;
415 rpiv =
ivColPivot(imat, colpos, rowpos, ia, ie);
416 } while (rpiv==0);
417 if (rpiv>ia)
418 {
419 if (rowpos!=rpiv)
420 {
424 rpiv = rowpos;
425 }
426 ia++;
427 if (ia==imat->
cols())
428 {
429 ready = ia;
430 all = ie;
431 return;
432 }
433 }
434 ivReduce(imat, rpiv, colpos, ia, ie);
436 } while (ie>ia);
437 ready = ia;
438 all = ie;
439}
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)