gravatar
alpar (Alpar Juttner)
alpar@cs.elte.hu
Unify sources
! ! !
r1.1.4 1.1
68 files changed with 641 insertions and 619 deletions:
↑ Collapse diff ↑
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -277,3 +277,3 @@
277 277

	
278
 - \ref Dijkstra Dijkstra's algorithm for finding shortest paths from a 
278
 - \ref Dijkstra Dijkstra's algorithm for finding shortest paths from a
279 279
   source node when all arc lengths are non-negative.
... ...
@@ -308,3 +308,3 @@
308 308

	
309
\ref Circulation is a preflow push-relabel algorithm implemented directly 
309
\ref Circulation is a preflow push-relabel algorithm implemented directly
310 310
for finding feasible circulations, which is a somewhat different problem,
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -83,3 +83,3 @@
83 83
     then \f$\pi(u)=0\f$.
84
 
84

	
85 85
Here \f$cost^\pi(uv)\f$ denotes the \e reduced \e cost of the arc
... ...
@@ -121,3 +121,3 @@
121 121

	
122
It means that the total demand must be less or equal to the 
122
It means that the total demand must be less or equal to the
123 123
total supply (i.e. \f$\sum_{u\in V} sup(u)\f$ must be zero or
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -420,3 +420,3 @@
420 420
      _node_filter = &node_filter;
421
      _arc_filter = &arc_filter;      
421
      _arc_filter = &arc_filter;
422 422
    }
... ...
@@ -507,7 +507,7 @@
507 507
    template <typename V>
508
    class NodeMap 
509
      : public SubMapExtender<SubDigraphBase<DGR, NF, AF, ch>, 
510
	      LEMON_SCOPE_FIX(DigraphAdaptorBase<DGR>, NodeMap<V>)> {
508
    class NodeMap
509
      : public SubMapExtender<SubDigraphBase<DGR, NF, AF, ch>,
510
              LEMON_SCOPE_FIX(DigraphAdaptorBase<DGR>, NodeMap<V>)> {
511 511
      typedef SubMapExtender<SubDigraphBase<DGR, NF, AF, ch>,
512
	LEMON_SCOPE_FIX(DigraphAdaptorBase<DGR>, NodeMap<V>)> Parent;
512
        LEMON_SCOPE_FIX(DigraphAdaptorBase<DGR>, NodeMap<V>)> Parent;
513 513

	
... ...
@@ -534,5 +534,5 @@
534 534
    template <typename V>
535
    class ArcMap 
535
    class ArcMap
536 536
      : public SubMapExtender<SubDigraphBase<DGR, NF, AF, ch>,
537
	      LEMON_SCOPE_FIX(DigraphAdaptorBase<DGR>, ArcMap<V>)> {
537
              LEMON_SCOPE_FIX(DigraphAdaptorBase<DGR>, ArcMap<V>)> {
538 538
      typedef SubMapExtender<SubDigraphBase<DGR, NF, AF, ch>,
... ...
@@ -581,3 +581,3 @@
581 581
      _node_filter = &node_filter;
582
      _arc_filter = &arc_filter;      
582
      _arc_filter = &arc_filter;
583 583
    }
... ...
@@ -650,6 +650,6 @@
650 650
    template <typename V>
651
    class NodeMap 
651
    class NodeMap
652 652
      : public SubMapExtender<SubDigraphBase<DGR, NF, AF, false>,
653 653
          LEMON_SCOPE_FIX(DigraphAdaptorBase<DGR>, NodeMap<V>)> {
654
      typedef SubMapExtender<SubDigraphBase<DGR, NF, AF, false>, 
654
      typedef SubMapExtender<SubDigraphBase<DGR, NF, AF, false>,
655 655
        LEMON_SCOPE_FIX(DigraphAdaptorBase<DGR>, NodeMap<V>)> Parent;
... ...
@@ -677,3 +677,3 @@
677 677
    template <typename V>
678
    class ArcMap 
678
    class ArcMap
679 679
      : public SubMapExtender<SubDigraphBase<DGR, NF, AF, false>,
... ...
@@ -1018,6 +1018,6 @@
1018 1018
    template <typename V>
1019
    class NodeMap 
1019
    class NodeMap
1020 1020
      : public SubMapExtender<SubGraphBase<GR, NF, EF, ch>,
1021 1021
          LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, NodeMap<V>)> {
1022
      typedef SubMapExtender<SubGraphBase<GR, NF, EF, ch>, 
1022
      typedef SubMapExtender<SubGraphBase<GR, NF, EF, ch>,
1023 1023
        LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, NodeMap<V>)> Parent;
... ...
@@ -1045,6 +1045,6 @@
1045 1045
    template <typename V>
1046
    class ArcMap 
1046
    class ArcMap
1047 1047
      : public SubMapExtender<SubGraphBase<GR, NF, EF, ch>,
1048 1048
          LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, ArcMap<V>)> {
1049
      typedef SubMapExtender<SubGraphBase<GR, NF, EF, ch>, 
1049
      typedef SubMapExtender<SubGraphBase<GR, NF, EF, ch>,
1050 1050
        LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, ArcMap<V>)> Parent;
... ...
@@ -1072,6 +1072,6 @@
1072 1072
    template <typename V>
1073
    class EdgeMap 
1073
    class EdgeMap
1074 1074
      : public SubMapExtender<SubGraphBase<GR, NF, EF, ch>,
1075 1075
        LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, EdgeMap<V>)> {
1076
      typedef SubMapExtender<SubGraphBase<GR, NF, EF, ch>, 
1076
      typedef SubMapExtender<SubGraphBase<GR, NF, EF, ch>,
1077 1077
        LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, EdgeMap<V>)> Parent;
... ...
@@ -1114,4 +1114,4 @@
1114 1114
    EF* _edge_filter;
1115
    SubGraphBase() 
1116
	  : Parent(), _node_filter(0), _edge_filter(0) { }
1115
    SubGraphBase()
1116
          : Parent(), _node_filter(0), _edge_filter(0) { }
1117 1117

	
... ...
@@ -1216,6 +1216,6 @@
1216 1216
    template <typename V>
1217
    class NodeMap 
1217
    class NodeMap
1218 1218
      : public SubMapExtender<SubGraphBase<GR, NF, EF, false>,
1219 1219
          LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, NodeMap<V>)> {
1220
      typedef SubMapExtender<SubGraphBase<GR, NF, EF, false>, 
1220
      typedef SubMapExtender<SubGraphBase<GR, NF, EF, false>,
1221 1221
        LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, NodeMap<V>)> Parent;
... ...
@@ -1243,6 +1243,6 @@
1243 1243
    template <typename V>
1244
    class ArcMap 
1244
    class ArcMap
1245 1245
      : public SubMapExtender<SubGraphBase<GR, NF, EF, false>,
1246 1246
          LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, ArcMap<V>)> {
1247
      typedef SubMapExtender<SubGraphBase<GR, NF, EF, false>, 
1247
      typedef SubMapExtender<SubGraphBase<GR, NF, EF, false>,
1248 1248
        LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, ArcMap<V>)> Parent;
... ...
@@ -1270,7 +1270,7 @@
1270 1270
    template <typename V>
1271
    class EdgeMap 
1271
    class EdgeMap
1272 1272
      : public SubMapExtender<SubGraphBase<GR, NF, EF, false>,
1273 1273
        LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, EdgeMap<V>)> {
1274
      typedef SubMapExtender<SubGraphBase<GR, NF, EF, false>, 
1275
	LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, EdgeMap<V>)> Parent;
1274
      typedef SubMapExtender<SubGraphBase<GR, NF, EF, false>,
1275
        LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, EdgeMap<V>)> Parent;
1276 1276

	
... ...
@@ -1497,3 +1497,3 @@
1497 1497
    typedef DigraphAdaptorExtender<
1498
      SubDigraphBase<GR, NF, ConstMap<typename GR::Arc, Const<bool, true> >, 
1498
      SubDigraphBase<GR, NF, ConstMap<typename GR::Arc, Const<bool, true> >,
1499 1499
                     true> > Parent;
... ...
@@ -1518,3 +1518,3 @@
1518 1518
    /// given node filter map.
1519
    FilterNodes(GR& graph, NF& node_filter) 
1519
    FilterNodes(GR& graph, NF& node_filter)
1520 1520
      : Parent(), const_true_map()
... ...
@@ -1556,3 +1556,3 @@
1556 1556
    public GraphAdaptorExtender<
1557
      SubGraphBase<GR, NF, ConstMap<typename GR::Edge, Const<bool, true> >, 
1557
      SubGraphBase<GR, NF, ConstMap<typename GR::Edge, Const<bool, true> >,
