lemon/fractional_matching.h
changeset 955 7f6e2bd76654
parent 951 41d7ac528c3a
child 956 141f9c0db4a3
equal deleted inserted replaced
2:157933a5075a 3:7978ab2ccfc8
  1164       }
  1164       }
  1165       for (EdgeIt e(_graph); e != INVALID; ++e) {
  1165       for (EdgeIt e(_graph); e != INVALID; ++e) {
  1166         (*_delta3_index)[e] = _delta3->PRE_HEAP;
  1166         (*_delta3_index)[e] = _delta3->PRE_HEAP;
  1167       }
  1167       }
  1168 
  1168 
       
  1169       _delta1->clear();
       
  1170       _delta2->clear();
       
  1171       _delta3->clear();
       
  1172       _tree_set->clear();
       
  1173 
  1169       for (NodeIt n(_graph); n != INVALID; ++n) {
  1174       for (NodeIt n(_graph); n != INVALID; ++n) {
  1170         Value max = 0;
  1175         Value max = 0;
  1171         for (OutArcIt e(_graph, n); e != INVALID; ++e) {
  1176         for (OutArcIt e(_graph, n); e != INVALID; ++e) {
  1172           if (_graph.target(e) == n && !_allow_loops) continue;
  1177           if (_graph.target(e) == n && !_allow_loops) continue;
  1173           if ((dualScale * _weight[e]) / 2 > max) {
  1178           if ((dualScale * _weight[e]) / 2 > max) {
  1903       }
  1908       }
  1904       for (EdgeIt e(_graph); e != INVALID; ++e) {
  1909       for (EdgeIt e(_graph); e != INVALID; ++e) {
  1905         (*_delta3_index)[e] = _delta3->PRE_HEAP;
  1910         (*_delta3_index)[e] = _delta3->PRE_HEAP;
  1906       }
  1911       }
  1907 
  1912 
       
  1913       _delta2->clear();
       
  1914       _delta3->clear();
       
  1915       _tree_set->clear();
       
  1916 
  1908       for (NodeIt n(_graph); n != INVALID; ++n) {
  1917       for (NodeIt n(_graph); n != INVALID; ++n) {
  1909         Value max = - std::numeric_limits<Value>::max();
  1918         Value max = - std::numeric_limits<Value>::max();
  1910         for (OutArcIt e(_graph, n); e != INVALID; ++e) {
  1919         for (OutArcIt e(_graph, n); e != INVALID; ++e) {
  1911           if (_graph.target(e) == n && !_allow_loops) continue;
  1920           if (_graph.target(e) == n && !_allow_loops) continue;
  1912           if ((dualScale * _weight[e]) / 2 > max) {
  1921           if ((dualScale * _weight[e]) / 2 > max) {