Changeset 991:fb932bcfd803 in lemon for lemon/network_simplex.h
 Timestamp:
 09/04/10 23:58:03 (12 years ago)
 Branch:
 default
 Children:
 998:3ffd46dc8e01, 1317:b40c2bbb8da5
 Phase:
 public
 File:

 1 edited
Legend:
 Unmodified
 Added
 Removed

lemon/network_simplex.h
r990 r991 637 637 /// 638 638 /// \param graph The digraph the algorithm runs on. 639 /// \param arc_mixing Indicate if the arcs have tobe stored in a639 /// \param arc_mixing Indicate if the arcs will be stored in a 640 640 /// mixed order in the internal data structure. 641 /// In special cases, it could lead to better overall performance, 642 /// but it is usually slower. Therefore it is disabled by default. 643 NetworkSimplex(const GR& graph, bool arc_mixing = false) : 641 /// In general, it leads to similar performance as using the original 642 /// arc order, but it makes the algorithm more robust and in special 643 /// cases, even significantly faster. Therefore, it is enabled by default. 644 NetworkSimplex(const GR& graph, bool arc_mixing = true) : 644 645 _graph(graph), _node_id(graph), _arc_id(graph), 645 646 _arc_mixing(arc_mixing), … … 931 932 if (_arc_mixing) { 932 933 // Store the arcs in a mixed order 933 int k = std::max(int(std::sqrt(double(_arc_num))), 10);934 const int skip = std::max(_arc_num / _node_num, 3); 934 935 int i = 0, j = 0; 935 936 for (ArcIt a(_graph); a != INVALID; ++a) { … … 937 938 _source[i] = _node_id[_graph.source(a)]; 938 939 _target[i] = _node_id[_graph.target(a)]; 939 if ((i += k) >= _arc_num) i = ++j;940 if ((i += skip) >= _arc_num) i = ++j; 940 941 } 941 942 } else {
Note: See TracChangeset
for help on using the changeset viewer.