Changes in / [983:949510b70df9:977:4f8b22521b4a] in lemon
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
lemon/preflow.h
r982 r735 559 559 _phase = true; 560 560 561 while (true) { 561 Node n = _level->highestActive(); 562 int level = _level->highestActiveLevel(); 563 while (n != INVALID) { 562 564 int num = _node_num; 563 565 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) { 573 567 Value excess = (*_excess)[n]; 574 568 int new_level = _level->maxLevel(); … … 636 630 _level->deactivate(n); 637 631 } 632 633 n = _level->highestActive(); 634 level = _level->highestActiveLevel(); 635 --num; 638 636 } 639 637 640 638 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) { 654 640 Value excess = (*_excess)[n]; 655 641 int new_level = _level->maxLevel(); … … 717 703 _level->deactivate(n); 718 704 } 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 } 722 718 } 723 719
Note: See TracChangeset
for help on using the changeset viewer.