COIN-OR::LEMON - Graph Library

Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • lemon/preflow.h

    r982 r735  
    559559      _phase = true;
    560560
    561       while (true) {
     561      Node n = _level->highestActive();
     562      int level = _level->highestActiveLevel();
     563      while (n != INVALID) {
    562564        int num = _node_num;
    563565
    564         Node n = INVALID;
    565         int level = -1;
    566 
    567         while (num > 0) {
    568           n = _level->highestActive();
    569           if (n == INVALID) goto first_phase_done;
    570           level = _level->highestActiveLevel();
    571           --num;
    572          
     566        while (num > 0 && n != INVALID) {
    573567          Value excess = (*_excess)[n];
    574568          int new_level = _level->maxLevel();
     
    636630            _level->deactivate(n);
    637631          }
     632
     633          n = _level->highestActive();
     634          level = _level->highestActiveLevel();
     635          --num;
    638636        }
    639637
    640638        num = _node_num * 20;
    641         while (num > 0) {
    642           while (level >= 0 && _level->activeFree(level)) {
    643             --level;
    644           }
    645           if (level == -1) {
    646             n = _level->highestActive();
    647             level = _level->highestActiveLevel();
    648             if (n == INVALID) goto first_phase_done;
    649           } else {
    650             n = _level->activeOn(level);
    651           }
    652           --num;
    653 
     639        while (num > 0 && n != INVALID) {
    654640          Value excess = (*_excess)[n];
    655641          int new_level = _level->maxLevel();
     
    717703            _level->deactivate(n);
    718704          }
    719         }
    720       }
    721     first_phase_done:;
     705
     706          while (level >= 0 && _level->activeFree(level)) {
     707            --level;
     708          }
     709          if (level == -1) {
     710            n = _level->highestActive();
     711            level = _level->highestActiveLevel();
     712          } else {
     713            n = _level->activeOn(level);
     714          }
     715          --num;
     716        }
     717      }
    722718    }
    723719
Note: See TracChangeset for help on using the changeset viewer.