gravatar
alpar (Alpar Juttner)
alpar@cs.elte.hu
Rename markToBottom() to dirtyTopButOne() + better doc (#174)
0 1 0
default
1 file changed with 17 insertions and 19 deletions:
↑ Collapse diff ↑
Show white space 12 line context
... ...
@@ -377,26 +377,25 @@
377 377
        }
378 378
      copy(i,_first[new_level]);
379 379
      _level[i]=new_level;
380 380
      if(new_level>_highest_active) _highest_active=new_level;
381 381
    }
382 382

	
383
    ///Mark the node as it did not reach the max level
383
    ///Move an inactive item to the top but one level (in a dirty way).
384 384

	
385
    ///Mark the node as it did not reach the max level. It sets the
386
    ///level to the under the max level value. The node will be never
387
    ///more activated because the push operation from the maximum
388
    ///level is forbidden in the push-relabel algorithms. The node
389
    ///should be lifted previously to the top level.
390
    void markToBottom(Item i) {
385
    ///This function moves an inactive item to the top but one level.
386
    ///It makes the underlying datastructure corrupt, so use is only if
387
    ///you really know what it is for.
388
    ///\pre The item is on the top level.
389
    void dirtyTopButOne(Item i) {
391 390
      _level[i] = _max_level - 1;
392 391
    }
393 392

	
394
    ///Lift all nodes on and above a level to the top (and deactivate them).
393
    ///Lift all items on and above a level to the top (and deactivate them).
395 394

	
396
    ///This function lifts all nodes on and above level \c l to \c
395
    ///This function lifts all items on and above level \c l to \c
397 396
    ///maxLevel(), and also deactivates them.
398 397
    void liftToTop(int l)
399 398
    {
400 399
      const Vit f=_first[l];
401 400
      const Vit tl=_first[_max_level];
402 401
      for(Vit i=f;i!=tl;++i)
... ...
@@ -746,13 +745,13 @@
746 745
      }
747 746
    }
748 747

	
749 748
    ///Lift the highest active to top.
750 749

	
751 750
    ///Lift the item returned by highestActive() to the top level and
752
    ///deactivates the node.
751
    ///deactivates the item.
753 752
    ///
754 753
    void liftHighestActiveToTop() {
755 754
      Item i = _first[_highest_active];
756 755
      _level.set(i, _max_level);
757 756
      if (_next[i] != INVALID) {
758 757
        _prev.set(_next[i], INVALID);
... ...
@@ -894,26 +893,25 @@
894 893
      }
895 894
      if (_highest_active < new_level) {
896 895
        _highest_active = new_level;
897 896
      }
898 897
    }
899 898

	
900
    ///Mark the node as it did not reach the max level
899
    ///Move an inactive item to the top but one level (in a dirty way).
901 900

	
902
    ///Mark the node as it did not reach the max level. It sets the
903
    ///level to the under the max level value. The node will be never
904
    ///more activated because the push operation from the maximum
905
    ///level is forbidden in the push-relabel algorithms. The node
906
    ///should be lifted previously to the top level.
907
    void markToBottom(Item i) {
901
    ///This function moves an inactive item to the top but one level.
902
    ///It makes the underlying datastructure corrupt, so use is only if
903
    ///you really know what it is for.
904
    ///\pre The item is on the top level.
905
    void dirtyTopButOne(Item i) {
908 906
      _level.set(i, _max_level - 1);
909 907
    }
910 908

	
911
    ///Lift all nodes on and above a level to the top (and deactivate them).
909
    ///Lift all items on and above a level to the top (and deactivate them).
912 910

	
913
    ///This function lifts all nodes on and above level \c l to \c
911
    ///This function lifts all items on and above level \c l to \c
914 912
    ///maxLevel(), and also deactivates them.
915 913
    void liftToTop(int l)  {
916 914
      for (int i = l + 1; _first[i] != INVALID; ++i) {
917 915
        Item n = _first[i];
918 916
        while (n != INVALID) {
919 917
          _level.set(n, _max_level);
0 comments (0 inline)