COIN-OR::LEMON - Graph Library

Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • lemon/preflow.h

    r985 r956  
    577577      _phase = true;
    578578
    579       while (true) {
     579      Node n = _level->highestActive();
     580      int level = _level->highestActiveLevel();
     581      while (n != INVALID) {
    580582        int num = _node_num;
    581583
    582         Node n = INVALID;
    583         int level = -1;
    584 
    585         while (num > 0) {
    586           n = _level->highestActive();
    587           if (n == INVALID) goto first_phase_done;
    588           level = _level->highestActiveLevel();
    589           --num;
    590          
     584        while (num > 0 && n != INVALID) {
    591585          Value excess = (*_excess)[n];
    592586          int new_level = _level->maxLevel();
     
    654648            _level->deactivate(n);
    655649          }
     650
     651          n = _level->highestActive();
     652          level = _level->highestActiveLevel();
     653          --num;
    656654        }
    657655
    658656        num = _node_num * 20;
    659         while (num > 0) {
    660           while (level >= 0 && _level->activeFree(level)) {
    661             --level;
    662           }
    663           if (level == -1) {
    664             n = _level->highestActive();
    665             level = _level->highestActiveLevel();
    666             if (n == INVALID) goto first_phase_done;
    667           } else {
    668             n = _level->activeOn(level);
    669           }
    670           --num;
    671 
     657        while (num > 0 && n != INVALID) {
    672658          Value excess = (*_excess)[n];
    673659          int new_level = _level->maxLevel();
     
    735721            _level->deactivate(n);
    736722          }
    737         }
    738       }
    739     first_phase_done:;
     723
     724          while (level >= 0 && _level->activeFree(level)) {
     725            --level;
     726          }
     727          if (level == -1) {
     728            n = _level->highestActive();
     729            level = _level->highestActiveLevel();
     730          } else {
     731            n = _level->activeOn(level);
     732          }
     733          --num;
     734        }
     735      }
    740736    }
    741737
Note: See TracChangeset for help on using the changeset viewer.