1558 1558
                   true> > {
... ...
@@ -1560,3 +1560,3 @@
1560 1560
    typedef GraphAdaptorExtender<
1561
      SubGraphBase<GR, NF, ConstMap<typename GR::Edge, Const<bool, true> >, 
1561
      SubGraphBase<GR, NF, ConstMap<typename GR::Edge, Const<bool, true> >,
1562 1562
                   true> > Parent;
... ...
@@ -1644,3 +1644,3 @@
1644 1644
    typedef DigraphAdaptorExtender<
1645
      SubDigraphBase<DGR, ConstMap<typename DGR::Node, Const<bool, true> >, 
1645
      SubDigraphBase<DGR, ConstMap<typename DGR::Node, Const<bool, true> >,
1646 1646
                     AF, false> > Parent;
... ...
@@ -1750,3 +1750,3 @@
1750 1750
    public GraphAdaptorExtender<
1751
      SubGraphBase<GR, ConstMap<typename GR::Node, Const<bool, true> >, 
1751
      SubGraphBase<GR, ConstMap<typename GR::Node, Const<bool, true> >,
1752 1752
                   EF, false> > {
... ...
@@ -1754,3 +1754,3 @@
1754 1754
    typedef GraphAdaptorExtender<
1755
      SubGraphBase<GR, ConstMap<typename GR::Node, Const<bool, true > >, 
1755
      SubGraphBase<GR, ConstMap<typename GR::Node, Const<bool, true > >,
1756 1756
                   EF, false> > Parent;
... ...
@@ -1779,3 +1779,3 @@
1779 1779
    /// filter map.
1780
    FilterEdges(GR& graph, EF& edge_filter) 
1780
    FilterEdges(GR& graph, EF& edge_filter)
1781 1781
      : Parent(), const_true_map() {
... ...
@@ -1847,3 +1847,3 @@
1847 1847

	
1848
      Arc(const Edge& edge, bool forward) 
1848
      Arc(const Edge& edge, bool forward)
1849 1849
        : _edge(edge), _forward(forward) {}
... ...
@@ -2087,3 +2087,3 @@
2087 2087
      ArcMapBase(const UndirectorBase<DGR>& adaptor, const V& value)
2088
        : _forward(*adaptor._digraph, value), 
2088
        : _forward(*adaptor._digraph, value),
2089 2089
          _backward(*adaptor._digraph, value) {}
... ...
@@ -2205,3 +2205,3 @@
2205 2205
    EdgeNotifier& notifier(Edge) const { return _digraph->notifier(Edge()); }
2206
    
2206

	
2207 2207
    typedef EdgeNotifier ArcNotifier;
... ...
@@ -2709,3 +2709,3 @@
2709 2709
           typename TL = Tolerance<typename CM::Value> >
2710
  class ResidualDigraph 
2710
  class ResidualDigraph
2711 2711
    : public SubDigraph<
... ...
@@ -2766,3 +2766,3 @@
2766 2766
                    FM& flow, const TL& tolerance = Tolerance())
2767
      : Parent(), _capacity(&capacity), _flow(&flow), 
2767
      : Parent(), _capacity(&capacity), _flow(&flow),
2768 2768
        _graph(digraph), _node_filter(),
... ...
@@ -2848,3 +2848,3 @@
2848 2848
      /// Constructor
2849
      ResidualCapacity(const ResidualDigraph<DGR, CM, FM, TL>& adaptor) 
2849
      ResidualCapacity(const ResidualDigraph<DGR, CM, FM, TL>& adaptor)
2850 2850
        : _adaptor(&adaptor) {}
... ...
@@ -3425,3 +3425,3 @@
3425 3425
    /// Its value type is inherited from the first node map type (\c IN).
3426
    /// \tparam IN The type of the node map for the in-nodes. 
3426
    /// \tparam IN The type of the node map for the in-nodes.
3427 3427
    /// \tparam OUT The type of the node map for the out-nodes.
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -72,3 +72,3 @@
72 72
  private:
73
  
73

	
74 74
    // The MapBase of the Map which imlements the core regisitry function.
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -159,3 +159,3 @@
159 159
    typedef DefaultMap<_Graph, _Item, _Value> Map;
160
    
160

	
161 161
    typedef typename Parent::GraphType GraphType;
Ignore white space 6 line context
1
/* -*- C++ -*-
1
/* -*- mode: C++; indent-tabs-mode: nil; -*-
2 2
 *
3
 * This file is a part of LEMON, a generic C++ optimization library
3
 * This file is a part of LEMON, a generic C++ optimization library.
4 4
 *
5
 * Copyright (C) 2003-2008
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -65,7 +65,7 @@
65 65
      if (n == Parent::source(e))
66
	return Parent::target(e);
66
        return Parent::target(e);
67 67
      else if(n==Parent::target(e))
68
	return Parent::source(e);
68
        return Parent::source(e);
69 69
      else
70
	return INVALID;
70
        return INVALID;
71 71
    }
... ...
@@ -93,3 +93,3 @@
93 93

	
94
    class NodeIt : public Node { 
94
    class NodeIt : public Node {
95 95
      const Digraph* digraph;
... ...
@@ -102,11 +102,11 @@
102 102
      explicit NodeIt(const Digraph& _graph) : digraph(&_graph) {
103
	_graph.first(static_cast<Node&>(*this));
103
        _graph.first(static_cast<Node&>(*this));
104 104
      }
105 105

	
106
      NodeIt(const Digraph& _graph, const Node& node) 
107
	: Node(node), digraph(&_graph) {}
106
      NodeIt(const Digraph& _graph, const Node& node)
107
        : Node(node), digraph(&_graph) {}
108 108

	
109
      NodeIt& operator++() { 
110
	digraph->next(*this);
111
	return *this; 
109
      NodeIt& operator++() {
110
        digraph->next(*this);
111
        return *this;
112 112
      }
... ...
@@ -116,3 +116,3 @@
116 116

	
117
    class ArcIt : public Arc { 
117
    class ArcIt : public Arc {
118 118
      const Digraph* digraph;
... ...
@@ -125,11 +125,11 @@
125 125
      explicit ArcIt(const Digraph& _graph) : digraph(&_graph) {
126
	_graph.first(static_cast<Arc&>(*this));
126
        _graph.first(static_cast<Arc&>(*this));
127 127
      }
128 128

	
129
      ArcIt(const Digraph& _graph, const Arc& e) : 
130
	Arc(e), digraph(&_graph) { }
129
      ArcIt(const Digraph& _graph, const Arc& e) :
130
        Arc(e), digraph(&_graph) { }
131 131

	
132
      ArcIt& operator++() { 
133
	digraph->next(*this);
134
	return *this; 
132
      ArcIt& operator++() {
133
        digraph->next(*this);
134
        return *this;
135 135
      }
... ...
@@ -139,3 +139,3 @@
139 139

	
140
    class OutArcIt : public Arc { 
140
    class OutArcIt : public Arc {
141 141
      const Digraph* digraph;
... ...
@@ -147,13 +147,13 @@
147 147

	
148
      OutArcIt(const Digraph& _graph, const Node& node) 
149
	: digraph(&_graph) {
150
	_graph.firstOut(*this, node);
148
      OutArcIt(const Digraph& _graph, const Node& node)
149
        : digraph(&_graph) {
150
        _graph.firstOut(*this, node);
151 151
      }
152 152

	
153
      OutArcIt(const Digraph& _graph, const Arc& arc) 
154
	: Arc(arc), digraph(&_graph) {}
153
      OutArcIt(const Digraph& _graph, const Arc& arc)
154
        : Arc(arc), digraph(&_graph) {}
155 155

	
156
      OutArcIt& operator++() { 
157
	digraph->nextOut(*this);
158
	return *this; 
156
      OutArcIt& operator++() {
157
        digraph->nextOut(*this);
158
        return *this;
159 159
      }
... ...
@@ -163,3 +163,3 @@
163 163

	
164
    class InArcIt : public Arc { 
164
    class InArcIt : public Arc {
165 165
      const Digraph* digraph;
... ...
@@ -171,13 +171,13 @@
171 171

	
172
      InArcIt(const Digraph& _graph, const Node& node) 
173
	: digraph(&_graph) {
174
	_graph.firstIn(*this, node);
172
      InArcIt(const Digraph& _graph, const Node& node)
173
        : digraph(&_graph) {
174
        _graph.firstIn(*this, node);
175 175
      }
176 176

	
177
      InArcIt(const Digraph& _graph, const Arc& arc) : 
178
	Arc(arc), digraph(&_graph) {}
177
      InArcIt(const Digraph& _graph, const Arc& arc) :
178
        Arc(arc), digraph(&_graph) {}
179 179

	
180
      InArcIt& operator++() { 
181
	digraph->nextIn(*this);
182
	return *this; 
180
      InArcIt& operator++() {
181
        digraph->nextIn(*this);
182
        return *this;
183 183
      }
... ...
@@ -217,5 +217,5 @@
217 217
    // Mappable extension
218
    
218

	
219 219
    template <typename _Value>
220
    class ArcMap 
220
    class ArcMap
221 221
      : public MapExtender<DefaultMap<Digraph, Arc, _Value> > {
... ...
@@ -224,9 +224,9 @@
224 224
    public:
225
      explicit ArcMap(const Digraph& _g) 
226
	: Parent(_g) {}
227
      ArcMap(const Digraph& _g, const _Value& _v) 
228
	: Parent(_g, _v) {}
225
      explicit ArcMap(const Digraph& _g)
226
        : Parent(_g) {}
227
      ArcMap(const Digraph& _g, const _Value& _v)
228
        : Parent(_g, _v) {}
229 229

	
230 230
      ArcMap& operator=(const ArcMap& cmap) {
231
	return operator=<ArcMap>(cmap);
231
        return operator=<ArcMap>(cmap);
232 232
      }
... ...
@@ -236,3 +236,3 @@
236 236
        Parent::operator=(cmap);
237
	return *this;
237
        return *this;
238 238
      }
... ...
@@ -249,3 +249,3 @@
249 249
    }
250
    
250

	
251 251
    void clear() {
... ...
@@ -314,7 +314,7 @@
314 314
      if( n == Parent::u(e))
315
	return Parent::v(e);
315
        return Parent::v(e);
316 316
      else if( n == Parent::v(e))
317
	return Parent::u(e);
317
        return Parent::u(e);
318 318
      else
319
	return INVALID;
319
        return INVALID;
320 320
    }
... ...
@@ -342,3 +342,3 @@
342 342
    using Parent::notifier;
343
    
343

	
344 344
    ArcNotifier& notifier(Arc) const {
... ...
@@ -352,3 +352,3 @@
352 352

	
353
    class NodeIt : public Node { 
353
    class NodeIt : public Node {
354 354
      const Graph* graph;
... ...
@@ -361,11 +361,11 @@
361 361
      explicit NodeIt(const Graph& _graph) : graph(&_graph) {
362
	_graph.first(static_cast<Node&>(*this));
362
        _graph.first(static_cast<Node&>(*this));
363 363
      }
364 364

	
365
      NodeIt(const Graph& _graph, const Node& node) 
366
	: Node(node), graph(&_graph) {}
365
      NodeIt(const Graph& _graph, const Node& node)
366
        : Node(node), graph(&_graph) {}
367 367

	
368
      NodeIt& operator++() { 
369
	graph->next(*this);
370
	return *this; 
368
      NodeIt& operator++() {
369
        graph->next(*this);
370
        return *this;
371 371
      }
... ...
@@ -375,3 +375,3 @@
375 375

	
376
    class ArcIt : public Arc { 
376
    class ArcIt : public Arc {
377 377
      const Graph* graph;
... ...
@@ -384,11 +384,11 @@
384 384
      explicit ArcIt(const Graph& _graph) : graph(&_graph) {
385
	_graph.first(static_cast<Arc&>(*this));
385
        _graph.first(static_cast<Arc&>(*this));
386 386
      }
387 387

	
388
      ArcIt(const Graph& _graph, const Arc& e) : 
389
	Arc(e), graph(&_graph) { }
388
      ArcIt(const Graph& _graph, const Arc& e) :
389
        Arc(e), graph(&_graph) { }
390 390

	
391
      ArcIt& operator++() { 
392
	graph->next(*this);
393
	return *this; 
391
      ArcIt& operator++() {
392
        graph->next(*this);
393
        return *this;
394 394
      }
... ...
@@ -398,3 +398,3 @@
398 398

	
399
    class OutArcIt : public Arc { 
399
    class OutArcIt : public Arc {
400 400
      const Graph* graph;
... ...
@@ -406,13 +406,13 @@
406 406

	
407
      OutArcIt(const Graph& _graph, const Node& node) 
408
	: graph(&_graph) {
409
	_graph.firstOut(*this, node);
407
      OutArcIt(const Graph& _graph, const Node& node)
408
        : graph(&_graph) {
409
        _graph.firstOut(*this, node);
410 410
      }
411 411

	
412
      OutArcIt(const Graph& _graph, const Arc& arc) 
413
	: Arc(arc), graph(&_graph) {}
412
      OutArcIt(const Graph& _graph, const Arc& arc)
413
        : Arc(arc), graph(&_graph) {}
414 414

	
415
      OutArcIt& operator++() { 
416
	graph->nextOut(*this);
417
	return *this; 
415
      OutArcIt& operator++() {
416
        graph->nextOut(*this);
417
        return *this;
418 418
      }
... ...
@@ -422,3 +422,3 @@
422 422

	
423
    class InArcIt : public Arc { 
423
    class InArcIt : public Arc {
424 424
      const Graph* graph;
... ...
@@ -430,13 +430,13 @@
430 430

	
431
      InArcIt(const Graph& _graph, const Node& node) 
432
	: graph(&_graph) {
433
	_graph.firstIn(*this, node);
431
      InArcIt(const Graph& _graph, const Node& node)
432
        : graph(&_graph) {
433
        _graph.firstIn(*this, node);
434 434
      }
435 435

	
436
      InArcIt(const Graph& _graph, const Arc& arc) : 
437
	Arc(arc), graph(&_graph) {}
436
      InArcIt(const Graph& _graph, const Arc& arc) :
437
        Arc(arc), graph(&_graph) {}
438 438

	
439
      InArcIt& operator++() { 
440
	graph->nextIn(*this);
441
	return *this; 
439
      InArcIt& operator++() {
440
        graph->nextIn(*this);
441
        return *this;
442 442
      }
... ...
@@ -446,3 +446,3 @@
446 446

	
447
    class EdgeIt : public Parent::Edge { 
447
    class EdgeIt : public Parent::Edge {
448 448
      const Graph* graph;
... ...
@@ -455,11 +455,11 @@
455 455
      explicit EdgeIt(const Graph& _graph) : graph(&_graph) {
456
	_graph.first(static_cast<Edge&>(*this));
456
        _graph.first(static_cast<Edge&>(*this));
457 457
      }
458 458

	
459
      EdgeIt(const Graph& _graph, const Edge& e) : 
460
	Edge(e), graph(&_graph) { }
459
      EdgeIt(const Graph& _graph, const Edge& e) :
460
        Edge(e), graph(&_graph) { }
461 461

	
462
      EdgeIt& operator++() { 
463
	graph->next(*this);
464
	return *this; 
462
      EdgeIt& operator++() {
463
        graph->next(*this);
464
        return *this;
465 465
      }
... ...
@@ -479,3 +479,3 @@
479 479
      IncEdgeIt(const Graph& _graph, const Node &n) : graph(&_graph) {
480
	_graph.firstInc(*this, direction, n);
480
        _graph.firstInc(*this, direction, n);
481 481
      }
... ...
@@ -483,4 +483,4 @@
483 483
      IncEdgeIt(const Graph& _graph, const Edge &ue, const Node &n)
484
	: graph(&_graph), Edge(ue) {
485
	direction = (_graph.source(ue) == n);
484
        : graph(&_graph), Edge(ue) {
485
        direction = (_graph.source(ue) == n);
486 486
      }
... ...
@@ -488,4 +488,4 @@
488 488
      IncEdgeIt& operator++() {
489
	graph->nextInc(*this, direction);
490
	return *this; 
489
        graph->nextInc(*this, direction);
490
        return *this;
491 491
      }
... ...
@@ -536,3 +536,3 @@
536 536
    template <typename _Value>
537
    class ArcMap 
537
    class ArcMap
538 538
      : public MapExtender<DefaultMap<Graph, Arc, _Value> > {
... ...
@@ -541,9 +541,9 @@
541 541
    public:
542
      explicit ArcMap(const Graph& _g) 
543
	: Parent(_g) {}
544
      ArcMap(const Graph& _g, const _Value& _v) 
545
	: Parent(_g, _v) {}
542
      explicit ArcMap(const Graph& _g)
543
        : Parent(_g) {}
544
      ArcMap(const Graph& _g, const _Value& _v)
545
        : Parent(_g, _v) {}
546 546

	
547 547
      ArcMap& operator=(const ArcMap& cmap) {
548
	return operator=<ArcMap>(cmap);
548
        return operator=<ArcMap>(cmap);
549 549
      }
... ...
@@ -553,3 +553,3 @@
553 553
        Parent::operator=(cmap);
554
	return *this;
554
        return *this;
555 555
      }
... ...
@@ -560,3 +560,3 @@
560 560
    template <typename _Value>
561
    class EdgeMap 
561
    class EdgeMap
562 562
      : public MapExtender<DefaultMap<Graph, Edge, _Value> > {
... ...
@@ -565,10 +565,10 @@
565 565
    public:
566
      explicit EdgeMap(const Graph& _g) 
567
	: Parent(_g) {}
566
      explicit EdgeMap(const Graph& _g)
567
        : Parent(_g) {}
568 568

	
569
      EdgeMap(const Graph& _g, const _Value& _v) 
570
	: Parent(_g, _v) {}
569
      EdgeMap(const Graph& _g, const _Value& _v)
570
        : Parent(_g, _v) {}
571 571

	
572 572
      EdgeMap& operator=(const EdgeMap& cmap) {
573
	return operator=<EdgeMap>(cmap);
573
        return operator=<EdgeMap>(cmap);
574 574
      }
... ...
@@ -578,3 +578,3 @@
578 578
        Parent::operator=(cmap);
579
	return *this;
579
        return *this;
580 580
      }
... ...
@@ -595,3 +595,3 @@
595 595
    }
596
    
596

	
597 597
    void clear() {
... ...
@@ -621,3 +621,3 @@
621 621
    }
622
    
622

	
623 623
  };
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2008
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -100,3 +100,3 @@
100 100
      char buf1[11], buf2[9], buf3[5];
101
	  if (GetDateFormat(MY_LOCALE, 0, &time,
101
          if (GetDateFormat(MY_LOCALE, 0, &time,
102 102
                        ("ddd MMM dd"), buf1, 11) &&
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -122,3 +122,3 @@
122 122

	
123
    
123

	
124 124

	
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -61,4 +61,4 @@
61 61
    ///
62
    /// The type of the map that stores the signed supply values of the 
63
    /// nodes. 
62
    /// The type of the map that stores the signed supply values of the
63
    /// nodes.
64 64
    /// It must conform to the \ref concepts::ReadMap "ReadMap" concept.
... ...
@@ -136,3 +136,3 @@
136 136
     \f[ lower(uv) \leq f(uv) \leq upper(uv) \quad \forall uv\in A. \f]
137
     
137

	
138 138
     The sum of the supply values, i.e. \f$\sum_{u\in V} sup(u)\f$ must be
... ...
@@ -146,3 +146,3 @@
146 146
     have to be satisfied and all supplies have to be used.
147
     
147

	
148 148
     If you need the opposite inequalities in the supply/demand constraints
... ...
@@ -327,3 +327,3 @@
327 327
    /// \param lower The lower bounds for the flow values on the arcs.
328
    /// \param upper The upper bounds (capacities) for the flow values 
328
    /// \param upper The upper bounds (capacities) for the flow values
329 329
    /// on the arcs.
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2008
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2008
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -139,3 +139,3 @@
139 139
    virtual void _messageLevel(MessageLevel);
140
    
140

	
141 141
  public:
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -437,3 +437,3 @@
437 437
        ///Copy constructor
438
        NodeMap(const NodeMap& nm) : 
438
        NodeMap(const NodeMap& nm) :
439 439
          ReferenceMap<Node, T, T&, const T&>(nm) { }
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -40,3 +40,3 @@
40 40
    /// create graph skeleton classes. The reason for this is that \c Node
41
    /// and \c Arc (or \c Edge) types should \e not derive from the same 
41
    /// and \c Arc (or \c Edge) types should \e not derive from the same
42 42
    /// base class. For \c Node you should instantiate it with character
... ...
@@ -91,3 +91,3 @@
91 91
      /// This operator defines an ordering of the items.
92
      /// It makes possible to use graph item types as key types in 
92
      /// It makes possible to use graph item types as key types in
93 93
      /// associative containers (e.g. \c std::map).
... ...
@@ -124,3 +124,3 @@
124 124
    /// All digraph %concepts have to conform to this class.
125
    /// It just provides types for nodes and arcs and functions 
125
    /// It just provides types for nodes and arcs and functions
126 126
    /// to get the source and the target nodes of arcs.
... ...
@@ -428,3 +428,3 @@
428 428
    ///
429
    /// This class describes the concept of \c NodeIt, \c ArcIt and 
429
    /// This class describes the concept of \c NodeIt, \c ArcIt and
430 430
    /// \c EdgeIt subtypes of digraph and graph types.
... ...
@@ -468,3 +468,3 @@
468 468
      GraphItemIt& operator++() { return *this; }
469
 
469

	
470 470
      /// \brief Equality operator
... ...
@@ -503,6 +503,6 @@
503 503

	
504
    /// \brief Concept class for \c InArcIt, \c OutArcIt and 
504
    /// \brief Concept class for \c InArcIt, \c OutArcIt and
505 505
    /// \c IncEdgeIt types.
506 506
    ///
507
    /// This class describes the concept of \c InArcIt, \c OutArcIt 
507
    /// This class describes the concept of \c InArcIt, \c OutArcIt
508 508
    /// and \c IncEdgeIt subtypes of digraph and graph types.
... ...
@@ -511,3 +511,3 @@
511 511
    /// base class, there is an additional template parameter (selector)
512
    /// \c sel. For \c InArcIt you should instantiate it with character 
512
    /// \c sel. For \c InArcIt you should instantiate it with character
513 513
    /// \c 'i', for \c OutArcIt with \c 'o' and for \c IncEdgeIt with \c 'e'.
... ...
@@ -532,6 +532,6 @@
532 532

	
533
      /// \brief Constructor that sets the iterator to the first 
533
      /// \brief Constructor that sets the iterator to the first
534 534
      /// incoming or outgoing arc.
535 535
      ///
536
      /// Constructor that sets the iterator to the first arc 
536
      /// Constructor that sets the iterator to the first arc
537 537
      /// incoming to or outgoing from the given node.
... ...
@@ -806,5 +806,5 @@
806 806
      ///
807
      /// This function gives back the first edge incident to the given 
807
      /// This function gives back the first edge incident to the given
808 808
      /// node. The bool parameter gives back the direction for which the
809
      /// source node of the directed arc representing the edge is the 
809
      /// source node of the directed arc representing the edge is the
810 810
      /// given node.
... ...
@@ -815,3 +815,3 @@
815 815
      ///
816
      /// This function gives back the next edge incident to the given 
816
      /// This function gives back the next edge incident to the given
817 817
      /// node. The bool parameter should be used as \c firstInc() use it.
... ...
@@ -992,3 +992,3 @@
992 992
    /// This class describes the concept of standard graph maps, i.e.
993
    /// the \c NodeMap, \c ArcMap and \c EdgeMap subtypes of digraph and 
993
    /// the \c NodeMap, \c ArcMap and \c EdgeMap subtypes of digraph and
994 994
    /// graph types, which can be used for associating data to graph items.
... ...
@@ -1047,3 +1047,3 @@
1047 1047
          _Map m2(g,t);
1048
          
1048

	
1049 1049
          // Copy constructor
... ...
@@ -1070,3 +1070,3 @@
1070 1070
    /// This class describes the interface of mappable directed graphs.
1071
    /// It extends \ref BaseDigraphComponent with the standard digraph 
1071
    /// It extends \ref BaseDigraphComponent with the standard digraph
1072 1072
    /// map classes, namely \c NodeMap and \c ArcMap.
... ...
@@ -1207,3 +1207,3 @@
1207 1207
    /// This class describes the interface of mappable undirected graphs.
1208
    /// It extends \ref MappableDigraphComponent with the standard graph 
1208
    /// It extends \ref MappableDigraphComponent with the standard graph
1209 1209
    /// map class for edges (\c EdgeMap).
... ...
@@ -1292,3 +1292,3 @@
1292 1292
    /// This class describes the interface of extendable directed graphs.
1293
    /// It extends \ref BaseDigraphComponent with functions for adding 
1293
    /// It extends \ref BaseDigraphComponent with functions for adding
1294 1294
    /// nodes and arcs to the digraph.
... ...
@@ -1336,3 +1336,3 @@
1336 1336
    /// This class describes the interface of extendable undirected graphs.
1337
    /// It extends \ref BaseGraphComponent with functions for adding 
1337
    /// It extends \ref BaseGraphComponent with functions for adding
1338 1338
    /// nodes and edges to the graph.
... ...
@@ -1380,3 +1380,3 @@
1380 1380
    /// This class describes the interface of erasable directed graphs.
1381
    /// It extends \ref BaseDigraphComponent with functions for removing 
1381
    /// It extends \ref BaseDigraphComponent with functions for removing
1382 1382
    /// nodes and arcs from the digraph.
... ...
@@ -1393,3 +1393,3 @@
1393 1393
      ///
1394
      /// This function erases the given node from the digraph and all arcs 
1394
      /// This function erases the given node from the digraph and all arcs
1395 1395
      /// connected to the node.
... ...
@@ -1419,3 +1419,3 @@
1419 1419
    /// This class describes the interface of erasable undirected graphs.
1420
    /// It extends \ref BaseGraphComponent with functions for removing 
1420
    /// It extends \ref BaseGraphComponent with functions for removing
1421 1421
    /// nodes and edges from the graph.
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -260,3 +260,3 @@
260 260
  /// \note By definition, the empty digraph is strongly connected.
261
  /// 
261
  ///
262 262
  /// \see countStronglyConnectedComponents(), stronglyConnectedComponents()
... ...
@@ -312,3 +312,3 @@
312 312
  ///
313
  /// \brief Count the number of strongly connected components of a 
313
  /// \brief Count the number of strongly connected components of a
314 314
  /// directed graph
... ...
@@ -746,3 +746,3 @@
746 746
  ///
747
  /// This function checks whether the given undirected graph is 
747
  /// This function checks whether the given undirected graph is
748 748
  /// bi-node-connected, i.e. any two edges are on same circle.
... ...
@@ -760,3 +760,3 @@
760 760
  ///
761
  /// \brief Count the number of bi-node-connected components of an 
761
  /// \brief Count the number of bi-node-connected components of an
762 762
  /// undirected graph.
... ...
@@ -814,3 +814,3 @@
814 814
  /// to the number of the bi-node-connected components minus one. Each
815
  /// value of the map will be set exactly once, and the values of a 
815
  /// value of the map will be set exactly once, and the values of a
816 816
  /// certain component will be set continuously.
... ...
@@ -860,3 +860,3 @@
860 860
  /// \param graph The undirected graph.
861
  /// \retval cutMap A writable node map. The values will be set to 
861
  /// \retval cutMap A writable node map. The values will be set to
862 862
  /// \c true for the nodes that separate two or more components
... ...
@@ -1087,3 +1087,3 @@
1087 1087
  ///
1088
  /// This function checks whether the given undirected graph is 
1088
  /// This function checks whether the given undirected graph is
1089 1089
  /// bi-edge-connected, i.e. any two nodes are connected with at least
... ...
@@ -1194,3 +1194,3 @@
1194 1194
  /// This function finds the bi-edge-connected cut edges in the given
1195
  /// undirected graph. 
1195
  /// undirected graph.
1196 1196
  ///
... ...
@@ -1351,3 +1351,3 @@
1351 1351
  /// \retval order A readable and writable node map. The values will be
1352
  /// set from 0 to the number of the nodes in the digraph minus one. 
1352
  /// set from 0 to the number of the nodes in the digraph minus one.
1353 1353
  /// Each value of the map will be set exactly once, and the values will
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -1243,3 +1243,4 @@
1243 1243

	
1244
    class AutoNodeMap : public ItemSetTraits<GR, Node>::template Map<Arc>::Type {
1244
    class AutoNodeMap :
1245
      public ItemSetTraits<GR, Node>::template Map<Arc>::Type {
1245 1246
      typedef typename ItemSetTraits<GR, Node>::template Map<Arc>::Type Parent;
... ...
@@ -1282,3 +1283,3 @@
1282 1283

	
1283
  protected: 
1284
  protected:
1284 1285

	
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -458,3 +458,3 @@
458 458
  void CplexBase::_applyMessageLevel() {
459
    CPXsetintparam(cplexEnv(), CPX_PARAM_SCRIND, 
459
    CPXsetintparam(cplexEnv(), CPX_PARAM_SCRIND,
460 460
                   _message_enabled ? CPX_ON : CPX_OFF);
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -63,3 +63,3 @@
63 63
  ///This function starts seeking the beginning of the given file for the
64
  ///problem type and size info. 
64
  ///problem type and size info.
65 65
  ///The found data is returned in a special struct that can be evaluated
... ...
@@ -214,3 +214,3 @@
214 214
        std::numeric_limits<Capacity>::max();
215
 
215

	
216 216
    while (is >> c) {
... ...
@@ -239,3 +239,3 @@
239 239
          capacity.set(e, _cap);
240
        } 
240
        }
241 241
        else if (desc.type==DimacsDescriptor::MAX) {
... ...
@@ -364,3 +364,3 @@
364 364
  }
365
  
365

	
366 366
  /// \brief DIMACS plain (di)graph reader function.
... ...
@@ -368,3 +368,3 @@
368 368
  /// This function reads a plain (di)graph without any designated nodes
369
  /// and maps (e.g. a matching instance) from DIMACS format, i.e. from 
369
  /// and maps (e.g. a matching instance) from DIMACS format, i.e. from
370 370
  /// DIMACS files having a line starting with
... ...
@@ -394,3 +394,3 @@
394 394
    }
395
    
395

	
396 396
    while (is >> c) {
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2008
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -28,3 +28,3 @@
28 28
/// \file
29
/// \brief Euler tour iterators and a function for checking the \e Eulerian 
29
/// \brief Euler tour iterators and a function for checking the \e Eulerian
30 30
/// property.
... ...
@@ -43,3 +43,3 @@
43 43
  ///For example, if the given digraph has an Euler tour (i.e it has only one
44
  ///non-trivial component and the in-degree is equal to the out-degree 
44
  ///non-trivial component and the in-degree is equal to the out-degree
45 45
  ///for all nodes), then the following code will put the arcs of \c g
... ...
@@ -140,3 +140,3 @@
140 140
  ///
141
  ///For example, if the given graph has an Euler tour (i.e it has only one 
141
  ///For example, if the given graph has an Euler tour (i.e it has only one
142 142
  ///non-trivial component and the degree of each node is even),
... ...
@@ -149,3 +149,3 @@
149 149
  ///\endcode
150
  ///Although this iterator is for undirected graphs, it still returns 
150
  ///Although this iterator is for undirected graphs, it still returns
151 151
  ///arcs in order to indicate the direction of the tour.
... ...
@@ -235,3 +235,3 @@
235 235
    ///
236
    ///\warning This incrementation returns an \c Arc (which converts to 
236
    ///\warning This incrementation returns an \c Arc (which converts to
237 237
    ///an \c Edge), not an \ref EulerIt, as one may expect.
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2008
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -32,3 +32,3 @@
32 32
    private:
33
      void *_ptr;      
33
      void *_ptr;
34 34
    public:
... ...
@@ -40,4 +40,4 @@
40 40
      template <typename T>
41
      VoidPtr& operator=(T* ptr) { 
42
        _ptr = reinterpret_cast<void*>(ptr); 
41
      VoidPtr& operator=(T* ptr) {
42
        _ptr = reinterpret_cast<void*>(ptr);
43 43
        return *this;
... ...
@@ -125,3 +125,3 @@
125 125
    };
126
    
126

	
127 127
    static FreeEnvHelper freeEnvHelper;
... ...
@@ -129,5 +129,5 @@
129 129
  protected:
130
    
130

	
131 131
    int _message_level;
132
    
132

	
133 133
  public:
Ignore white space 6 line context
1
/* -*- C++ -*-
1
/* -*- mode: C++; indent-tabs-mode: nil; -*-
2 2
 *
3
 * This file is a part of LEMON, a generic C++ optimization library
3
 * This file is a part of LEMON, a generic C++ optimization library.
4 4
 *
5
 * Copyright (C) 2003-2008
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -29,3 +29,3 @@
29 29
/// \ingroup min_cut
30
/// \file 
30
/// \file
31 31
/// \brief Gomory-Hu cut tree in graphs.
... ...
@@ -40,3 +40,3 @@
40 40
  /// may contain edges which are not in the original graph. It has the
41
  /// property that the minimum capacity edge of the path between two nodes 
41
  /// property that the minimum capacity edge of the path between two nodes
42 42
  /// in this tree has the same weight as the minimum cut in the graph
... ...
@@ -46,3 +46,3 @@
46 46
  /// of nodes can easily be obtained.
47
  /// 
47
  ///
48 48
  /// The algorithm calculates \e n-1 distinct minimum cuts (currently with
... ...
@@ -62,6 +62,6 @@
62 62
  template <typename GR,
63
	    typename CAP>
63
            typename CAP>
64 64
#else
65 65
  template <typename GR,
66
	    typename CAP = typename GR::template EdgeMap<int> >
66
            typename CAP = typename GR::template EdgeMap<int> >
67 67
#endif
... ...
@@ -76,3 +76,3 @@
76 76
    typedef typename Capacity::Value Value;
77
    
77

	
78 78
  private:
... ...
@@ -91,9 +91,9 @@
91 91
      if (!_pred) {
92
	_pred = new typename Graph::template NodeMap<Node>(_graph);
92
        _pred = new typename Graph::template NodeMap<Node>(_graph);
93 93
      }
94 94
      if (!_weight) {
95
	_weight = new typename Graph::template NodeMap<Value>(_graph);
95
        _weight = new typename Graph::template NodeMap<Value>(_graph);
96 96
      }
97 97
      if (!_order) {
98
	_order = new typename Graph::template NodeMap<int>(_graph);
98
        _order = new typename Graph::template NodeMap<int>(_graph);
99 99
      }
... ...
@@ -103,12 +103,12 @@
103 103
      if (_pred) {
104
	delete _pred;
104
        delete _pred;
105 105
      }
106 106
      if (_weight) {
107
	delete _weight;
107
        delete _weight;
108 108
      }
109 109
      if (_order) {
110
	delete _order;
110
        delete _order;
111 111
      }
112 112
    }
113
  
113

	
114 114
  public:
... ...
@@ -120,5 +120,5 @@
120 120
    /// \param capacity The edge capacity map.
121
    GomoryHu(const Graph& graph, const Capacity& capacity) 
121
    GomoryHu(const Graph& graph, const Capacity& capacity)
122 122
      : _graph(graph), _capacity(capacity),
123
	_pred(0), _weight(0), _order(0) 
123
        _pred(0), _weight(0), _order(0)
124 124
    {
... ...
@@ -136,3 +136,3 @@
136 136
  private:
137
  
137

	
138 138
    // Initialize the internal data structures
... ...
@@ -147,3 +147,3 @@
147 147
      (*_pred)[_root] = INVALID;
148
      (*_weight)[_root] = std::numeric_limits<Value>::max(); 
148
      (*_weight)[_root] = std::numeric_limits<Value>::max();
149 149
    }
... ...
@@ -156,23 +156,23 @@
156 156
      for (NodeIt n(_graph); n != INVALID; ++n) {
157
	if (n == _root) continue;
157
        if (n == _root) continue;
158 158

	
159
	Node pn = (*_pred)[n];
160
	fa.source(n);
161
	fa.target(pn);
159
        Node pn = (*_pred)[n];
160
        fa.source(n);
161
        fa.target(pn);
162 162

	
163
	fa.runMinCut();
163
        fa.runMinCut();
164 164

	
165
	(*_weight)[n] = fa.flowValue();
165
        (*_weight)[n] = fa.flowValue();
166 166

	
167
	for (NodeIt nn(_graph); nn != INVALID; ++nn) {
168
	  if (nn != n && fa.minCut(nn) && (*_pred)[nn] == pn) {
169
	    (*_pred)[nn] = n;
170
	  }
171
	}
172
	if ((*_pred)[pn] != INVALID && fa.minCut((*_pred)[pn])) {
173
	  (*_pred)[n] = (*_pred)[pn];
174
	  (*_pred)[pn] = n;
175
	  (*_weight)[n] = (*_weight)[pn];
176
	  (*_weight)[pn] = fa.flowValue();
177
	}
167
        for (NodeIt nn(_graph); nn != INVALID; ++nn) {
168
          if (nn != n && fa.minCut(nn) && (*_pred)[nn] == pn) {
169
            (*_pred)[nn] = n;
170
          }
171
        }
172
        if ((*_pred)[pn] != INVALID && fa.minCut((*_pred)[pn])) {
173
          (*_pred)[n] = (*_pred)[pn];
174
          (*_pred)[pn] = n;
175
          (*_weight)[n] = (*_weight)[pn];
176
          (*_weight)[pn] = fa.flowValue();
177
        }
178 178
      }
... ...
@@ -183,12 +183,12 @@
183 183
      for (NodeIt n(_graph); n != INVALID; ++n) {
184
	std::vector<Node> st;
185
	Node nn = n;
186
	while ((*_order)[nn] == -1) {
187
	  st.push_back(nn);
188
	  nn = (*_pred)[nn];
189
	}
190
	while (!st.empty()) {
191
	  (*_order)[st.back()] = index++;
192
	  st.pop_back();
193
	}
184
        std::vector<Node> st;
185
        Node nn = n;
186
        while ((*_order)[nn] == -1) {
187
          st.push_back(nn);
188
          nn = (*_pred)[nn];
189
        }
190
        while (!st.empty()) {
191
          (*_order)[st.back()] = index++;
192
          st.pop_back();
193
        }
194 194
      }
... ...
@@ -199,3 +199,3 @@
199 199
    ///\name Execution Control
200
 
200

	
201 201
    ///@{
... ...
@@ -209,3 +209,3 @@
209 209
    }
210
    
210

	
211 211
    /// @}
... ...
@@ -234,3 +234,3 @@
234 234
    ///
235
    /// This function returns the weight of the predecessor edge of the 
235
    /// This function returns the weight of the predecessor edge of the
236 236
    /// given node in the Gomory-Hu tree.
... ...
@@ -256,3 +256,3 @@
256 256
    /// This function returns the minimum cut value between the nodes
257
    /// \c s and \c t. 
257
    /// \c s and \c t.
258 258
    /// It finds the nearest common ancestor of the given nodes in the
... ...
@@ -265,11 +265,11 @@
265 265
      Value value = std::numeric_limits<Value>::max();
266
      
266

	
267 267
      while (sn != tn) {
268
	if ((*_order)[sn] < (*_order)[tn]) {
269
	  if ((*_weight)[tn] <= value) value = (*_weight)[tn];
270
	  tn = (*_pred)[tn];
271
	} else {
272
	  if ((*_weight)[sn] <= value) value = (*_weight)[sn];
273
	  sn = (*_pred)[sn];
274
	}
268
        if ((*_order)[sn] < (*_order)[tn]) {
269
          if ((*_weight)[tn] <= value) value = (*_weight)[tn];
270
          tn = (*_pred)[tn];
271
        } else {
272
          if ((*_weight)[sn] <= value) value = (*_weight)[sn];
273
          sn = (*_pred)[sn];
274
        }
275 275
      }
... ...
@@ -296,7 +296,7 @@
296 296
    template <typename CutMap>
297
    Value minCutMap(const Node& s, ///< 
297
    Value minCutMap(const Node& s, ///<
298 298
                    const Node& t,
299
                    ///< 
299
                    ///<
300 300
                    CutMap& cutMap
301
                    ///< 
301
                    ///<
302 302
                    ) const {
... ...
@@ -306,19 +306,19 @@
306 306
      Value value = std::numeric_limits<Value>::max();
307
      
307

	
308 308
      while (sn != tn) {
309
	if ((*_order)[sn] < (*_order)[tn]) {
310
	  if ((*_weight)[tn] <= value) {
311
	    rn = tn;
309
        if ((*_order)[sn] < (*_order)[tn]) {
310
          if ((*_weight)[tn] <= value) {
311
            rn = tn;
312 312
            s_root = false;
313
	    value = (*_weight)[tn];
314
	  }
315
	  tn = (*_pred)[tn];
316
	} else {
317
	  if ((*_weight)[sn] <= value) {
318
	    rn = sn;
313
            value = (*_weight)[tn];
314
          }
315
          tn = (*_pred)[tn];
316
        } else {
317
          if ((*_weight)[sn] <= value) {
318
            rn = sn;
319 319
            s_root = true;
320
	    value = (*_weight)[sn];
321
	  }
322
	  sn = (*_pred)[sn];
323
	}
320
            value = (*_weight)[sn];
321
          }
322
          sn = (*_pred)[sn];
323
        }
324 324
      }
... ...
@@ -333,14 +333,14 @@
333 333
      for (NodeIt n(_graph); n != INVALID; ++n) {
334
	st.clear();
334
        st.clear();
335 335
        Node nn = n;
336
	while (!reached[nn]) {
337
	  st.push_back(nn);
338
	  nn = (*_pred)[nn];
339
	}
340
	while (!st.empty()) {
341
	  cutMap.set(st.back(), cutMap[nn]);
342
	  st.pop_back();
343
	}
336
        while (!reached[nn]) {
337
          st.push_back(nn);
338
          nn = (*_pred)[nn];
339
        }
340
        while (!st.empty()) {
341
          cutMap.set(st.back(), cutMap[nn]);
342
          st.pop_back();
343
        }
344 344
      }
345
      
345

	
346 346
      return value;
... ...
@@ -353,3 +353,3 @@
353 353
    /// Iterate on the nodes of a minimum cut
354
    
354

	
355 355
    /// This iterator class lists the nodes of a minimum cut found by
... ...
@@ -446,7 +446,7 @@
446 446
    };
447
    
447

	
448 448
    friend class MinCutEdgeIt;
449
    
449

	
450 450
    /// Iterate on the edges of a minimum cut
451
    
451

	
452 452
    /// This iterator class lists the edges of a minimum cut found by
... ...
@@ -483,3 +483,3 @@
483 483
      }
484
      
484

	
485 485
    public:
... ...
@@ -552,3 +552,3 @@
552 552
      /// Postfix incrementation
553
      
553

	
554 554
      /// Postfix incrementation.
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -33,3 +33,3 @@
33 33
///
34
/// Implementation of the Hao-Orlin algorithm for finding a minimum cut 
34
/// Implementation of the Hao-Orlin algorithm for finding a minimum cut
35 35
/// in a digraph.
... ...
@@ -43,3 +43,3 @@
43 43
  /// This class implements the Hao-Orlin algorithm for finding a minimum
44
  /// value cut in a directed graph \f$D=(V,A)\f$. 
44
  /// value cut in a directed graph \f$D=(V,A)\f$.
45 45
  /// It takes a fixed node \f$ source \in V \f$ and
... ...
@@ -60,3 +60,3 @@
60 60
  /// algorithm or you can use the algorithm of Nagamochi and Ibaraki,
61
  /// which solves the undirected problem in \f$ O(nm + n^2 \log n) \f$ 
61
  /// which solves the undirected problem in \f$ O(nm + n^2 \log n) \f$
62 62
  /// time. It is implemented in the NagamochiIbaraki algorithm class.
... ...
@@ -78,3 +78,3 @@
78 78
  public:
79
   
79

	
80 80
    /// The digraph type of the algorithm
... ...
@@ -849,3 +849,3 @@
849 849
    /// This function initializes the internal data structures. It creates
850
    /// the maps and some bucket structures for the algorithm. 
850
    /// the maps and some bucket structures for the algorithm.
851 851
    /// The given node is used as the source node for the push-relabel
... ...
@@ -929,3 +929,3 @@
929 929
    ///
930
    /// This function runs the algorithm. It uses the given \c source node, 
930
    /// This function runs the algorithm. It uses the given \c source node,
931 931
    /// finds a proper \c target node and then calls the \ref init(),
... ...
@@ -943,3 +943,3 @@
943 943
    /// can be obtained using these functions.\n
944
    /// \ref run(), \ref calculateOut() or \ref calculateIn() 
944
    /// \ref run(), \ref calculateOut() or \ref calculateIn()
945 945
    /// should be called before using them.
... ...
@@ -952,3 +952,3 @@
952 952
    ///
953
    /// \pre \ref run(), \ref calculateOut() or \ref calculateIn() 
953
    /// \pre \ref run(), \ref calculateOut() or \ref calculateIn()
954 954
    /// must be called before using this function.
... ...
@@ -971,3 +971,3 @@
971 971
    ///
972
    /// \pre \ref run(), \ref calculateOut() or \ref calculateIn() 
972
    /// \pre \ref run(), \ref calculateOut() or \ref calculateIn()
973 973
    /// must be called before using this function.
Ignore white space 6 line context
... ...
@@ -564,3 +564,3 @@
564 564
    template <typename TDGR>
565
    friend DigraphReader<TDGR> digraphReader(TDGR& digraph, 
565
    friend DigraphReader<TDGR> digraphReader(TDGR& digraph,
566 566
                                             const std::string& fn);
... ...
@@ -1196,3 +1196,3 @@
1196 1196
  };
1197
  
1197

	
1198 1198
  /// \ingroup lemon_io
... ...
@@ -1203,3 +1203,3 @@
1203 1203
  ///
1204
  /// With this function a digraph can be read from an 
1204
  /// With this function a digraph can be read from an
1205 1205
  /// \ref lgf-format "LGF" file or input stream with several maps and
... ...
@@ -1258,3 +1258,3 @@
1258 1258
  class GraphReader;
1259
 
1259

	
1260 1260
  template <typename TGR>
... ...
@@ -1395,3 +1395,3 @@
1395 1395
    template <typename TGR>
1396
    friend GraphReader<TGR> graphReader(TGR& graph, const std::string& fn); 
1396
    friend GraphReader<TGR> graphReader(TGR& graph, const std::string& fn);
1397 1397
    template <typename TGR>
... ...
@@ -2079,5 +2079,5 @@
2079 2079
  ///
2080
  /// This function just returns a \ref GraphReader class. 
2080
  /// This function just returns a \ref GraphReader class.
2081 2081
  ///
2082
  /// With this function a graph can be read from an 
2082
  /// With this function a graph can be read from an
2083 2083
  /// \ref lgf-format "LGF" file or input stream with several maps and
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -353,3 +353,3 @@
353 353
  template <typename TDGR>
354
  DigraphWriter<TDGR> digraphWriter(const TDGR& digraph, 
354
  DigraphWriter<TDGR> digraphWriter(const TDGR& digraph,
355 355
                                   std::ostream& os = std::cout);
... ...
@@ -506,3 +506,3 @@
506 506
    template <typename TDGR>
507
    friend DigraphWriter<TDGR> digraphWriter(const TDGR& digraph, 
507
    friend DigraphWriter<TDGR> digraphWriter(const TDGR& digraph,
508 508
                                             std::ostream& os);
... ...
@@ -919,3 +919,3 @@
919 919
  ///
920
  /// This function just returns a \ref DigraphWriter class. 
920
  /// This function just returns a \ref DigraphWriter class.
921 921
  ///
... ...
@@ -959,3 +959,3 @@
959 959
  template <typename TDGR>
960
  DigraphWriter<TDGR> digraphWriter(const TDGR& digraph, 
960
  DigraphWriter<TDGR> digraphWriter(const TDGR& digraph,
961 961
                                    const std::string& fn) {
... ...
@@ -1103,3 +1103,3 @@
1103 1103
    template <typename TGR>
1104
    friend GraphWriter<TGR> graphWriter(const TGR& graph, 
1104
    friend GraphWriter<TGR> graphWriter(const TGR& graph,
1105 1105
                                        const std::string& fn);
... ...
@@ -1107,3 +1107,3 @@
1107 1107
    friend GraphWriter<TGR> graphWriter(const TGR& graph, const char *fn);
1108
    
1108

	
1109 1109
    GraphWriter(GraphWriter& other)
... ...
@@ -1558,3 +1558,3 @@
1558 1558
  ///
1559
  /// This function just returns a \ref GraphWriter class. 
1559
  /// This function just returns a \ref GraphWriter class.
1560 1560
  ///
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2008
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -86,3 +86,3 @@
86 86
# define DEFAULT_LP CLP
87
  typedef ClpLp Lp;  
87
  typedef ClpLp Lp;
88 88
#endif
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2008
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2008
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -84,3 +84,3 @@
84 84
    };
85
    
85

	
86 86

	
... ...
@@ -116,3 +116,3 @@
116 116
      /// Default constructor
117
      
117

	
118 118
      /// \warning The default constructor sets the Col to an
... ...
@@ -121,5 +121,5 @@
121 121
      /// Invalid constructor \& conversion.
122
      
122

	
123 123
      /// This constructor initializes the Col to be invalid.
124
      /// \sa Invalid for more details.      
124
      /// \sa Invalid for more details.
125 125
      Col(const Invalid&) : _id(-1) {}
... ...
@@ -158,3 +158,3 @@
158 158
      /// Default constructor
159
      
159

	
160 160
      /// \warning The default constructor sets the iterator
... ...
@@ -163,3 +163,3 @@
163 163
      /// Sets the iterator to the first Col
164
      
164

	
165 165
      /// Sets the iterator to the first Col.
... ...
@@ -171,3 +171,3 @@
171 171
      /// Invalid constructor \& conversion
172
      
172

	
173 173
      /// Initialize the iterator to be invalid.
... ...
@@ -176,3 +176,3 @@
176 176
      /// Next column
177
      
177

	
178 178
      /// Assign the iterator to the next column.
... ...
@@ -211,3 +211,3 @@
211 211
      /// Default constructor
212
      
212

	
213 213
      /// \warning The default constructor sets the Row to an
... ...
@@ -216,5 +216,5 @@
216 216
      /// Invalid constructor \& conversion.
217
      
217

	
218 218
      /// This constructor initializes the Row to be invalid.
219
      /// \sa Invalid for more details.      
219
      /// \sa Invalid for more details.
220 220
      Row(const Invalid&) : _id(-1) {}
... ...
@@ -226,3 +226,3 @@
226 226
      /// Inequality operator
227
      
227

	
228 228
      /// \sa operator==(Row r)
... ...
@@ -253,3 +253,3 @@
253 253
      /// Default constructor
254
      
254

	
255 255
      /// \warning The default constructor sets the iterator
... ...
@@ -258,3 +258,3 @@
258 258
      /// Sets the iterator to the first Row
259
      
259

	
260 260
      /// Sets the iterator to the first Row.
... ...
@@ -266,3 +266,3 @@
266 266
      /// Invalid constructor \& conversion
267
      
267

	
268 268
      /// Initialize the iterator to be invalid.
... ...
@@ -271,3 +271,3 @@
271 271
      /// Next row
272
      
272

	
273 273
      /// Assign the iterator to the next row.
... ...
@@ -349,3 +349,3 @@
349 349
      /// Default constructor
350
      
350

	
351 351
      /// Construct an empty expression, the coefficients and
... ...
@@ -450,5 +450,5 @@
450 450
      ///Iterator over the expression
451
      
452
      ///The iterator iterates over the terms of the expression. 
453
      /// 
451

	
452
      ///The iterator iterates over the terms of the expression.
453
      ///
454 454
      ///\code
... ...
@@ -466,3 +466,3 @@
466 466
        /// Sets the iterator to the first term
467
        
467

	
468 468
        /// Sets the iterator to the first term of the expression.
... ...
@@ -483,3 +483,3 @@
483 483
        /// Next term
484
        
484

	
485 485
        /// Assign the iterator to the next term.
... ...
@@ -495,5 +495,5 @@
495 495
      /// Const iterator over the expression
496
      
497
      ///The iterator iterates over the terms of the expression. 
498
      /// 
496

	
497
      ///The iterator iterates over the terms of the expression.
498
      ///
499 499
      ///\code
... ...
@@ -511,3 +511,3 @@
511 511
        /// Sets the iterator to the first term
512
        
512

	
513 513
        /// Sets the iterator to the first term of the expression.
... ...
@@ -526,3 +526,3 @@
526 526
        /// Next term
527
        
527

	
528 528
        /// Assign the iterator to the next term.
... ...
@@ -675,3 +675,3 @@
675 675
      /// Default constructor
676
      
676

	
677 677
      /// Construct an empty expression, the coefficients are
... ...
@@ -710,3 +710,3 @@
710 710
      /// \brief Removes the coefficients which's absolute value does
711
      /// not exceed \c epsilon. 
711
      /// not exceed \c epsilon.
712 712
      void simplify(Value epsilon = 0.0) {
... ...
@@ -759,5 +759,5 @@
759 759
      ///Iterator over the expression
760
      
761
      ///The iterator iterates over the terms of the expression. 
762
      /// 
760

	
761
      ///The iterator iterates over the terms of the expression.
762
      ///
763 763
      ///\code
... ...
@@ -775,3 +775,3 @@
775 775
        /// Sets the iterator to the first term
776
        
776

	
777 777
        /// Sets the iterator to the first term of the expression.
... ...
@@ -793,3 +793,3 @@
793 793
        /// Next term
794
        
794

	
795 795
        /// Assign the iterator to the next term.
... ...
@@ -805,5 +805,5 @@
805 805
      ///Iterator over the expression
806
      
807
      ///The iterator iterates over the terms of the expression. 
808
      /// 
806

	
807
      ///The iterator iterates over the terms of the expression.
808
      ///
809 809
      ///\code
... ...
@@ -821,3 +821,3 @@
821 821
        /// Sets the iterator to the first term
822
        
822

	
823 823
        /// Sets the iterator to the first term of the expression.
... ...
@@ -836,3 +836,3 @@
836 836
        /// Next term
837
        
837

	
838 838
        /// Assign the iterator to the next term.
... ...
@@ -1805,6 +1805,6 @@
1805 1805
      /// The variable is in the basis
1806
      BASIC, 
1806
      BASIC,
1807 1807
      /// The variable is free, but not basic
1808 1808
      FREE,
1809
      /// The variable has active lower bound 
1809
      /// The variable has active lower bound
1810 1810
      LOWER,
... ...
@@ -1887,3 +1887,3 @@
1887 1887
    /// Returns a component of the primal ray
1888
    
1888

	
1889 1889
    /// The primal ray is solution of the modified primal problem,
... ...
@@ -1921,3 +1921,3 @@
1921 1921
    /// Returns a component of the dual ray
1922
    
1922

	
1923 1923
    /// The dual ray is solution of the modified primal problem, where
... ...
@@ -2063,3 +2063,3 @@
2063 2063
    ///The value of the objective function
2064
    
2064

	
2065 2065
    ///\return
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2008
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2008
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -25,3 +25,3 @@
25 25
///\brief Skeleton file to implement LP/MIP solver interfaces
26
///  
26
///
27 27
///The classes in this file do nothing, but they can serve as skeletons when
... ...
@@ -31,3 +31,3 @@
31 31
  ///A skeleton class to implement LP/MIP solver base interface
32
  
32

	
33 33
  ///This class does nothing, but it can serve as a skeleton when
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -1820,3 +1820,3 @@
1820 1820
  /// IdMap provides a unique and immutable id for each item of the
1821
  /// same type (\c Node, \c Arc or \c Edge) in a graph. This id is 
1821
  /// same type (\c Node, \c Arc or \c Edge) in a graph. This id is
1822 1822
  ///  - \b unique: different items get different ids,
... ...
@@ -2275,3 +2275,3 @@
2275 2275
    /// \brief Gives back the item belonging to a \e RangeId
2276
    /// 
2276
    ///
2277 2277
    /// Gives back the item belonging to a \e RangeId.
... ...
@@ -2501,3 +2501,3 @@
2501 2501
  ///
2502
  /// \warning Besides \c addNode() and \c addArc(), a digraph structure 
2502
  /// \warning Besides \c addNode() and \c addArc(), a digraph structure
2503 2503
  /// may provide alternative ways to modify the digraph.
... ...
@@ -2517,3 +2517,3 @@
2517 2517
  public:
2518
    
2518

	
2519 2519
    /// The graph type of InDegMap
... ...
@@ -2631,3 +2631,3 @@
2631 2631
  ///
2632
  /// \warning Besides \c addNode() and \c addArc(), a digraph structure 
2632
  /// \warning Besides \c addNode() and \c addArc(), a digraph structure
2633 2633
  /// may provide alternative ways to modify the digraph.
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -43,3 +43,3 @@
43 43
  /// for finding a maximum cardinality matching in a general undirected graph.
44
  /// It can be started from an arbitrary initial matching 
44
  /// It can be started from an arbitrary initial matching
45 45
  /// (the default is the empty one).
... ...
@@ -71,3 +71,3 @@
71 71
    ///
72
    ///These constants are used for indicating the Gallai-Edmonds 
72
    ///These constants are used for indicating the Gallai-Edmonds
73 73
    ///decomposition of a graph. The nodes with status \c EVEN (or \c D)
... ...
@@ -75,3 +75,3 @@
75 75
    ///status \c ODD (or \c A) form the canonical barrier, and the nodes
76
    ///with status \c MATCHED (or \c C) induce a subgraph having a 
76
    ///with status \c MATCHED (or \c C) induce a subgraph having a
77 77
    ///perfect matching.
... ...
@@ -514,3 +514,3 @@
514 514

	
515
    /// \brief Start Edmonds' algorithm with a heuristic improvement 
515
    /// \brief Start Edmonds' algorithm with a heuristic improvement
516 516
    /// for dense graphs
... ...
@@ -536,4 +536,4 @@
536 536
    ///
537
    /// This function runs Edmonds' algorithm. An additional heuristic of 
538
    /// postponing shrinks is used for relatively dense graphs 
537
    /// This function runs Edmonds' algorithm. An additional heuristic of
538
    /// postponing shrinks is used for relatively dense graphs
539 539
    /// (for which <tt>m>=2*n</tt> holds).
... ...
@@ -558,3 +558,3 @@
558 558
    ///
559
    /// This function returns the size (cardinality) of the current matching. 
559
    /// This function returns the size (cardinality) of the current matching.
560 560
    /// After run() it returns the size of the maximum matching in the graph.
... ...
@@ -572,3 +572,3 @@
572 572
    ///
573
    /// This function returns \c true if the given edge is in the current 
573
    /// This function returns \c true if the given edge is in the current
574 574
    /// matching.
... ...
@@ -581,3 +581,3 @@
581 581
    /// This function returns the matching arc (or edge) incident to the
582
    /// given node in the current matching or \c INVALID if the node is 
582
    /// given node in the current matching or \c INVALID if the node is
583 583
    /// not covered by the matching.
... ...
@@ -597,3 +597,3 @@
597 597
    ///
598
    /// This function returns the mate of the given node in the current 
598
    /// This function returns the mate of the given node in the current
599 599
    /// matching or \c INVALID if the node is not covered by the matching.
... ...
@@ -607,3 +607,3 @@
607 607
    /// \name Dual Solution
608
    /// Functions to get the dual solution, i.e. the Gallai-Edmonds 
608
    /// Functions to get the dual solution, i.e. the Gallai-Edmonds
609 609
    /// decomposition.
... ...
@@ -650,4 +650,4 @@
650 650
  ///
651
  /// The maximum weighted matching problem is to find a subset of the 
652
  /// edges in an undirected graph with maximum overall weight for which 
651
  /// The maximum weighted matching problem is to find a subset of the
652
  /// edges in an undirected graph with maximum overall weight for which
653 653
  /// each node has at most one incident edge.
... ...
@@ -675,7 +675,7 @@
675 675
  ///
676
  /// The algorithm can be executed with the run() function. 
676
  /// The algorithm can be executed with the run() function.
677 677
  /// After it the matching (the primal solution) and the dual solution
678
  /// can be obtained using the query functions and the 
679
  /// \ref MaxWeightedMatching::BlossomIt "BlossomIt" nested class, 
680
  /// which is able to iterate on the nodes of a blossom. 
678
  /// can be obtained using the query functions and the
679
  /// \ref MaxWeightedMatching::BlossomIt "BlossomIt" nested class,
680
  /// which is able to iterate on the nodes of a blossom.
681 681
  /// If the value type is integer, then the dual solution is multiplied
... ...
@@ -684,3 +684,3 @@
684 684
  /// \tparam GR The undirected graph type the algorithm runs on.
685
  /// \tparam WM The type edge weight map. The default type is 
685
  /// \tparam WM The type edge weight map. The default type is
686 686
  /// \ref concepts::Graph::EdgeMap "GR::EdgeMap<int>".
... ...
@@ -1722,3 +1722,3 @@
1722 1722
      }
1723
      
1723

	
1724 1724
      _delta1->clear();
... ...
@@ -1870,3 +1870,3 @@
1870 1870
    /// \name Primal Solution
1871
    /// Functions to get the primal solution, i.e. the maximum weighted 
1871
    /// Functions to get the primal solution, i.e. the maximum weighted
1872 1872
    /// matching.\n
... ...
@@ -1909,3 +1909,3 @@
1909 1909
    ///
1910
    /// This function returns \c true if the given edge is in the found 
1910
    /// This function returns \c true if the given edge is in the found
1911 1911
    /// matching.
... ...
@@ -1920,3 +1920,3 @@
1920 1920
    /// This function returns the matching arc (or edge) incident to the
1921
    /// given node in the found matching or \c INVALID if the node is 
1921
    /// given node in the found matching or \c INVALID if the node is
1922 1922
    /// not covered by the matching.
... ...
@@ -1938,3 +1938,3 @@
1938 1938
    ///
1939
    /// This function returns the mate of the given node in the found 
1939
    /// This function returns the mate of the given node in the found
1940 1940
    /// matching or \c INVALID if the node is not covered by the matching.
... ...
@@ -1958,4 +1958,4 @@
1958 1958
    ///
1959
    /// This function returns the value of the dual solution. 
1960
    /// It should be equal to the primal value scaled by \ref dualScale 
1959
    /// This function returns the value of the dual solution.
1960
    /// It should be equal to the primal value scaled by \ref dualScale
1961 1961
    /// "dual scale".
... ...
@@ -2014,5 +2014,5 @@
2014 2014
    ///
2015
    /// This class provides an iterator for obtaining the nodes of the 
2015
    /// This class provides an iterator for obtaining the nodes of the
2016 2016
    /// given blossom. It lists a subset of the nodes.
2017
    /// Before using this iterator, you must allocate a 
2017
    /// Before using this iterator, you must allocate a
2018 2018
    /// MaxWeightedMatching class and execute it.
... ...
@@ -2025,4 +2025,4 @@
2025 2025
      ///
2026
      /// \pre Either \ref MaxWeightedMatching::run() "algorithm.run()" or 
2027
      /// \ref MaxWeightedMatching::start() "algorithm.start()" must be 
2026
      /// \pre Either \ref MaxWeightedMatching::run() "algorithm.run()" or
2027
      /// \ref MaxWeightedMatching::start() "algorithm.start()" must be
2028 2028
      /// called before initializing this iterator.
... ...
@@ -2079,4 +2079,4 @@
2079 2079
  ///
2080
  /// The maximum weighted perfect matching problem is to find a subset of 
2081
  /// the edges in an undirected graph with maximum overall weight for which 
2080
  /// The maximum weighted perfect matching problem is to find a subset of
2081
  /// the edges in an undirected graph with maximum overall weight for which
2082 2082
  /// each node has exactly one incident edge.
... ...
@@ -2103,7 +2103,7 @@
2103 2103
  ///
2104
  /// The algorithm can be executed with the run() function. 
2104
  /// The algorithm can be executed with the run() function.
2105 2105
  /// After it the matching (the primal solution) and the dual solution
2106
  /// can be obtained using the query functions and the 
2107
  /// \ref MaxWeightedPerfectMatching::BlossomIt "BlossomIt" nested class, 
2108
  /// which is able to iterate on the nodes of a blossom. 
2106
  /// can be obtained using the query functions and the
2107
  /// \ref MaxWeightedPerfectMatching::BlossomIt "BlossomIt" nested class,
2108
  /// which is able to iterate on the nodes of a blossom.
2109 2109
  /// If the value type is integer, then the dual solution is multiplied
... ...
@@ -2112,3 +2112,3 @@
2112 2112
  /// \tparam GR The undirected graph type the algorithm runs on.
2113
  /// \tparam WM The type edge weight map. The default type is 
2113
  /// \tparam WM The type edge weight map. The default type is
2114 2114
  /// \ref concepts::Graph::EdgeMap "GR::EdgeMap<int>".
... ...
@@ -3117,3 +3117,3 @@
3117 3117
    /// \name Primal Solution
3118
    /// Functions to get the primal solution, i.e. the maximum weighted 
3118
    /// Functions to get the primal solution, i.e. the maximum weighted
3119 3119
    /// perfect matching.\n
... ...
@@ -3141,3 +3141,3 @@
3141 3141
    ///
3142
    /// This function returns \c true if the given edge is in the found 
3142
    /// This function returns \c true if the given edge is in the found
3143 3143
    /// matching.
... ...
@@ -3152,3 +3152,3 @@
3152 3152
    /// This function returns the matching arc (or edge) incident to the
3153
    /// given node in the found matching or \c INVALID if the node is 
3153
    /// given node in the found matching or \c INVALID if the node is
3154 3154
    /// not covered by the matching.
... ...
@@ -3170,3 +3170,3 @@
3170 3170
    ///
3171
    /// This function returns the mate of the given node in the found 
3171
    /// This function returns the mate of the given node in the found
3172 3172
    /// matching or \c INVALID if the node is not covered by the matching.
... ...
@@ -3189,4 +3189,4 @@
3189 3189
    ///
3190
    /// This function returns the value of the dual solution. 
3191
    /// It should be equal to the primal value scaled by \ref dualScale 
3190
    /// This function returns the value of the dual solution.
3191
    /// It should be equal to the primal value scaled by \ref dualScale
3192 3192
    /// "dual scale".
... ...
@@ -3245,5 +3245,5 @@
3245 3245
    ///
3246
    /// This class provides an iterator for obtaining the nodes of the 
3246
    /// This class provides an iterator for obtaining the nodes of the
3247 3247
    /// given blossom. It lists a subset of the nodes.
3248
    /// Before using this iterator, you must allocate a 
3248
    /// Before using this iterator, you must allocate a
3249 3249
    /// MaxWeightedPerfectMatching class and execute it.
... ...
@@ -3256,4 +3256,4 @@
3256 3256
      ///
3257
      /// \pre Either \ref MaxWeightedPerfectMatching::run() "algorithm.run()" 
3258
      /// or \ref MaxWeightedPerfectMatching::start() "algorithm.start()" 
3257
      /// \pre Either \ref MaxWeightedPerfectMatching::run() "algorithm.run()"
3258
      /// or \ref MaxWeightedPerfectMatching::start() "algorithm.start()"
3259 3259
      /// must be called before initializing this iterator.
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -58,3 +58,3 @@
58 58
  ///Check whether the parameter is NaN or not
59
  
59

	
60 60
  ///This function checks whether the parameter is NaN or not.
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2008
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -129,4 +129,4 @@
129 129

	
130
    /// \brief The \ref MinCostArborescenceDefaultTraits "traits class" 
131
    /// of the algorithm. 
130
    /// \brief The \ref MinCostArborescenceDefaultTraits "traits class"
131
    /// of the algorithm.
132 132
    typedef TR Traits;
... ...
@@ -437,3 +437,3 @@
437 437
    /// \c PredMap type.
438
    /// It must meet the \ref concepts::WriteMap "WriteMap" concept, 
438
    /// It must meet the \ref concepts::WriteMap "WriteMap" concept,
439 439
    /// and its value type must be the \c Arc type of the digraph.
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -97,3 +97,3 @@
97 97
    };
98
    
98

	
99 99
    /// \brief Constants for selecting the type of the supply constraints.
... ...
@@ -115,3 +115,3 @@
115 115
    };
116
    
116

	
117 117
    /// \brief Constants for selecting the pivot rule.
... ...
@@ -158,3 +158,3 @@
158 158
    };
159
    
159

	
160 160
  private:
... ...
@@ -225,3 +225,3 @@
225 225
  public:
226
  
226

	
227 227
    /// \brief Constant for infinite upper bounds (capacities).
... ...
@@ -646,3 +646,3 @@
646 646
        "The cost type of NetworkSimplex must be signed");
647
        
647

	
648 648
      // Resize vectors
... ...
@@ -686,3 +686,3 @@
686 686
      }
687
      
687

	
688 688
      // Initialize maps
... ...
@@ -811,3 +811,3 @@
811 811
    }
812
    
812

	
813 813
    /// \brief Set the type of the supply constraints.
... ...
@@ -837,3 +837,3 @@
837 837
    /// The paramters can be specified using functions \ref lowerMap(),
838
    /// \ref upperMap(), \ref costMap(), \ref supplyMap(), \ref stSupply(), 
838
    /// \ref upperMap(), \ref costMap(), \ref supplyMap(), \ref stSupply(),
839 839
    /// \ref supplyType().
... ...
@@ -1056,3 +1056,3 @@
1056 1056
      }
1057
      
1057

	
1058 1058
      // Set data for the artificial root node
... ...
@@ -1230,3 +1230,3 @@
1230 1230
        e = _pred[u];
1231
        d = _forward[u] ? 
1231
        d = _forward[u] ?
1232 1232
          (_cap[e] == INF ? INF : _cap[e] - _flow[e]) : _flow[e];
... ...
@@ -1437,3 +1437,3 @@
1437 1437
      }
1438
      
1438

	
1439 1439
      // Check feasibility
... ...
@@ -1454,3 +1454,3 @@
1454 1454
      }
1455
      
1455

	
1456 1456
      // Shift potentials to meet the requirements of the GEQ/LEQ type
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -968,3 +968,3 @@
968 968

	
969
    
969

	
970 970
    template <typename From, typename To,
... ...
@@ -974,3 +974,3 @@
974 974
        PathCopySelectorForward<From, To>::copy(from, to);
975
      }      
975
      }
976 976
    };
... ...
@@ -981,3 +981,3 @@
981 981
        PathCopySelectorBackward<From, To>::copy(from, to);
982
      }      
982
      }
983 983
    };
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -538,6 +538,6 @@
538 538
      }
539
      for (NodeIt n(_graph); n != INVALID; ++n) 
539
      for (NodeIt n(_graph); n != INVALID; ++n)
540 540
        if(n!=_source && n!=_target && _tolerance.positive((*_excess)[n]))
541 541
          _level->activate(n);
542
          
542

	
543 543
      return true;
... ...
@@ -569,3 +569,3 @@
569 569
          --num;
570
          
570

	
571 571
          Value excess = (*_excess)[n];
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2008
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -276,3 +276,3 @@
276 276
    _clear_temporals();
277
    
277

	
278 278
    _applyMessageLevel();
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2008
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -85,3 +85,3 @@
85 85
    i = const_bfs_test.queueSize();
86
    
86

	
87 87
    bfs_test.start();
... ...
@@ -106,3 +106,3 @@
106 106
      ::Create bfs_test(G);
107
      
107

	
108 108
    concepts::ReadWriteMap<Node,Arc> pred_map;
... ...
@@ -111,3 +111,3 @@
111 111
    concepts::WriteMap<Node,bool> processed_map;
112
    
112

	
113 113
    bfs_test
... ...
@@ -121,3 +121,3 @@
121 121
    bfs_test.run();
122
    
122

	
123 123
    bfs_test.init();
... ...
@@ -130,3 +130,3 @@
130 130
    i = bfs_test.queueSize();
131
    
131

	
132 132
    bfs_test.start();
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -83,3 +83,3 @@
83 83
  const CirculationType& const_circ_test = circ_test;
84
   
84

	
85 85
  circ_test
... ...
@@ -99,3 +99,3 @@
99 99
  const_circ_test.barrierMap(bar);
100
  
100

	
101 101
  ignore_unused_variable_warning(fm);
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -31,3 +31,3 @@
31 31
  typedef Undirector<Digraph> Graph;
32
  
32

	
33 33
  {
... ...
@@ -36,3 +36,3 @@
36 36
    Graph g(d);
37
    
37

	
38 38
    check(stronglyConnected(d), "The empty digraph is strongly connected");
... ...
@@ -50,3 +50,3 @@
50 50
          "The empty graph has 0 bi-edge-connected component");
51
          
51

	
52 52
    check(dag(d), "The empty digraph is DAG.");
... ...
@@ -84,3 +84,3 @@
84 84
          "This graph has 1 bi-edge-connected component");
85
          
85

	
86 86
    check(dag(d), "This digraph is DAG.");
... ...
@@ -103,3 +103,3 @@
103 103
    Graph g(d);
104
    
104

	
105 105
    Digraph::Node n1 = d.addNode();
... ...
@@ -110,3 +110,3 @@
110 110
    Digraph::Node n6 = d.addNode();
111
    
111

	
112 112
    d.addArc(n1, n3);
... ...
@@ -138,5 +138,5 @@
138 138
    check(!simpleGraph(g), "This graph is not simple.");
139
    
139

	
140 140
    d.addArc(n3, n3);
141
    
141

	
142 142
    check(!loopFree(d), "This digraph is not loop-free.");
... ...
@@ -144,8 +144,8 @@
144 144
    check(!simpleGraph(d), "This digraph is not simple.");
145
    
145

	
146 146
    d.addArc(n3, n2);
147
    
147

	
148 148
    check(!parallelFree(d), "This digraph is not parallel-free.");
149 149
  }
150
  
150

	
151 151
  {
... ...
@@ -154,3 +154,3 @@
154 154
    Graph g(d);
155
    
155

	
156 156
    Digraph::Node n1 = d.addNode();
... ...
@@ -174,3 +174,3 @@
174 174
    d.addArc(n7, n6);
175
   
175

	
176 176
    check(!stronglyConnected(d), "This digraph is not strongly connected");
... ...
@@ -237,3 +237,3 @@
237 237
    Digraph::NodeMap<int> order(d);
238
    
238

	
239 239
    Digraph::Node belt = d.addNode();
... ...
@@ -257,3 +257,3 @@
257 257
    d.addArc(necktie, coat);
258
    
258

	
259 259
    check(dag(d), "This digraph is DAG.");
... ...
@@ -269,3 +269,3 @@
269 269
    ListGraph::NodeMap<bool> map(g);
270
    
270

	
271 271
    ListGraph::Node n1 = g.addNode();
... ...
@@ -285,6 +285,6 @@
285 285
    g.addEdge(n5, n7);
286
   
286

	
287 287
    check(bipartite(g), "This graph is bipartite");
288 288
    check(bipartitePartitions(g, map), "This graph is bipartite");
289
    
289

	
290 290
    check(map[n1] == map[n2] && map[n1] == map[n6] && map[n1] == map[n7],
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -88,3 +88,3 @@
88 88
    i = const_dfs_test.queueSize();
89
    
89

	
90 90
    dfs_test.start();
... ...
@@ -114,3 +114,3 @@
114 114
    concepts::WriteMap<Node,bool> processed_map;
115
    
115

	
116 116
    dfs_test
... ...
@@ -131,3 +131,3 @@
131 131
    i = dfs_test.queueSize();
132
    
132

	
133 133
    dfs_test.start();
... ...
@@ -221,3 +221,3 @@
221 221
  }
222
  
222

	
223 223
  {
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -87,3 +87,3 @@
87 87
    i = const_dijkstra_test.queueSize();
88
    
88

	
89 89
    dijkstra_test.start();
... ...
@@ -111,3 +111,3 @@
111 111
      ::SetStandardHeap<BinHeap<VType, concepts::ReadWriteMap<Node,int> > >
112
      ::SetHeap<BinHeap<VType, concepts::ReadWriteMap<Node,int> >, 
112
      ::SetHeap<BinHeap<VType, concepts::ReadWriteMap<Node,int> >,
113 113
                concepts::ReadWriteMap<Node,int> >
... ...
@@ -121,3 +121,3 @@
121 121
    BinHeap<VType, concepts::ReadWriteMap<Node,int> > heap(heap_cross_ref);
122
    
122

	
123 123
    dijkstra_test
... ...
@@ -138,3 +138,3 @@
138 138
    i = dijkstra_test.queueSize();
139
    
139

	
140 140
    dijkstra_test.start();
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2008
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
Show white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -87,3 +87,3 @@
87 87
  typedef Undirector<Digraph> Graph;
88
  
88

	
89 89
  {
... ...
@@ -91,3 +91,3 @@
91 91
    Graph g(d);
92
    
92

	
93 93
    checkDiEulerIt(d);
... ...
@@ -130,3 +130,3 @@
130 130
    Digraph::Node n3 = d.addNode();
131
    
131

	
132 132
    d.addArc(n1, n2);
... ...
@@ -155,3 +155,3 @@
155 155
    Digraph::Node n6 = d.addNode();
156
    
156

	
157 157
    d.addArc(n1, n2);
... ...
@@ -191,3 +191,3 @@
191 191
    Digraph::Node n5 = d.addNode();
192
    
192

	
193 193
    d.addArc(n1, n2);
... ...
@@ -213,3 +213,3 @@
213 213
    Digraph::Node n3 = d.addNode();
214
    
214

	
215 215
    d.addArc(n1, n2);
Ignore white space 6 line context
1
/* -*- mode: C++; indent-tabs-mode: nil; -*-
2
 *
3
 * This file is a part of LEMON, a generic C++ optimization library.
4
 *
5
 * Copyright (C) 2003-2011
6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
7
 * (Egervary Research Group on Combinatorial Optimization, EGRES).
8
 *
9
 * Permission to use, modify and distribute this software is granted
10
 * provided that this copyright notice appears in all copies. For
11
 * precise terms see the accompanying LICENSE file.
12
 *
13
 * This software is provided "AS IS" with no warranty of any kind,
14
 * express or implied, and with no claim as to its suitability for any
15
 * purpose.
16
 *
17
 */
18

	
1 19
#include <iostream>
... ...
@@ -35,3 +53,3 @@
35 53
  "target 3\n";
36
  
54

	
37 55
void checkGomoryHuCompile()
... ...
@@ -71,3 +89,3 @@
71 89
int cutValue(const Graph& graph, const BoolNodeMap& cut,
72
	     const IntEdgeMap& capacity) {
90
             const IntEdgeMap& capacity) {
73 91

	
... ...
@@ -109,3 +127,3 @@
109 127
      for(GomoryHu<Graph>::MinCutEdgeIt a(ght, u, v);a!=INVALID;++a)
110
        sum+=capacity[a]; 
128
        sum+=capacity[a];
111 129
      check(sum == ght.minCutValue(u, v), "Problem with MinCutEdgeIt");
... ...
@@ -120,3 +138,3 @@
120 138
  }
121
  
139

	
122 140
  return 0;
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -72,3 +72,3 @@
72 72
    node(fn, tn).arc(fa, ta).run();
73
  
73

	
74 74
  check(countNodes(from) == countNodes(to), "Wrong copy.");
... ...
@@ -100,3 +100,3 @@
100 100
  digraphCopy(from, to).run();
101
  
101

	
102 102
  check(countNodes(from) == countNodes(to), "Wrong copy.");
... ...
@@ -202,3 +202,3 @@
202 202
  graphCopy(from, to).run();
203
  
203

	
204 204
  check(countNodes(from) == countNodes(to), "Wrong copy.");
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -85,3 +85,3 @@
85 85
template <typename Graph, typename CapMap, typename CutMap>
86
typename CapMap::Value 
86
typename CapMap::Value
87 87
  cutValue(const Graph& graph, const CapMap& cap, const CutMap& cut)
... ...
@@ -112,3 +112,3 @@
112 112
    ho.minCutMap(cut);
113
    
113

	
114 114
    check(ho.minCutValue() == 1, "Wrong cut value");
... ...
@@ -128,3 +128,3 @@
128 128
    ho.minCutMap(cut);
129
    
129

	
130 130
    check(ho.minCutValue() == 1, "Wrong cut value");
... ...
@@ -132,6 +132,6 @@
132 132
  }
133
  
133

	
134 134
  typedef Undirector<SmartDigraph> UGraph;
135 135
  UGraph ugraph(graph);
136
  
136

	
137 137
  {
... ...
@@ -140,3 +140,3 @@
140 140
    ho.minCutMap(cut);
141
    
141

	
142 142
    check(ho.minCutValue() == 2, "Wrong cut value");
... ...
@@ -148,3 +148,3 @@
148 148
    ho.minCutMap(cut);
149
    
149

	
150 150
    check(ho.minCutValue() == 5, "Wrong cut value");
... ...
@@ -156,3 +156,3 @@
156 156
    ho.minCutMap(cut);
157
    
157

	
158 158
    check(ho.minCutValue() == 5, "Wrong cut value");
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
Ignore white space 6 line context
... ...
@@ -65,6 +65,6 @@
65 65

	
66
int main() 
66
int main()
67 67
{
68 68
  {
69
    ListDigraph d; 
69
    ListDigraph d;
70 70
    ListDigraph::Node s,t;
... ...
@@ -95,3 +95,3 @@
95 95
  {
96
    ListDigraph d; 
96
    ListDigraph d;
97 97
    std::istringstream input(test_lgf_nomap);
... ...
@@ -112,3 +112,3 @@
112 112
  {
113
    ListDigraph d; 
113
    ListDigraph d;
114 114
    std::istringstream input(test_lgf_bad1);
... ...
@@ -119,3 +119,3 @@
119 119
    }
120
    catch (FormatError& error) 
120
    catch (FormatError& error)
121 121
      {
... ...
@@ -141,3 +141,3 @@
141 141
  {
142
    ListDigraph d; 
142
    ListDigraph d;
143 143
    std::istringstream input(test_lgf_bad2);
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -72,4 +72,6 @@
72 72
  checkConcept<ReadWriteMap<A,C>, ReadWriteMap<A,C> >();
73
  checkConcept<ReferenceMap<A,B,B&,const B&>, ReferenceMap<A,B,B&,const B&> >();
74
  checkConcept<ReferenceMap<A,C,C&,const C&>, ReferenceMap<A,C,C&,const C&> >();
73
  checkConcept<ReferenceMap<A,B,B&,const B&>,
74
               ReferenceMap<A,B,B&,const B&> >();
75
  checkConcept<ReferenceMap<A,C,C&,const C&>,
76
               ReferenceMap<A,C,C&,const C&> >();
75 77

	
... ...
@@ -202,3 +204,4 @@
202 204
    checkConcept<ReadMap<A,B>, MapToFunctor<ReadMap<A,B> > >();
203
    MapToFunctor<ReadMap<A,B> > map = MapToFunctor<ReadMap<A,B> >(ReadMap<A,B>());
205
    MapToFunctor<ReadMap<A,B> > map =
206
      MapToFunctor<ReadMap<A,B> >(ReadMap<A,B>());
204 207

	
... ...
@@ -351,3 +354,3 @@
351 354
  }
352
  
355

	
353 356
  // CrossRefMap
... ...
@@ -359,3 +362,3 @@
359 362
                 CrossRefMap<Graph, Node, int> >();
360
    
363

	
361 364
    Graph gr;
... ...
@@ -364,3 +367,3 @@
364 367
    CRMap map(gr);
365
    
368

	
366 369
    Node n0 = gr.addNode();
... ...
@@ -368,3 +371,3 @@
368 371
    Node n2 = gr.addNode();
369
    
372

	
370 373
    map.set(n0, 'A');
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -136,3 +136,3 @@
136 136
  mat_test.run();
137
  
137

	
138 138
  const_mat_test.matchingSize();
... ...
@@ -145,3 +145,3 @@
145 145

	
146
  MaxMatching<Graph>::Status stat = 
146
  MaxMatching<Graph>::Status stat =
147 147
    const_mat_test.status(n);
... ...
@@ -172,3 +172,3 @@
172 172
  mat_test.run();
173
  
173

	
174 174
  const_mat_test.matchingWeight();
... ...
@@ -181,3 +181,3 @@
181 181
  const_mat_test.mate(n);
182
  
182

	
183 183
  int k = 0;
... ...
@@ -209,3 +209,3 @@
209 209
  mat_test.run();
210
  
210

	
211 211
  const_mat_test.matchingWeight();
... ...
@@ -217,3 +217,3 @@
217 217
  const_mat_test.mate(n);
218
  
218

	
219 219
  int k = 0;
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2008
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -112,3 +112,3 @@
112 112
  i = const_mcarb_test.queueSize();
113
  
113

	
114 114
  c = const_mcarb_test.arborescenceCost();
... ...
@@ -122,3 +122,3 @@
122 122
  b = const_mcarb_test.processed(n);
123
  
123

	
124 124
  i = const_mcarb_test.dualNum();
... ...
@@ -127,3 +127,3 @@
127 127
  c = const_mcarb_test.dualValue(i);
128
  
128

	
129 129
  ignore_unused_variable_warning(am);
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -49,3 +49,3 @@
49 49
  "   12   -20  -27    0  -30  -30  -20\n"
50
  "\n"                
50
  "\n"
51 51
  "@arcs\n"
... ...
@@ -95,3 +95,3 @@
95 95
      checkConcept<concepts::Digraph, GR>();
96
      
96

	
97 97
      const Constraints& me = *this;
... ...
@@ -124,3 +124,3 @@
124 124
    typedef concepts::WriteMap<Node, Cost> PotMap;
125
  
125

	
126 126
    GR g;
... ...
@@ -178,3 +178,3 @@
178 178
bool checkPotential( const GR& gr, const LM& lower, const UM& upper,
179
                     const CM& cost, const SM& supply, const FM& flow, 
179
                     const CM& cost, const SM& supply, const FM& flow,
180 180
                     const PM& pi, SupplyType type )
... ...
@@ -191,3 +191,3 @@
191 191
  }
192
  
192

	
193 193
  for (NodeIt n(gr); opt && n != INVALID; ++n) {
... ...
@@ -204,3 +204,3 @@
204 204
  }
205
  
205

	
206 206
  return opt;
... ...
@@ -229,3 +229,3 @@
229 229
  }
230
  
230

	
231 231
  for (NodeIt n(gr); n != INVALID; ++n) {
... ...
@@ -238,3 +238,3 @@
238 238
  }
239
  
239

	
240 240
  return dual_cost == total;
... ...
@@ -310,3 +310,3 @@
310 310
    .run();
311
  
311

	
312 312
  // Build test digraphs with negative costs
... ...
@@ -320,3 +320,3 @@
320 320
  Node n7 = neg_gr.addNode();
321
  
321

	
322 322
  Arc a1 = neg_gr.addArc(n1, n2);
... ...
@@ -330,3 +330,3 @@
330 330
  Arc a9 = neg_gr.addArc(n7, n5);
331
  
331

	
332 332
  Digraph::ArcMap<int> neg_c(neg_gr), neg_l1(neg_gr, 0), neg_l2(neg_gr, 0);
... ...
@@ -334,9 +334,9 @@
334 334
  Digraph::NodeMap<int> neg_s(neg_gr, 0);
335
  
335

	
336 336
  neg_l2[a7] =  1000;
337 337
  neg_l2[a8] = -1000;
338
  
338

	
339 339
  neg_s[n1] =  100;
340 340
  neg_s[n4] = -100;
341
  
341

	
342 342
  neg_c[a1] =  100;
... ...
@@ -424,3 +424,3 @@
424 424
      neg_c, neg_s, neg_mcf.UNBOUNDED, false,    0, "#A18");
425
      
425

	
426 426
    NetworkSimplex<Digraph> negs_mcf(negs_gr);
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -115,3 +115,3 @@
115 115
  const_preflow_test.minCutMap(cut);
116
  
116

	
117 117
  ignore_unused_variable_warning(fm);
... ...
@@ -156,3 +156,3 @@
156 156
  DIGRAPH_TYPEDEFS(SmartDigraph);
157
  
157

	
158 158
  SmartDigraph g;
... ...
@@ -268,3 +268,3 @@
268 268
  initFlowTest();
269
  
269

	
270 270
  return 0;
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -82,3 +82,3 @@
82 82
  typedef concepts::ReadMap<Arc, VType> LengthMap;
83
  
83

	
84 84
  typedef Suurballe<Digraph, LengthMap> SuurballeType;
... ...
@@ -106,3 +106,3 @@
106 106
  suurb_test.findPaths();
107
  
107

	
108 108
  int f;
... ...
@@ -118,3 +118,3 @@
118 118
  Path<Digraph> p = const_suurb_test.path(k);
119
  
119

	
120 120
  ignore_unused_variable_warning(fm);
Ignore white space 6 line context
... ...
@@ -4,3 +4,3 @@
4 4
 *
5
 * Copyright (C) 2003-2009
5
 * Copyright (C) 2003-2011
6 6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
... ...
@@ -90,3 +90,3 @@
90 90
  if(report) std::cerr << "Run Preflow: " << ti << '\n';
91
  if(report) std::cerr << "\nMax flow value: " << pre.flowValue() << '\n';  
91
  if(report) std::cerr << "\nMax flow value: " << pre.flowValue() << '\n';
92 92
}
... ...
@@ -149,3 +149,3 @@
149 149
  if(report) std::cerr << "\nCardinality of max matching: "
150
                       << mat.matchingSize() << '\n';  
150
                       << mat.matchingSize() << '\n';
151 151
}
... ...
@@ -167,3 +167,3 @@
167 167
    }
168
  
168

	
169 169
  switch(desc.type)
... ...
@@ -239,3 +239,3 @@
239 239
  DimacsDescriptor desc = dimacsType(is);
240
  
240

	
241 241
  if(!ap.given("q"))
... ...
@@ -264,3 +264,3 @@
264 264
    }
265
    
265

	
266 266
  if(ap.given("double"))
0 comments (0 inline)