gravatar
kpeter (Peter Kovacs)
kpeter@inf.elte.hu
Various doc improvements (#248) - Rename all the ugly template parameters (too long and/or starting with an underscore). - Rename function parameters starting with an underscore. - Extend the doc for many classes. - Use LaTeX-style O(...) expressions only for the complicated ones. - A lot of small unification changes. - Small fixes. - Some other improvements.
0 33 0
default
33 files changed with 1187 insertions and 1079 deletions:
↑ Collapse diff ↑
Ignore white space 6 line context
... ...
@@ -22,3 +22,3 @@
22 22
@defgroup datas Data Structures
23
This group describes the several data structures implemented in LEMON.
23
This group contains the several data structures implemented in LEMON.
24 24
*/
... ...
@@ -144,3 +144,3 @@
144 144

	
145
This group describes some graph types between real graphs and graph adaptors.
145
This group contains some graph types between real graphs and graph adaptors.
146 146
These classes wrap graphs to give new functionality as the adaptors do it.
... ...
@@ -154,3 +154,3 @@
154 154

	
155
This group describes the map structures implemented in LEMON.
155
This group contains the map structures implemented in LEMON.
156 156

	
... ...
@@ -167,3 +167,3 @@
167 167

	
168
This group describes maps that are specifically designed to assign
168
This group contains maps that are specifically designed to assign
169 169
values to the nodes and arcs/edges of graphs.
... ...
@@ -179,3 +179,3 @@
179 179

	
180
This group describes map adaptors that are used to create "implicit"
180
This group contains map adaptors that are used to create "implicit"
181 181
maps from other maps.
... ...
@@ -242,3 +242,3 @@
242 242

	
243
This group describes two dimensional data storages implemented in LEMON.
243
This group contains two dimensional data storages implemented in LEMON.
244 244
*/
... ...
@@ -250,3 +250,3 @@
250 250

	
251
This group describes the path structures implemented in LEMON.
251
This group contains the path structures implemented in LEMON.
252 252

	
... ...
@@ -266,3 +266,3 @@
266 266

	
267
This group describes some data structures implemented in LEMON in
267
This group contains some data structures implemented in LEMON in
268 268
order to make it easier to implement combinatorial algorithms.
... ...
@@ -272,6 +272,6 @@
272 272
@defgroup algs Algorithms
273
\brief This group describes the several algorithms
273
\brief This group contains the several algorithms
274 274
implemented in LEMON.
275 275

	
276
This group describes the several algorithms
276
This group contains the several algorithms
277 277
implemented in LEMON.
... ...
@@ -284,3 +284,3 @@
284 284

	
285
This group describes the common graph search algorithms, namely
285
This group contains the common graph search algorithms, namely
286 286
\e breadth-first \e search (BFS) and \e depth-first \e search (DFS).
... ...
@@ -293,3 +293,3 @@
293 293

	
294
This group describes the algorithms for finding shortest paths in digraphs.
294
This group contains the algorithms for finding shortest paths in digraphs.
295 295

	
... ...
@@ -314,3 +314,3 @@
314 314

	
315
This group describes the algorithms for finding maximum flows and
315
This group contains the algorithms for finding maximum flows and
316 316
feasible circulations.
... ...
@@ -347,3 +347,3 @@
347 347

	
348
This group describes the algorithms for finding minimum cost flows and
348
This group contains the algorithms for finding minimum cost flows and
349 349
circulations.
... ...
@@ -384,3 +384,3 @@
384 384

	
385
This group describes the algorithms for finding minimum cut in graphs.
385
This group contains the algorithms for finding minimum cut in graphs.
386 386

	
... ...
@@ -401,3 +401,3 @@
401 401
  calculating minimum cut in undirected graphs.
402
- \ref GomoryHuTree "Gomory-Hu tree computation" for calculating
402
- \ref GomoryHu "Gomory-Hu tree computation" for calculating
403 403
  all-pairs minimum cut in undirected graphs.
... ...
@@ -413,3 +413,3 @@
413 413

	
414
This group describes the algorithms for discovering the graph properties
414
This group contains the algorithms for discovering the graph properties
415 415
like connectivity, bipartiteness, euler property, simplicity etc.
... ...
@@ -425,3 +425,3 @@
425 425

	
426
This group describes the algorithms for planarity checking,
426
This group contains the algorithms for planarity checking,
427 427
embedding and drawing.
... ...
@@ -476,3 +476,3 @@
476 476

	
477
This group describes the algorithms for finding a minimum cost spanning
477
This group contains the algorithms for finding a minimum cost spanning
478 478
tree in a graph.
... ...
@@ -485,3 +485,3 @@
485 485

	
486
This group describes some algorithms implemented in LEMON
486
This group contains some algorithms implemented in LEMON
487 487
in order to make it easier to implement complex algorithms.
... ...
@@ -494,3 +494,3 @@
494 494

	
495
This group describes the approximation and heuristic algorithms
495
This group contains the approximation and heuristic algorithms
496 496
implemented in LEMON.
... ...
@@ -500,6 +500,6 @@
500 500
@defgroup gen_opt_group General Optimization Tools
501
\brief This group describes some general optimization frameworks
501
\brief This group contains some general optimization frameworks
502 502
implemented in LEMON.
503 503

	
504
This group describes some general optimization frameworks
504
This group contains some general optimization frameworks
505 505
implemented in LEMON.
... ...
@@ -512,3 +512,3 @@
512 512

	
513
This group describes Lp and Mip solver interfaces for LEMON. The
513
This group contains Lp and Mip solver interfaces for LEMON. The
514 514
various LP solvers could be used in the same manner with this
... ...
@@ -531,3 +531,3 @@
531 531

	
532
This group describes some metaheuristic optimization tools.
532
This group contains some metaheuristic optimization tools.
533 533
*/
... ...
@@ -546,3 +546,3 @@
546 546

	
547
This group describes some simple basic graph utilities.
547
This group contains some simple basic graph utilities.
548 548
*/
... ...
@@ -554,3 +554,3 @@
554 554

	
555
This group describes several useful tools for development,
555
This group contains several useful tools for development,
556 556
debugging and testing.
... ...
@@ -563,3 +563,3 @@
563 563

	
564
This group describes simple tools for measuring the performance
564
This group contains simple tools for measuring the performance
565 565
of algorithms.
... ...
@@ -572,3 +572,3 @@
572 572

	
573
This group describes the exceptions defined in LEMON.
573
This group contains the exceptions defined in LEMON.
574 574
*/
... ...
@@ -579,3 +579,3 @@
579 579

	
580
This group describes the tools for importing and exporting graphs
580
This group contains the tools for importing and exporting graphs
581 581
and graph related data. Now it supports the \ref lgf-format
... ...
@@ -590,3 +590,3 @@
590 590

	
591
This group describes methods for reading and writing
591
This group contains methods for reading and writing
592 592
\ref lgf-format "LEMON Graph Format".
... ...
@@ -599,3 +599,3 @@
599 599

	
600
This group describes general \c EPS drawing methods and special
600
This group contains general \c EPS drawing methods and special
601 601
graph exporting tools.
... ...
@@ -623,3 +623,3 @@
623 623

	
624
This group describes the data/algorithm skeletons and concept checking
624
This group contains the data/algorithm skeletons and concept checking
625 625
classes implemented in LEMON.
... ...
@@ -653,3 +653,3 @@
653 653

	
654
This group describes the skeletons and concept checking classes of LEMON's
654
This group contains the skeletons and concept checking classes of LEMON's
655 655
graph structures and helper classes used to implement these.
... ...
@@ -662,3 +662,3 @@
662 662

	
663
This group describes the skeletons and concept checking classes of maps.
663
This group contains the skeletons and concept checking classes of maps.
664 664
*/
Ignore white space 6 line context
... ...
@@ -47,12 +47,7 @@
47 47

	
48
If you already feel like using our library, see the page that tells you
49
\ref getstart "How to start using LEMON".
50

	
51
If you
52
want to see how LEMON works, see
53
some \ref demoprograms "demo programs".
48
If you already feel like using our library, see the
49
<a class="el" href="http://lemon.cs.elte.hu/pub/tutorial/">LEMON Tutorial</a>.
54 50

	
55 51
If you know what you are looking for then try to find it under the
56
<a class="el" href="modules.html">Modules</a>
57
section.
52
<a class="el" href="modules.html">Modules</a> section.
58 53

	
Ignore white space 6 line context
... ...
@@ -2256,5 +2256,6 @@
2256 2256
    /// digraph to get an arc map of the undirected graph.
2257
    /// Its value type is inherited from the first arc map type
2258
    /// (\c %ForwardMap).
2259
    template <typename ForwardMap, typename BackwardMap>
2257
    /// Its value type is inherited from the first arc map type (\c FW).
2258
    /// \tparam FW The type of the "foward" arc map.
2259
    /// \tparam BK The type of the "backward" arc map.
2260
    template <typename FW, typename BK>
2260 2261
    class CombinedArcMap {
... ...
@@ -2265,13 +2266,13 @@
2265 2266
      /// The value type of the map
2266
      typedef typename ForwardMap::Value Value;
2267

	
2268
      typedef typename MapTraits<ForwardMap>::ReferenceMapTag ReferenceMapTag;
2269

	
2270
      typedef typename MapTraits<ForwardMap>::ReturnValue ReturnValue;
2271
      typedef typename MapTraits<ForwardMap>::ConstReturnValue ConstReturnValue;
2272
      typedef typename MapTraits<ForwardMap>::ReturnValue Reference;
2273
      typedef typename MapTraits<ForwardMap>::ConstReturnValue ConstReference;
2267
      typedef typename FW::Value Value;
2268

	
2269
      typedef typename MapTraits<FW>::ReferenceMapTag ReferenceMapTag;
2270

	
2271
      typedef typename MapTraits<FW>::ReturnValue ReturnValue;
2272
      typedef typename MapTraits<FW>::ConstReturnValue ConstReturnValue;
2273
      typedef typename MapTraits<FW>::ReturnValue Reference;
2274
      typedef typename MapTraits<FW>::ConstReturnValue ConstReference;
2274 2275

	
2275 2276
      /// Constructor
2276
      CombinedArcMap(ForwardMap& forward, BackwardMap& backward)
2277
      CombinedArcMap(FW& forward, BK& backward)
2277 2278
        : _forward(&forward), _backward(&backward) {}
... ...
@@ -2307,4 +2308,4 @@
2307 2308

	
2308
      ForwardMap* _forward;
2309
      BackwardMap* _backward;
2309
      FW* _forward;
2310
      BK* _backward;
2310 2311

	
... ...
@@ -2315,27 +2316,24 @@
2315 2316
    /// This function just returns a combined arc map.
2316
    template <typename ForwardMap, typename BackwardMap>
2317
    static CombinedArcMap<ForwardMap, BackwardMap>
2318
    combinedArcMap(ForwardMap& forward, BackwardMap& backward) {
2319
      return CombinedArcMap<ForwardMap, BackwardMap>(forward, backward);
2317
    template <typename FW, typename BK>
2318
    static CombinedArcMap<FW, BK>
2319
    combinedArcMap(FW& forward, BK& backward) {
2320
      return CombinedArcMap<FW, BK>(forward, backward);
2320 2321
    }
2321 2322

	
2322
    template <typename ForwardMap, typename BackwardMap>
2323
    static CombinedArcMap<const ForwardMap, BackwardMap>
2324
    combinedArcMap(const ForwardMap& forward, BackwardMap& backward) {
2325
      return CombinedArcMap<const ForwardMap,
2326
        BackwardMap>(forward, backward);
2323
    template <typename FW, typename BK>
2324
    static CombinedArcMap<const FW, BK>
2325
    combinedArcMap(const FW& forward, BK& backward) {
2326
      return CombinedArcMap<const FW, BK>(forward, backward);
2327 2327
    }
2328 2328

	
2329
    template <typename ForwardMap, typename BackwardMap>
2330
    static CombinedArcMap<ForwardMap, const BackwardMap>
2331
    combinedArcMap(ForwardMap& forward, const BackwardMap& backward) {
2332
      return CombinedArcMap<ForwardMap,
2333
        const BackwardMap>(forward, backward);
2329
    template <typename FW, typename BK>
2330
    static CombinedArcMap<FW, const BK>
2331
    combinedArcMap(FW& forward, const BK& backward) {
2332
      return CombinedArcMap<FW, const BK>(forward, backward);
2334 2333
    }
2335 2334

	
2336
    template <typename ForwardMap, typename BackwardMap>
2337
    static CombinedArcMap<const ForwardMap, const BackwardMap>
2338
    combinedArcMap(const ForwardMap& forward, const BackwardMap& backward) {
2339
      return CombinedArcMap<const ForwardMap,
2340
        const BackwardMap>(forward, backward);
2335
    template <typename FW, typename BK>
2336
    static CombinedArcMap<const FW, const BK>
2337
    combinedArcMap(const FW& forward, const BK& backward) {
2338
      return CombinedArcMap<const FW, const BK>(forward, backward);
2341 2339
    }
... ...
@@ -3408,5 +3406,6 @@
3408 3406
    /// to get a node map of the split digraph.
3409
    /// Its value type is inherited from the first node map type
3410
    /// (\c InNodeMap).
3411
    template <typename InNodeMap, typename OutNodeMap>
3407
    /// Its value type is inherited from the first node map type (\c IN).
3408
    /// \tparam IN The type of the node map for the in-nodes. 
3409
    /// \tparam OUT The type of the node map for the out-nodes.
3410
    template <typename IN, typename OUT>
3412 3411
    class CombinedNodeMap {
... ...
@@ -3417,12 +3416,12 @@
3417 3416
      /// The value type of the map
3418
      typedef typename InNodeMap::Value Value;
3419

	
3420
      typedef typename MapTraits<InNodeMap>::ReferenceMapTag ReferenceMapTag;
3421
      typedef typename MapTraits<InNodeMap>::ReturnValue ReturnValue;
3422
      typedef typename MapTraits<InNodeMap>::ConstReturnValue ConstReturnValue;
3423
      typedef typename MapTraits<InNodeMap>::ReturnValue Reference;
3424
      typedef typename MapTraits<InNodeMap>::ConstReturnValue ConstReference;
3417
      typedef typename IN::Value Value;
3418

	
3419
      typedef typename MapTraits<IN>::ReferenceMapTag ReferenceMapTag;
3420
      typedef typename MapTraits<IN>::ReturnValue ReturnValue;
3421
      typedef typename MapTraits<IN>::ConstReturnValue ConstReturnValue;
3422
      typedef typename MapTraits<IN>::ReturnValue Reference;
3423
      typedef typename MapTraits<IN>::ConstReturnValue ConstReference;
3425 3424

	
3426 3425
      /// Constructor
3427
      CombinedNodeMap(InNodeMap& in_map, OutNodeMap& out_map)
3426
      CombinedNodeMap(IN& in_map, OUT& out_map)
3428 3427
        : _in_map(in_map), _out_map(out_map) {}
... ...
@@ -3458,4 +3457,4 @@
3458 3457

	
3459
      InNodeMap& _in_map;
3460
      OutNodeMap& _out_map;
3458
      IN& _in_map;
3459
      OUT& _out_map;
3461 3460

	
... ...
@@ -3467,25 +3466,24 @@
3467 3466
    /// This function just returns a combined node map.
3468
    template <typename InNodeMap, typename OutNodeMap>
3469
    static CombinedNodeMap<InNodeMap, OutNodeMap>
3470
    combinedNodeMap(InNodeMap& in_map, OutNodeMap& out_map) {
3471
      return CombinedNodeMap<InNodeMap, OutNodeMap>(in_map, out_map);
3467
    template <typename IN, typename OUT>
3468
    static CombinedNodeMap<IN, OUT>
3469
    combinedNodeMap(IN& in_map, OUT& out_map) {
3470
      return CombinedNodeMap<IN, OUT>(in_map, out_map);
3472 3471
    }
3473 3472

	
3474
    template <typename InNodeMap, typename OutNodeMap>
3475
    static CombinedNodeMap<const InNodeMap, OutNodeMap>
3476
    combinedNodeMap(const InNodeMap& in_map, OutNodeMap& out_map) {
3477
      return CombinedNodeMap<const InNodeMap, OutNodeMap>(in_map, out_map);
3473
    template <typename IN, typename OUT>
3474
    static CombinedNodeMap<const IN, OUT>
3475
    combinedNodeMap(const IN& in_map, OUT& out_map) {
3476
      return CombinedNodeMap<const IN, OUT>(in_map, out_map);
3478 3477
    }
3479 3478

	
3480
    template <typename InNodeMap, typename OutNodeMap>
3481
    static CombinedNodeMap<InNodeMap, const OutNodeMap>
3482
    combinedNodeMap(InNodeMap& in_map, const OutNodeMap& out_map) {
3483
      return CombinedNodeMap<InNodeMap, const OutNodeMap>(in_map, out_map);
3479
    template <typename IN, typename OUT>
3480
    static CombinedNodeMap<IN, const OUT>
3481
    combinedNodeMap(IN& in_map, const OUT& out_map) {
3482
      return CombinedNodeMap<IN, const OUT>(in_map, out_map);
3484 3483
    }
3485 3484

	
3486
    template <typename InNodeMap, typename OutNodeMap>
3487
    static CombinedNodeMap<const InNodeMap, const OutNodeMap>
3488
    combinedNodeMap(const InNodeMap& in_map, const OutNodeMap& out_map) {
3489
      return CombinedNodeMap<const InNodeMap,
3490
        const OutNodeMap>(in_map, out_map);
3485
    template <typename IN, typename OUT>
3486
    static CombinedNodeMap<const IN, const OUT>
3487
    combinedNodeMap(const IN& in_map, const OUT& out_map) {
3488
      return CombinedNodeMap<const IN, const OUT>(in_map, out_map);
3491 3489
    }
... ...
@@ -3497,5 +3495,6 @@
3497 3495
    /// original digraph to get an arc map of the split digraph.
3498
    /// Its value type is inherited from the original arc map type
3499
    /// (\c ArcMap).
3500
    template <typename ArcMap, typename NodeMap>
3496
    /// Its value type is inherited from the original arc map type (\c AM).
3497
    /// \tparam AM The type of the arc map.
3498
    /// \tparam NM the type of the node map.
3499
    template <typename AM, typename NM>
3501 3500
    class CombinedArcMap {
... ...
@@ -3506,12 +3505,12 @@
3506 3505
      /// The value type of the map
3507
      typedef typename ArcMap::Value Value;
3508

	
3509
      typedef typename MapTraits<ArcMap>::ReferenceMapTag ReferenceMapTag;
3510
      typedef typename MapTraits<ArcMap>::ReturnValue ReturnValue;
3511
      typedef typename MapTraits<ArcMap>::ConstReturnValue ConstReturnValue;
3512
      typedef typename MapTraits<ArcMap>::ReturnValue Reference;
3513
      typedef typename MapTraits<ArcMap>::ConstReturnValue ConstReference;
3506
      typedef typename AM::Value Value;
3507

	
3508
      typedef typename MapTraits<AM>::ReferenceMapTag ReferenceMapTag;
3509
      typedef typename MapTraits<AM>::ReturnValue ReturnValue;
3510
      typedef typename MapTraits<AM>::ConstReturnValue ConstReturnValue;
3511
      typedef typename MapTraits<AM>::ReturnValue Reference;
3512
      typedef typename MapTraits<AM>::ConstReturnValue ConstReference;
3514 3513

	
3515 3514
      /// Constructor
3516
      CombinedArcMap(ArcMap& arc_map, NodeMap& node_map)
3515
      CombinedArcMap(AM& arc_map, NM& node_map)
3517 3516
        : _arc_map(arc_map), _node_map(node_map) {}
... ...
@@ -3546,4 +3545,6 @@
3546 3545
    private:
3547
      ArcMap& _arc_map;
3548
      NodeMap& _node_map;
3546

	
3547
      AM& _arc_map;
3548
      NM& _node_map;
3549

	
3549 3550
    };
Ignore white space 6 line context
... ...
@@ -35,13 +35,15 @@
35 35
  ///
36
  ///This class implements the \e binary \e heap data structure. A \e heap
37
  ///is a data structure for storing items with specified values called \e
38
  ///priorities in such a way that finding the item with minimum priority is
39
  ///efficient. \c Compare specifies the ordering of the priorities. In a heap
40
  ///one can change the priority of an item, add or erase an item, etc.
36
  ///This class implements the \e binary \e heap data structure. 
37
  /// 
38
  ///A \e heap is a data structure for storing items with specified values
39
  ///called \e priorities in such a way that finding the item with minimum
40
  ///priority is efficient. \c Comp specifies the ordering of the priorities.
41
  ///In a heap one can change the priority of an item, add or erase an
42
  ///item, etc.
41 43
  ///
42
  ///\tparam _Prio Type of the priority of the items.
43
  ///\tparam _ItemIntMap A read and writable Item int map, used internally
44
  ///\tparam PR Type of the priority of the items.
45
  ///\tparam IM A read and writable item map with int values, used internally
44 46
  ///to handle the cross references.
45
  ///\tparam _Compare A class for the ordering of the priorities. The
46
  ///default is \c std::less<_Prio>.
47
  ///\tparam Comp A functor class for the ordering of the priorities.
48
  ///The default is \c std::less<PR>.
47 49
  ///
... ...
@@ -49,4 +51,3 @@
49 51
  ///\sa Dijkstra
50
  template <typename _Prio, typename _ItemIntMap,
51
            typename _Compare = std::less<_Prio> >
52
  template <typename PR, typename IM, typename Comp = std::less<PR> >
52 53
  class BinHeap {
... ...
@@ -55,5 +56,5 @@
55 56
    ///\e
56
    typedef _ItemIntMap ItemIntMap;
57
    typedef IM ItemIntMap;
57 58
    ///\e
58
    typedef _Prio Prio;
59
    typedef PR Prio;
59 60
    ///\e
... ...
@@ -63,3 +64,3 @@
63 64
    ///\e
64
    typedef _Compare Compare;
65
    typedef Comp Compare;
65 66

	
... ...
@@ -71,8 +72,8 @@
71 72
    ///
72
    /// The ItemIntMap \e should be initialized in such way that it maps
73
    /// PRE_HEAP (-1) to any element to be put in the heap...
73
    /// The item-int map must be initialized in such way that it assigns
74
    /// \c PRE_HEAP (<tt>-1</tt>) to any element to be put in the heap.
74 75
    enum State {
75
      IN_HEAP = 0,
76
      PRE_HEAP = -1,
77
      POST_HEAP = -2
76
      IN_HEAP = 0,    ///< \e
77
      PRE_HEAP = -1,  ///< \e
78
      POST_HEAP = -2  ///< \e
78 79
    };
... ...
@@ -80,5 +81,5 @@
80 81
  private:
81
    std::vector<Pair> data;
82
    Compare comp;
83
    ItemIntMap &iim;
82
    std::vector<Pair> _data;
83
    Compare _comp;
84
    ItemIntMap &_iim;
84 85

	
... ...
@@ -88,6 +89,6 @@
88 89
    /// The constructor.
89
    /// \param _iim should be given to the constructor, since it is used
90
    /// \param map should be given to the constructor, since it is used
90 91
    /// internally to handle the cross references. The value of the map
91
    /// should be PRE_HEAP (-1) for each element.
92
    explicit BinHeap(ItemIntMap &_iim) : iim(_iim) {}
92
    /// must be \c PRE_HEAP (<tt>-1</tt>) for every item.
93
    explicit BinHeap(ItemIntMap &map) : _iim(map) {}
93 94

	
... ...
@@ -96,3 +97,3 @@
96 97
    /// The constructor.
97
    /// \param _iim should be given to the constructor, since it is used
98
    /// \param map should be given to the constructor, since it is used
98 99
    /// internally to handle the cross references. The value of the map
... ...
@@ -100,5 +101,5 @@
100 101
    ///
101
    /// \param _comp The comparator function object.
102
    BinHeap(ItemIntMap &_iim, const Compare &_comp)
103
      : iim(_iim), comp(_comp) {}
102
    /// \param comp The comparator function object.
103
    BinHeap(ItemIntMap &map, const Compare &comp)
104
      : _iim(map), _comp(comp) {}
104 105

	
... ...
@@ -108,3 +109,3 @@
108 109
    /// \brief Returns the number of items stored in the heap.
109
    int size() const { return data.size(); }
110
    int size() const { return _data.size(); }
110 111

	
... ...
@@ -113,3 +114,3 @@
113 114
    /// Returns \c true if and only if the heap stores no items.
114
    bool empty() const { return data.empty(); }
115
    bool empty() const { return _data.empty(); }
115 116

	
... ...
@@ -122,3 +123,3 @@
122 123
    void clear() {
123
      data.clear();
124
      _data.clear();
124 125
    }
... ...
@@ -130,3 +131,3 @@
130 131
    bool less(const Pair &p1, const Pair &p2) const {
131
      return comp(p1.second, p2.second);
132
      return _comp(p1.second, p2.second);
132 133
    }
... ...
@@ -135,4 +136,4 @@
135 136
      int par = parent(hole);
136
      while( hole>0 && less(p,data[par]) ) {
137
        move(data[par],hole);
137
      while( hole>0 && less(p,_data[par]) ) {
138
        move(_data[par],hole);
138 139
        hole = par;
... ...
@@ -147,8 +148,8 @@
147 148
      while(child < length) {
148
        if( less(data[child-1], data[child]) ) {
149
        if( less(_data[child-1], _data[child]) ) {
149 150
          --child;
150 151
        }
151
        if( !less(data[child], p) )
152
        if( !less(_data[child], p) )
152 153
          goto ok;
153
        move(data[child], hole);
154
        move(_data[child], hole);
154 155
        hole = child;
... ...
@@ -157,4 +158,4 @@
157 158
      child--;
158
      if( child<length && less(data[child], p) ) {
159
        move(data[child], hole);
159
      if( child<length && less(_data[child], p) ) {
160
        move(_data[child], hole);
160 161
        hole=child;
... ...
@@ -167,4 +168,4 @@
167 168
    void move(const Pair &p, int i) {
168
      data[i] = p;
169
      iim.set(p.first, i);
169
      _data[i] = p;
170
      _iim.set(p.first, i);
170 171
    }
... ...
@@ -177,4 +178,4 @@
177 178
    void push(const Pair &p) {
178
      int n = data.size();
179
      data.resize(n+1);
179
      int n = _data.size();
180
      _data.resize(n+1);
180 181
      bubble_up(n, p);
... ...
@@ -195,3 +196,3 @@
195 196
    Item top() const {
196
      return data[0].first;
197
      return _data[0].first;
197 198
    }
... ...
@@ -203,3 +204,3 @@
203 204
    Prio prio() const {
204
      return data[0].second;
205
      return _data[0].second;
205 206
    }
... ...
@@ -212,8 +213,8 @@
212 213
    void pop() {
213
      int n = data.size()-1;
214
      iim.set(data[0].first, POST_HEAP);
214
      int n = _data.size()-1;
215
      _iim.set(_data[0].first, POST_HEAP);
215 216
      if (n > 0) {
216
        bubble_down(0, data[n], n);
217
        bubble_down(0, _data[n], n);
217 218
      }
218
      data.pop_back();
219
      _data.pop_back();
219 220
    }
... ...
@@ -226,11 +227,11 @@
226 227
    void erase(const Item &i) {
227
      int h = iim[i];
228
      int n = data.size()-1;
229
      iim.set(data[h].first, POST_HEAP);
228
      int h = _iim[i];
229
      int n = _data.size()-1;
230
      _iim.set(_data[h].first, POST_HEAP);
230 231
      if( h < n ) {
231
        if ( bubble_up(h, data[n]) == h) {
232
          bubble_down(h, data[n], n);
232
        if ( bubble_up(h, _data[n]) == h) {
233
          bubble_down(h, _data[n], n);
233 234
        }
234 235
      }
235
      data.pop_back();
236
      _data.pop_back();
236 237
    }
... ...
@@ -241,7 +242,7 @@
241 242
    /// This function returns the priority of item \c i.
243
    /// \param i The item.
242 244
    /// \pre \c i must be in the heap.
243
    /// \param i The item.
244 245
    Prio operator[](const Item &i) const {
245
      int idx = iim[i];
246
      return data[idx].second;
246
      int idx = _iim[i];
247
      return _data[idx].second;
247 248
    }
... ...
@@ -256,3 +257,3 @@
256 257
    void set(const Item &i, const Prio &p) {
257
      int idx = iim[i];
258
      int idx = _iim[i];
258 259
      if( idx < 0 ) {
... ...
@@ -260,3 +261,3 @@
260 261
      }
261
      else if( comp(p, data[idx].second) ) {
262
      else if( _comp(p, _data[idx].second) ) {
262 263
        bubble_up(idx, Pair(i,p));
... ...
@@ -264,3 +265,3 @@
264 265
      else {
265
        bubble_down(idx, Pair(i,p), data.size());
266
        bubble_down(idx, Pair(i,p), _data.size());
266 267
      }
... ...
@@ -271,8 +272,8 @@
271 272
    /// This method decreases the priority of item \c i to \c p.
273
    /// \param i The item.
274
    /// \param p The priority.
272 275
    /// \pre \c i must be stored in the heap with priority at least \c
273 276
    /// p relative to \c Compare.
274
    /// \param i The item.
275
    /// \param p The priority.
276 277
    void decrease(const Item &i, const Prio &p) {
277
      int idx = iim[i];
278
      int idx = _iim[i];
278 279
      bubble_up(idx, Pair(i,p));
... ...
@@ -283,9 +284,9 @@
283 284
    /// This method sets the priority of item \c i to \c p.
285
    /// \param i The item.
286
    /// \param p The priority.
284 287
    /// \pre \c i must be stored in the heap with priority at most \c
285 288
    /// p relative to \c Compare.
286
    /// \param i The item.
287
    /// \param p The priority.
288 289
    void increase(const Item &i, const Prio &p) {
289
      int idx = iim[i];
290
      bubble_down(idx, Pair(i,p), data.size());
290
      int idx = _iim[i];
291
      bubble_down(idx, Pair(i,p), _data.size());
291 292
    }
... ...
@@ -301,3 +302,3 @@
301 302
    State state(const Item &i) const {
302
      int s = iim[i];
303
      int s = _iim[i];
303 304
      if( s>=0 )
... ...
@@ -321,3 +322,3 @@
321 322
        }
322
        iim[i] = st;
323
        _iim[i] = st;
323 324
        break;
... ...
@@ -335,6 +336,6 @@
335 336
    void replace(const Item& i, const Item& j) {
336
      int idx = iim[i];
337
      iim.set(i, iim[j]);
338
      iim.set(j, idx);
339
      data[idx].first = j;
337
      int idx = _iim[i];
338
      _iim.set(i, _iim[j]);
339
      _iim.set(j, idx);
340
      _data[idx].first = j;
340 341
    }
Ignore white space 6 line context
... ...
@@ -26,10 +26,10 @@
26 26

	
27
///\ingroup digraphbits
28
///\file
29
///\brief Extenders for the arc set types
27
//\ingroup digraphbits
28
//\file
29
//\brief Extenders for the arc set types
30 30
namespace lemon {
31 31

	
32
  /// \ingroup digraphbits
33
  ///
34
  /// \brief Extender for the ArcSets
32
  // \ingroup digraphbits
33
  //
34
  // \brief Extender for the ArcSets
35 35
  template <typename Base>
... ...
@@ -74,3 +74,3 @@
74 74

	
75
    /// The arc observer registry.
75
    // The arc observer registry.
76 76
    typedef AlterationNotifier<ArcSetExtender, Arc> ArcNotifier;
... ...
@@ -85,5 +85,3 @@
85 85

	
86
    /// \brief Gives back the arc alteration notifier.
87
    ///
88
    /// Gives back the arc alteration notifier.
86
    // Gives back the arc alteration notifier.
89 87
    ArcNotifier& notifier(Arc) const {
... ...
@@ -187,5 +185,5 @@
187 185

	
188
    /// \brief Base node of the iterator
189
    ///
190
    /// Returns the base node (ie. the source in this case) of the iterator
186
    // \brief Base node of the iterator
187
    //
188
    // Returns the base node (ie. the source in this case) of the iterator
191 189
    Node baseNode(const OutArcIt &e) const {
... ...
@@ -193,6 +191,6 @@
193 191
    }
194
    /// \brief Running node of the iterator
195
    ///
196
    /// Returns the running node (ie. the target in this case) of the
197
    /// iterator
192
    // \brief Running node of the iterator
193
    //
194
    // Returns the running node (ie. the target in this case) of the
195
    // iterator
198 196
    Node runningNode(const OutArcIt &e) const {
... ...
@@ -201,5 +199,5 @@
201 199

	
202
    /// \brief Base node of the iterator
203
    ///
204
    /// Returns the base node (ie. the target in this case) of the iterator
200
    // \brief Base node of the iterator
201
    //
202
    // Returns the base node (ie. the target in this case) of the iterator
205 203
    Node baseNode(const InArcIt &e) const {
... ...
@@ -207,6 +205,6 @@
207 205
    }
208
    /// \brief Running node of the iterator
209
    ///
210
    /// Returns the running node (ie. the source in this case) of the
211
    /// iterator
206
    // \brief Running node of the iterator
207
    //
208
    // Returns the running node (ie. the source in this case) of the
209
    // iterator
212 210
    Node runningNode(const InArcIt &e) const {
... ...
@@ -273,5 +271,5 @@
273 271

	
274
  /// \ingroup digraphbits
275
  ///
276
  /// \brief Extender for the EdgeSets
272
  // \ingroup digraphbits
273
  //
274
  // \brief Extender for the EdgeSets
277 275
  template <typename Base>
... ...
@@ -494,5 +492,5 @@
494 492

	
495
    /// \brief Base node of the iterator
496
    ///
497
    /// Returns the base node (ie. the source in this case) of the iterator
493
    // \brief Base node of the iterator
494
    //
495
    // Returns the base node (ie. the source in this case) of the iterator
498 496
    Node baseNode(const OutArcIt &e) const {
... ...
@@ -500,6 +498,6 @@
500 498
    }
501
    /// \brief Running node of the iterator
502
    ///
503
    /// Returns the running node (ie. the target in this case) of the
504
    /// iterator
499
    // \brief Running node of the iterator
500
    //
501
    // Returns the running node (ie. the target in this case) of the
502
    // iterator
505 503
    Node runningNode(const OutArcIt &e) const {
... ...
@@ -508,5 +506,5 @@
508 506

	
509
    /// \brief Base node of the iterator
510
    ///
511
    /// Returns the base node (ie. the target in this case) of the iterator
507
    // \brief Base node of the iterator
508
    //
509
    // Returns the base node (ie. the target in this case) of the iterator
512 510
    Node baseNode(const InArcIt &e) const {
... ...
@@ -514,6 +512,6 @@
514 512
    }
515
    /// \brief Running node of the iterator
516
    ///
517
    /// Returns the running node (ie. the source in this case) of the
518
    /// iterator
513
    // \brief Running node of the iterator
514
    //
515
    // Returns the running node (ie. the source in this case) of the
516
    // iterator
519 517
    Node runningNode(const InArcIt &e) const {
... ...
@@ -522,5 +520,5 @@
522 520

	
523
    /// Base node of the iterator
524
    ///
525
    /// Returns the base node of the iterator
521
    // Base node of the iterator
522
    //
523
    // Returns the base node of the iterator
526 524
    Node baseNode(const IncEdgeIt &e) const {
... ...
@@ -528,5 +526,5 @@
528 526
    }
529
    /// Running node of the iterator
530
    ///
531
    /// Returns the running node of the iterator
527
    // Running node of the iterator
528
    //
529
    // Returns the running node of the iterator
532 530
    Node runningNode(const IncEdgeIt &e) const {
Ignore white space 6 line context
... ...
@@ -217,5 +217,5 @@
217 217

	
218
    template <typename _FlowMap>
218
    template <typename T>
219 219
    struct SetFlowMapTraits : public Traits {
220
      typedef _FlowMap FlowMap;
220
      typedef T FlowMap;
221 221
      static FlowMap *createFlowMap(const Digraph&) {
... ...
@@ -231,13 +231,13 @@
231 231
    /// type.
232
    template <typename _FlowMap>
232
    template <typename T>
233 233
    struct SetFlowMap
234 234
      : public Circulation<Digraph, LCapMap, UCapMap, DeltaMap,
235
                           SetFlowMapTraits<_FlowMap> > {
235
                           SetFlowMapTraits<T> > {
236 236
      typedef Circulation<Digraph, LCapMap, UCapMap, DeltaMap,
237
                          SetFlowMapTraits<_FlowMap> > Create;
237
                          SetFlowMapTraits<T> > Create;
238 238
    };
239 239

	
240
    template <typename _Elevator>
240
    template <typename T>
241 241
    struct SetElevatorTraits : public Traits {
242
      typedef _Elevator Elevator;
242
      typedef T Elevator;
243 243
      static Elevator *createElevator(const Digraph&, int) {
... ...
@@ -257,13 +257,13 @@
257 257
    /// \sa SetStandardElevator
258
    template <typename _Elevator>
258
    template <typename T>
259 259
    struct SetElevator
260 260
      : public Circulation<Digraph, LCapMap, UCapMap, DeltaMap,
261
                           SetElevatorTraits<_Elevator> > {
261
                           SetElevatorTraits<T> > {
262 262
      typedef Circulation<Digraph, LCapMap, UCapMap, DeltaMap,
263
                          SetElevatorTraits<_Elevator> > Create;
263
                          SetElevatorTraits<T> > Create;
264 264
    };
265 265

	
266
    template <typename _Elevator>
266
    template <typename T>
267 267
    struct SetStandardElevatorTraits : public Traits {
268
      typedef _Elevator Elevator;
268
      typedef T Elevator;
269 269
      static Elevator *createElevator(const Digraph& digraph, int max_level) {
... ...
@@ -285,8 +285,8 @@
285 285
    /// \sa SetElevator
286
    template <typename _Elevator>
286
    template <typename T>
287 287
    struct SetStandardElevator
288 288
      : public Circulation<Digraph, LCapMap, UCapMap, DeltaMap,
289
                       SetStandardElevatorTraits<_Elevator> > {
289
                       SetStandardElevatorTraits<T> > {
290 290
      typedef Circulation<Digraph, LCapMap, UCapMap, DeltaMap,
291
                      SetStandardElevatorTraits<_Elevator> > Create;
291
                      SetStandardElevatorTraits<T> > Create;
292 292
    };
... ...
@@ -684,3 +684,3 @@
684 684
    /// \note This function calls \ref barrier() for each node,
685
    /// so it runs in \f$O(n)\f$ time.
685
    /// so it runs in O(n) time.
686 686
    ///
Ignore white space 6 line context
... ...
@@ -603,3 +603,3 @@
603 603
      ///
604
      /// \return the opposite of the given Node on the given Edge
604
      /// \return The opposite of the given node on the given edge.
605 605
      Node oppositeNode(Node, Edge) const { return INVALID; }
... ...
@@ -608,11 +608,12 @@
608 608
      ///
609
      /// \return the first node of the given Edge.
609
      /// \return The first node of the given edge.
610 610
      ///
611 611
      /// Naturally edges don't have direction and thus
612
      /// don't have source and target node. But we use these two methods
613
      /// to query the two nodes of the arc. The direction of the arc
614
      /// which arises this way is called the inherent direction of the
612
      /// don't have source and target node. However we use \c u() and \c v()
613
      /// methods to query the two nodes of the arc. The direction of the
614
      /// arc which arises this way is called the inherent direction of the
615 615
      /// edge, and is used to define the "default" direction
616 616
      /// of the directed versions of the arcs.
617
      /// \sa direction
617
      /// \sa v()
618
      /// \sa direction()
618 619
      Node u(Edge) const { return INVALID; }
... ...
@@ -620,2 +621,13 @@
620 621
      /// \brief Second node of the edge.
622
      ///
623
      /// \return The second node of the given edge.
624
      ///
625
      /// Naturally edges don't have direction and thus
626
      /// don't have source and target node. However we use \c u() and \c v()
627
      /// methods to query the two nodes of the arc. The direction of the
628
      /// arc which arises this way is called the inherent direction of the
629
      /// edge, and is used to define the "default" direction
630
      /// of the directed versions of the arcs.
631
      /// \sa u()
632
      /// \sa direction()
621 633
      Node v(Edge) const { return INVALID; }
Ignore white space 6 line context
... ...
@@ -22,3 +22,2 @@
22 22

	
23

	
24 23
#ifndef LEMON_CONCEPTS_GRAPH_COMPONENTS_H
... ...
@@ -46,3 +45,3 @@
46 45
#ifndef DOXYGEN
47
    template <char _selector = '0'>
46
    template <char sel = '0'>
48 47
#endif
... ...
@@ -298,7 +297,7 @@
298 297
    /// The id's are unique and immutable.
299
    template <typename _Base = BaseDigraphComponent>
300
    class IDableDigraphComponent : public _Base {
298
    template <typename BAS = BaseDigraphComponent>
299
    class IDableDigraphComponent : public BAS {
301 300
    public:
302 301

	
303
      typedef _Base Base;
302
      typedef BAS Base;
304 303
      typedef typename Base::Node Node;
... ...
@@ -376,10 +375,10 @@
376 375
    /// concept.  The id's are unique and immutable.
377
    template <typename _Base = BaseGraphComponent>
378
    class IDableGraphComponent : public IDableDigraphComponent<_Base> {
376
    template <typename BAS = BaseGraphComponent>
377
    class IDableGraphComponent : public IDableDigraphComponent<BAS> {
379 378
    public:
380 379

	
381
      typedef _Base Base;
380
      typedef BAS Base;
382 381
      typedef typename Base::Edge Edge;
383 382

	
384
      using IDableDigraphComponent<_Base>::id;
383
      using IDableDigraphComponent<Base>::id;
385 384

	
... ...
@@ -427,4 +426,4 @@
427 426
    ///
428
    template <typename _Graph, typename _Item>
429
    class GraphItemIt : public _Item {
427
    template <typename GR, typename Item>
428
    class GraphItemIt : public Item {
430 429
    public:
... ...
@@ -444,3 +443,3 @@
444 443
      ///
445
      explicit GraphItemIt(const _Graph&) {}
444
      explicit GraphItemIt(const GR&) {}
446 445
      /// \brief Invalid constructor \& conversion.
... ...
@@ -481,6 +480,6 @@
481 480

	
482
          _Item bi = it1;
481
          Item bi = it1;
483 482
          bi = it2;
484 483
        }
485
        _Graph& g;
484
        GR& g;
486 485
      };
... ...
@@ -491,10 +490,10 @@
491 490
    /// \note Because InArcIt and OutArcIt may not inherit from the same
492
    /// base class, the _selector is a additional template parameter. For
493
    /// InArcIt you should instantiate it with character 'i' and for
491
    /// base class, the \c sel is a additional template parameter (selector).
492
    /// For InArcIt you should instantiate it with character 'i' and for
494 493
    /// OutArcIt with 'o'.
495
    template <typename _Graph,
496
              typename _Item = typename _Graph::Arc,
497
              typename _Base = typename _Graph::Node,
498
              char _selector = '0'>
499
    class GraphIncIt : public _Item {
494
    template <typename GR,
495
              typename Item = typename GR::Arc,
496
              typename Base = typename GR::Node,
497
              char sel = '0'>
498
    class GraphIncIt : public Item {
500 499
    public:
... ...
@@ -509,3 +508,3 @@
509 508
      ///
510
      GraphIncIt(GraphIncIt const& gi) : _Item(gi) {}
509
      GraphIncIt(GraphIncIt const& gi) : Item(gi) {}
511 510
      /// \brief Sets the iterator to the first arc incoming into or outgoing
... ...
@@ -516,3 +515,3 @@
516 515
      ///
517
      explicit GraphIncIt(const _Graph&, const _Base&) {}
516
      explicit GraphIncIt(const GR&, const Base&) {}
518 517
      /// \brief Invalid constructor \& conversion.
... ...
@@ -548,3 +547,3 @@
548 547
        void constraints() {
549
          checkConcept<GraphItem<_selector>, _GraphIncIt>();
548
          checkConcept<GraphItem<sel>, _GraphIncIt>();
550 549
          _GraphIncIt it1(graph, node);
... ...
@@ -555,3 +554,3 @@
555 554
          ++(++it1);
556
          _Item e = it1;
555
          Item e = it1;
557 556
          e = it2;
... ...
@@ -560,5 +559,5 @@
560 559

	
561
        _Item arc;
562
        _Base node;
563
        _Graph graph;
560
        Item arc;
561
        Base node;
562
        GR graph;
564 563
        _GraphIncIt it;
... ...
@@ -573,4 +572,4 @@
573 572
    /// This concept is part of the Digraph concept.
574
    template <typename _Base = BaseDigraphComponent>
575
    class IterableDigraphComponent : public _Base {
573
    template <typename BAS = BaseDigraphComponent>
574
    class IterableDigraphComponent : public BAS {
576 575

	
... ...
@@ -578,3 +577,3 @@
578 577

	
579
      typedef _Base Base;
578
      typedef BAS Base;
580 579
      typedef typename Base::Node Node;
... ...
@@ -758,7 +757,7 @@
758 757
    /// This concept is part of the Graph concept.
759
    template <typename _Base = BaseGraphComponent>
760
    class IterableGraphComponent : public IterableDigraphComponent<_Base> {
758
    template <typename BAS = BaseGraphComponent>
759
    class IterableGraphComponent : public IterableDigraphComponent<BAS> {
761 760
    public:
762 761

	
763
      typedef _Base Base;
762
      typedef BAS Base;
764 763
      typedef typename Base::Node Node;
... ...
@@ -775,4 +774,4 @@
775 774

	
776
      using IterableDigraphComponent<_Base>::first;
777
      using IterableDigraphComponent<_Base>::next;
775
      using IterableDigraphComponent<Base>::first;
776
      using IterableDigraphComponent<Base>::next;
778 777

	
... ...
@@ -810,4 +809,4 @@
810 809

	
811
      using IterableDigraphComponent<_Base>::baseNode;
812
      using IterableDigraphComponent<_Base>::runningNode;
810
      using IterableDigraphComponent<Base>::baseNode;
811
      using IterableDigraphComponent<Base>::runningNode;
813 812

	
... ...
@@ -877,3 +876,2 @@
877 876
        const _Graph& graph;
878

	
879 877
      };
... ...
@@ -889,7 +887,7 @@
889 887
    /// notified about it.
890
    template <typename _Base = BaseDigraphComponent>
891
    class AlterableDigraphComponent : public _Base {
888
    template <typename BAS = BaseDigraphComponent>
889
    class AlterableDigraphComponent : public BAS {
892 890
    public:
893 891

	
894
      typedef _Base Base;
892
      typedef BAS Base;
895 893
      typedef typename Base::Node Node;
... ...
@@ -947,7 +945,7 @@
947 945
    /// notified about it.
948
    template <typename _Base = BaseGraphComponent>
949
    class AlterableGraphComponent : public AlterableDigraphComponent<_Base> {
946
    template <typename BAS = BaseGraphComponent>
947
    class AlterableGraphComponent : public AlterableDigraphComponent<BAS> {
950 948
    public:
951 949

	
952
      typedef _Base Base;
950
      typedef BAS Base;
953 951
      typedef typename Base::Edge Edge;
... ...
@@ -976,5 +974,3 @@
976 974
        const _Graph& graph;
977

	
978 975
      };
979

	
980 976
    };
... ...
@@ -986,14 +982,14 @@
986 982
    /// associate data to graph descriptors (nodes or arcs).
987
    template <typename _Graph, typename _Item, typename _Value>
988
    class GraphMap : public ReadWriteMap<_Item, _Value> {
983
    template <typename GR, typename K, typename V>
984
    class GraphMap : public ReadWriteMap<K, V> {
989 985
    public:
990 986

	
991
      typedef ReadWriteMap<_Item, _Value> Parent;
987
      typedef ReadWriteMap<K, V> Parent;
992 988

	
993 989
      /// The graph type of the map.
994
      typedef _Graph Graph;
990
      typedef GR Graph;
995 991
      /// The key type of the map.
996
      typedef _Item Key;
992
      typedef K Key;
997 993
      /// The value type of the map.
998
      typedef _Value Value;
994
      typedef V Value;
999 995

	
... ...
@@ -1057,7 +1053,7 @@
1057 1053
    /// This concept is part of the Digraph concept.
1058
    template <typename _Base = BaseDigraphComponent>
1059
    class MappableDigraphComponent : public _Base  {
1054
    template <typename BAS = BaseDigraphComponent>
1055
    class MappableDigraphComponent : public BAS  {
1060 1056
    public:
1061 1057

	
1062
      typedef _Base Base;
1058
      typedef BAS Base;
1063 1059
      typedef typename Base::Node Node;
... ...
@@ -1071,6 +1067,6 @@
1071 1067
      ///
1072
      template <typename _Value>
1073
      class NodeMap : public GraphMap<Digraph, Node, _Value> {
1068
      template <typename V>
1069
      class NodeMap : public GraphMap<Digraph, Node, V> {
1074 1070
      public:
1075
        typedef GraphMap<MappableDigraphComponent, Node, _Value> Parent;
1071
        typedef GraphMap<MappableDigraphComponent, Node, V> Parent;
1076 1072

	
... ...
@@ -1085,3 +1081,3 @@
1085 1081
        /// Construct a new map for the digraph and initalise the values.
1086
        NodeMap(const MappableDigraphComponent& digraph, const _Value& value)
1082
        NodeMap(const MappableDigraphComponent& digraph, const V& value)
1087 1083
          : Parent(digraph, value) {}
... ...
@@ -1099,3 +1095,3 @@
1099 1095
        NodeMap& operator=(const CMap&) {
1100
          checkConcept<ReadMap<Node, _Value>, CMap>();
1096
          checkConcept<ReadMap<Node, V>, CMap>();
1101 1097
          return *this;
... ...
@@ -1109,6 +1105,6 @@
1109 1105
      ///
1110
      template <typename _Value>
1111
      class ArcMap : public GraphMap<Digraph, Arc, _Value> {
1106
      template <typename V>
1107
      class ArcMap : public GraphMap<Digraph, Arc, V> {
1112 1108
      public:
1113
        typedef GraphMap<MappableDigraphComponent, Arc, _Value> Parent;
1109
        typedef GraphMap<MappableDigraphComponent, Arc, V> Parent;
1114 1110

	
... ...
@@ -1123,3 +1119,3 @@
1123 1119
        /// Construct a new map for the digraph and initalise the values.
1124
        ArcMap(const MappableDigraphComponent& digraph, const _Value& value)
1120
        ArcMap(const MappableDigraphComponent& digraph, const V& value)
1125 1121
          : Parent(digraph, value) {}
... ...
@@ -1137,3 +1133,3 @@
1137 1133
        ArcMap& operator=(const CMap&) {
1138
          checkConcept<ReadMap<Arc, _Value>, CMap>();
1134
          checkConcept<ReadMap<Arc, V>, CMap>();
1139 1135
          return *this;
... ...
@@ -1193,7 +1189,7 @@
1193 1189
    /// This concept is part of the Graph concept.
1194
    template <typename _Base = BaseGraphComponent>
1195
    class MappableGraphComponent : public MappableDigraphComponent<_Base>  {
1190
    template <typename BAS = BaseGraphComponent>
1191
    class MappableGraphComponent : public MappableDigraphComponent<BAS>  {
1196 1192
    public:
1197 1193

	
1198
      typedef _Base Base;
1194
      typedef BAS Base;
1199 1195
      typedef typename Base::Edge Edge;
... ...
@@ -1206,6 +1202,6 @@
1206 1202
      ///
1207
      template <typename _Value>
1208
      class EdgeMap : public GraphMap<Graph, Edge, _Value> {
1203
      template <typename V>
1204
      class EdgeMap : public GraphMap<Graph, Edge, V> {
1209 1205
      public:
1210
        typedef GraphMap<MappableGraphComponent, Edge, _Value> Parent;
1206
        typedef GraphMap<MappableGraphComponent, Edge, V> Parent;
1211 1207

	
... ...
@@ -1220,3 +1216,3 @@
1220 1216
        /// Construct a new map for the graph and initalise the values.
1221
        EdgeMap(const MappableGraphComponent& graph, const _Value& value)
1217
        EdgeMap(const MappableGraphComponent& graph, const V& value)
1222 1218
          : Parent(graph, value) {}
... ...
@@ -1234,3 +1230,3 @@
1234 1230
        EdgeMap& operator=(const CMap&) {
1235
          checkConcept<ReadMap<Edge, _Value>, CMap>();
1231
          checkConcept<ReadMap<Edge, V>, CMap>();
1236 1232
          return *this;
... ...
@@ -1278,9 +1274,9 @@
1278 1274
    /// digraph alterations should handled already on this level.
1279
    template <typename _Base = BaseDigraphComponent>
1280
    class ExtendableDigraphComponent : public _Base {
1275
    template <typename BAS = BaseDigraphComponent>
1276
    class ExtendableDigraphComponent : public BAS {
1281 1277
    public:
1282
      typedef _Base Base;
1278
      typedef BAS Base;
1283 1279

	
1284
      typedef typename _Base::Node Node;
1285
      typedef typename _Base::Arc Arc;
1280
      typedef typename Base::Node Node;
1281
      typedef typename Base::Arc Arc;
1286 1282

	
... ...
@@ -1323,9 +1319,9 @@
1323 1319
    /// level.
1324
    template <typename _Base = BaseGraphComponent>
1325
    class ExtendableGraphComponent : public _Base {
1320
    template <typename BAS = BaseGraphComponent>
1321
    class ExtendableGraphComponent : public BAS {
1326 1322
    public:
1327 1323

	
1328
      typedef _Base Base;
1329
      typedef typename _Base::Node Node;
1330
      typedef typename _Base::Edge Edge;
1324
      typedef BAS Base;
1325
      typedef typename Base::Node Node;
1326
      typedef typename Base::Edge Edge;
1331 1327

	
... ...
@@ -1367,7 +1363,7 @@
1367 1363
    /// should handled already on this level.
1368
    template <typename _Base = BaseDigraphComponent>
1369
    class ErasableDigraphComponent : public _Base {
1364
    template <typename BAS = BaseDigraphComponent>
1365
    class ErasableDigraphComponent : public BAS {
1370 1366
    public:
1371 1367

	
1372
      typedef _Base Base;
1368
      typedef BAS Base;
1373 1369
      typedef typename Base::Node Node;
... ...
@@ -1407,7 +1403,7 @@
1407 1403
    /// the graph alterations should handled already on this level.
1408
    template <typename _Base = BaseGraphComponent>
1409
    class ErasableGraphComponent : public _Base {
1404
    template <typename BAS = BaseGraphComponent>
1405
    class ErasableGraphComponent : public BAS {
1410 1406
    public:
1411 1407

	
1412
      typedef _Base Base;
1408
      typedef BAS Base;
1413 1409
      typedef typename Base::Node Node;
... ...
@@ -1447,7 +1443,7 @@
1447 1443
    /// should handled already on this level.
1448
    template <typename _Base = BaseDigraphComponent>
1449
    class ClearableDigraphComponent : public _Base {
1444
    template <typename BAS = BaseDigraphComponent>
1445
    class ClearableDigraphComponent : public BAS {
1450 1446
    public:
1451 1447

	
1452
      typedef _Base Base;
1448
      typedef BAS Base;
1453 1449

	
... ...
@@ -1476,7 +1472,7 @@
1476 1472
    /// the graph alterations should handled already on this level.
1477
    template <typename _Base = BaseGraphComponent>
1478
    class ClearableGraphComponent : public ClearableDigraphComponent<_Base> {
1473
    template <typename BAS = BaseGraphComponent>
1474
    class ClearableGraphComponent : public ClearableDigraphComponent<BAS> {
1479 1475
    public:
1480 1476

	
1481
      typedef _Base Base;
1477
      typedef BAS Base;
1482 1478

	
Ignore white space 6 line context
... ...
@@ -37,4 +37,18 @@
37 37
    ///
38
    /// Concept class describing the main interface of heaps.
39
    template <typename Priority, typename ItemIntMap>
38
    /// Concept class describing the main interface of heaps. A \e heap
39
    /// is a data structure for storing items with specified values called
40
    /// \e priorities in such a way that finding the item with minimum
41
    /// priority is efficient. In a heap one can change the priority of an
42
    /// item, add or erase an item, etc.
43
    ///
44
    /// \tparam PR Type of the priority of the items.
45
    /// \tparam IM A read and writable item map with int values, used
46
    /// internally to handle the cross references.
47
    /// \tparam Comp A functor class for the ordering of the priorities.
48
    /// The default is \c std::less<PR>.
49
#ifdef DOXYGEN
50
    template <typename PR, typename IM, typename Comp = std::less<PR> >
51
#else
52
    template <typename PR, typename IM>
53
#endif
40 54
    class Heap {
... ...
@@ -42,2 +56,6 @@
42 56

	
57
      /// Type of the item-int map.
58
      typedef IM ItemIntMap;
59
      /// Type of the priorities.
60
      typedef PR Prio;
43 61
      /// Type of the items stored in the heap.
... ...
@@ -45,5 +63,2 @@
45 63

	
46
      /// Type of the priorities.
47
      typedef Priority Prio;
48

	
49 64
      /// \brief Type to represent the states of the items.
... ...
@@ -55,8 +70,8 @@
55 70
      ///
56
      /// The \c ItemIntMap must be initialized in such a way, that it
57
      /// assigns \c PRE_HEAP (<tt>-1</tt>) to every item.
71
      /// The item-int map must be initialized in such way that it assigns
72
      /// \c PRE_HEAP (<tt>-1</tt>) to any element to be put in the heap.
58 73
      enum State {
59
        IN_HEAP = 0,
60
        PRE_HEAP = -1,
61
        POST_HEAP = -2
74
        IN_HEAP = 0,    ///< The "in heap" state constant.
75
        PRE_HEAP = -1,  ///< The "pre heap" state constant.
76
        POST_HEAP = -2  ///< The "post heap" state constant.
62 77
      };
... ...
@@ -121,4 +136,4 @@
121 136
      /// Returns the priority of the given item.
137
      /// \param i The item.
122 138
      /// \pre \c i must be in the heap.
123
      /// \param i The item.
124 139
      Prio operator[](const Item &i) const {}
... ...
@@ -139,5 +154,5 @@
139 154
      /// Decreases the priority of an item to the given value.
140
      /// \pre \c i must be stored in the heap with priority at least \c p.
141 155
      /// \param i The item.
142 156
      /// \param p The priority.
157
      /// \pre \c i must be stored in the heap with priority at least \c p.
143 158
      void decrease(const Item &i, const Prio &p) {}
... ...
@@ -147,5 +162,5 @@
147 162
      /// Increases the priority of an item to the given value.
148
      /// \pre \c i must be stored in the heap with priority at most \c p.
149 163
      /// \param i The item.
150 164
      /// \param p The priority.
165
      /// \pre \c i must be stored in the heap with priority at most \c p.
151 166
      void increase(const Item &i, const Prio &p) {}
Ignore white space 6 line context
... ...
@@ -40,3 +40,3 @@
40 40
    /// digraph.
41
    /// \tparam _Digraph The digraph type in which the path is.
41
    /// \tparam GR The digraph type in which the path is.
42 42
    ///
... ...
@@ -47,3 +47,3 @@
47 47
    ///
48
    template <typename _Digraph>
48
    template <typename GR>
49 49
    class Path {
... ...
@@ -52,3 +52,3 @@
52 52
      /// Type of the underlying digraph.
53
      typedef _Digraph Digraph;
53
      typedef GR Digraph;
54 54
      /// Arc type of the underlying digraph.
... ...
@@ -207,4 +207,4 @@
207 207
    /// an adaptor class to the predecessor map.
208

	
209
    /// \tparam _Digraph  The digraph type in which the path is.
208
    ///
209
    /// \tparam GR The digraph type in which the path is.
210 210
    ///
... ...
@@ -212,4 +212,3 @@
212 212
    /// template constructor or a template assignment operator.
213
    ///
214
    template <typename _Digraph>
213
    template <typename GR>
215 214
    class PathDumper {
... ...
@@ -218,3 +217,3 @@
218 217
      /// Type of the underlying digraph.
219
      typedef _Digraph Digraph;
218
      typedef GR Digraph;
220 219
      /// Arc type of the underlying digraph.
Ignore white space 6 line context
... ...
@@ -48,3 +48,3 @@
48 48
  /// \param graph The undirected graph.
49
  /// \return %True when there is path between any two nodes in the graph.
49
  /// \return \c true when there is path between any two nodes in the graph.
50 50
  /// \note By definition, the empty graph is connected.
... ...
@@ -236,3 +236,3 @@
236 236
  /// connected with directed paths in both direction.
237
  /// \return %False when the graph is not strongly connected.
237
  /// \return \c false when the graph is not strongly connected.
238 238
  /// \see connected
... ...
@@ -711,3 +711,3 @@
711 711
  /// \param graph The graph.
712
  /// \return %True when the graph bi-node-connected.
712
  /// \return \c true when the graph bi-node-connected.
713 713
  template <typename Graph>
... ...
@@ -1232,3 +1232,3 @@
1232 1232
  /// order.
1233
  /// \return %False when the graph is not DAG.
1233
  /// \return \c false when the graph is not DAG.
1234 1234
  ///
... ...
@@ -1281,3 +1281,3 @@
1281 1281
  /// an Directed Acyclic Digraph.
1282
  /// \return %False when the graph is not DAG.
1282
  /// \return \c false when the graph is not DAG.
1283 1283
  /// \see acyclic
... ...
@@ -1323,3 +1323,3 @@
1323 1323
  /// \param graph The undirected graph.
1324
  /// \return %True when there is no circle in the graph.
1324
  /// \return \c true when there is no circle in the graph.
1325 1325
  /// \see dag
... ...
@@ -1357,3 +1357,3 @@
1357 1357
  /// \param graph The undirected graph.
1358
  /// \return %True when the graph is acyclic and connected.
1358
  /// \return \c true when the graph is acyclic and connected.
1359 1359
  template <typename Graph>
... ...
@@ -1450,3 +1450,3 @@
1450 1450
  /// \param graph The undirected graph.
1451
  /// \return %True if \c graph is bipartite, %false otherwise.
1451
  /// \return \c true if \c graph is bipartite, \c false otherwise.
1452 1452
  /// \sa bipartitePartitions
... ...
@@ -1491,3 +1491,3 @@
1491 1491
  /// two partitions of the graph.
1492
  /// \return %True if \c graph is bipartite, %false otherwise.
1492
  /// \return \c true if \c graph is bipartite, \c false otherwise.
1493 1493
  template<typename Graph, typename NodeMap>
Ignore white space 6 line context
... ...
@@ -1036,7 +1036,7 @@
1036 1036
  ///\sa ArcLookUp, AllArcLookUp, DynArcLookUp
1037
  template <typename _Graph>
1038
  class ConArcIt : public _Graph::Arc {
1037
  template <typename GR>
1038
  class ConArcIt : public GR::Arc {
1039 1039
  public:
1040 1040

	
1041
    typedef _Graph Graph;
1041
    typedef GR Graph;
1042 1042
    typedef typename Graph::Arc Parent;
... ...
@@ -1159,7 +1159,7 @@
1159 1159
  ///\sa findEdge()
1160
  template <typename _Graph>
1161
  class ConEdgeIt : public _Graph::Edge {
1160
  template <typename GR>
1161
  class ConEdgeIt : public GR::Edge {
1162 1162
  public:
1163 1163

	
1164
    typedef _Graph Graph;
1164
    typedef GR Graph;
1165 1165
    typedef typename Graph::Edge Parent;
... ...
@@ -1213,3 +1213,3 @@
1213 1213
  ///
1214
  ///\tparam G The type of the underlying digraph.
1214
  ///\tparam GR The type of the underlying digraph.
1215 1215
  ///
... ...
@@ -1217,12 +1217,12 @@
1217 1217
  ///\sa AllArcLookUp
1218
  template<class G>
1218
  template <typename GR>
1219 1219
  class DynArcLookUp
1220
    : protected ItemSetTraits<G, typename G::Arc>::ItemNotifier::ObserverBase
1220
    : protected ItemSetTraits<GR, typename GR::Arc>::ItemNotifier::ObserverBase
1221 1221
  {
1222 1222
  public:
1223
    typedef typename ItemSetTraits<G, typename G::Arc>
1223
    typedef typename ItemSetTraits<GR, typename GR::Arc>
1224 1224
    ::ItemNotifier::ObserverBase Parent;
1225 1225

	
1226
    TEMPLATE_DIGRAPH_TYPEDEFS(G);
1227
    typedef G Digraph;
1226
    TEMPLATE_DIGRAPH_TYPEDEFS(GR);
1227
    typedef GR Digraph;
1228 1228

	
... ...
@@ -1230,8 +1230,8 @@
1230 1230

	
1231
    class AutoNodeMap : public ItemSetTraits<G, Node>::template Map<Arc>::Type {
1231
    class AutoNodeMap : public ItemSetTraits<GR, Node>::template Map<Arc>::Type {
1232 1232
    public:
1233 1233

	
1234
      typedef typename ItemSetTraits<G, Node>::template Map<Arc>::Type Parent;
1234
      typedef typename ItemSetTraits<GR, Node>::template Map<Arc>::Type Parent;
1235 1235

	
1236
      AutoNodeMap(const G& digraph) : Parent(digraph, INVALID) {}
1236
      AutoNodeMap(const GR& digraph) : Parent(digraph, INVALID) {}
1237 1237

	
... ...
@@ -1625,3 +1625,3 @@
1625 1625
  ///
1626
  ///\tparam G The type of the underlying digraph.
1626
  ///\tparam GR The type of the underlying digraph.
1627 1627
  ///
... ...
@@ -1629,3 +1629,3 @@
1629 1629
  ///\sa AllArcLookUp
1630
  template<class G>
1630
  template<class GR>
1631 1631
  class ArcLookUp
... ...
@@ -1633,4 +1633,4 @@
1633 1633
  public:
1634
    TEMPLATE_DIGRAPH_TYPEDEFS(G);
1635
    typedef G Digraph;
1634
    TEMPLATE_DIGRAPH_TYPEDEFS(GR);
1635
    typedef GR Digraph;
1636 1636

	
... ...
@@ -1735,3 +1735,3 @@
1735 1735
  ///
1736
  ///\tparam G The type of the underlying digraph.
1736
  ///\tparam GR The type of the underlying digraph.
1737 1737
  ///
... ...
@@ -1739,12 +1739,12 @@
1739 1739
  ///\sa ArcLookUp
1740
  template<class G>
1741
  class AllArcLookUp : public ArcLookUp<G>
1740
  template<class GR>
1741
  class AllArcLookUp : public ArcLookUp<GR>
1742 1742
  {
1743
    using ArcLookUp<G>::_g;
1744
    using ArcLookUp<G>::_right;
1745
    using ArcLookUp<G>::_left;
1746
    using ArcLookUp<G>::_head;
1743
    using ArcLookUp<GR>::_g;
1744
    using ArcLookUp<GR>::_right;
1745
    using ArcLookUp<GR>::_left;
1746
    using ArcLookUp<GR>::_head;
1747 1747

	
1748
    TEMPLATE_DIGRAPH_TYPEDEFS(G);
1749
    typedef G Digraph;
1748
    TEMPLATE_DIGRAPH_TYPEDEFS(GR);
1749
    typedef GR Digraph;
1750 1750

	
... ...
@@ -1775,3 +1775,3 @@
1775 1775
    ///changes.
1776
    AllArcLookUp(const Digraph &g) : ArcLookUp<G>(g), _next(g) {refreshNext();}
1776
    AllArcLookUp(const Digraph &g) : ArcLookUp<GR>(g), _next(g) {refreshNext();}
1777 1777

	
... ...
@@ -1785,3 +1785,3 @@
1785 1785
    {
1786
      ArcLookUp<G>::refresh(n);
1786
      ArcLookUp<GR>::refresh(n);
1787 1787
      refreshNext(_head[n]);
... ...
@@ -1832,3 +1832,3 @@
1832 1832
#else
1833
    using ArcLookUp<G>::operator() ;
1833
    using ArcLookUp<GR>::operator() ;
1834 1834
    Arc operator()(Node s, Node t, Arc prev) const
Ignore white space 6 line context
... ...
@@ -40,4 +40,6 @@
40 40
  /// constants which are used in the Dijkstra algorithm.
41
  template <typename Value>
41
  template <typename V>
42 42
  struct DijkstraDefaultOperationTraits {
43
    /// \e
44
    typedef V Value;
43 45
    /// \brief Gives back the zero value of the type.
... ...
@@ -60,4 +62,4 @@
60 62
  ///\tparam GR The type of the digraph.
61
  ///\tparam LM The type of the length map.
62
  template<class GR, class LM>
63
  ///\tparam LEN The type of the length map.
64
  template<typename GR, typename LEN>
63 65
  struct DijkstraDefaultTraits
... ...
@@ -71,5 +73,5 @@
71 73
    ///It must meet the \ref concepts::ReadMap "ReadMap" concept.
72
    typedef LM LengthMap;
74
    typedef LEN LengthMap;
73 75
    ///The type of the length of the arcs.
74
    typedef typename LM::Value Value;
76
    typedef typename LEN::Value Value;
75 77

	
... ...
@@ -102,3 +104,3 @@
102 104
    ///\sa Dijkstra
103
    typedef BinHeap<typename LM::Value, HeapCrossRef, std::less<Value> > Heap;
105
    typedef BinHeap<typename LEN::Value, HeapCrossRef, std::less<Value> > Heap;
104 106
    ///Instantiates a \c Heap.
... ...
@@ -152,3 +154,3 @@
152 154
    ///It must meet the \ref concepts::WriteMap "WriteMap" concept.
153
    typedef typename Digraph::template NodeMap<typename LM::Value> DistMap;
155
    typedef typename Digraph::template NodeMap<typename LEN::Value> DistMap;
154 156
    ///Instantiates a \c DistMap.
... ...
@@ -182,3 +184,3 @@
182 184
  ///The default type is \ref ListDigraph.
183
  ///\tparam LM A \ref concepts::ReadMap "readable" arc map that specifies
185
  ///\tparam LEN A \ref concepts::ReadMap "readable" arc map that specifies
184 186
  ///the lengths of the arcs.
... ...
@@ -189,7 +191,7 @@
189 191
#ifdef DOXYGEN
190
  template <typename GR, typename LM, typename TR>
192
  template <typename GR, typename LEN, typename TR>
191 193
#else
192 194
  template <typename GR=ListDigraph,
193
            typename LM=typename GR::template ArcMap<int>,
194
            typename TR=DijkstraDefaultTraits<GR,LM> >
195
            typename LEN=typename GR::template ArcMap<int>,
196
            typename TR=DijkstraDefaultTraits<GR,LEN> >
195 197
#endif
... ...
@@ -915,4 +917,4 @@
915 917
  ///\tparam GR The type of the digraph.
916
  ///\tparam LM The type of the length map.
917
  template<class GR, class LM>
918
  ///\tparam LEN The type of the length map.
919
  template<class GR, class LEN>
918 920
  struct DijkstraWizardDefaultTraits
... ...
@@ -925,5 +927,5 @@
925 927
    ///It must meet the \ref concepts::ReadMap "ReadMap" concept.
926
    typedef LM LengthMap;
928
    typedef LEN LengthMap;
927 929
    ///The type of the length of the arcs.
928
    typedef typename LM::Value Value;
930
    typedef typename LEN::Value Value;
929 931

	
... ...
@@ -1009,3 +1011,3 @@
1009 1011
    ///It must meet the \ref concepts::WriteMap "WriteMap" concept.
1010
    typedef typename Digraph::template NodeMap<typename LM::Value> DistMap;
1012
    typedef typename Digraph::template NodeMap<typename LEN::Value> DistMap;
1011 1013
    ///Instantiates a DistMap.
... ...
@@ -1035,6 +1037,6 @@
1035 1037
  /// \ref DijkstraWizard class.
1036
  template<class GR,class LM>
1037
  class DijkstraWizardBase : public DijkstraWizardDefaultTraits<GR,LM>
1038
  template<typename GR, typename LEN>
1039
  class DijkstraWizardBase : public DijkstraWizardDefaultTraits<GR,LEN>
1038 1040
  {
1039
    typedef DijkstraWizardDefaultTraits<GR,LM> Base;
1041
    typedef DijkstraWizardDefaultTraits<GR,LEN> Base;
1040 1042
  protected:
... ...
@@ -1072,5 +1074,5 @@
1072 1074
    /// \param l The length map.
1073
    DijkstraWizardBase(const GR &g,const LM &l) :
1075
    DijkstraWizardBase(const GR &g,const LEN &l) :
1074 1076
      _g(reinterpret_cast<void*>(const_cast<GR*>(&g))),
1075
      _length(reinterpret_cast<void*>(const_cast<LM*>(&l))),
1077
      _length(reinterpret_cast<void*>(const_cast<LEN*>(&l))),
1076 1078
      _processed(0), _pred(0), _dist(0), _path(0), _di(0) {}
... ...
@@ -1283,7 +1285,7 @@
1283 1285
  ///\sa Dijkstra
1284
  template<class GR, class LM>
1285
  DijkstraWizard<DijkstraWizardBase<GR,LM> >
1286
  dijkstra(const GR &digraph, const LM &length)
1286
  template<typename GR, typename LEN>
1287
  DijkstraWizard<DijkstraWizardBase<GR,LEN> >
1288
  dijkstra(const GR &digraph, const LEN &length)
1287 1289
  {
1288
    return DijkstraWizard<DijkstraWizardBase<GR,LM> >(digraph,length);
1290
    return DijkstraWizard<DijkstraWizardBase<GR,LEN> >(digraph,length);
1289 1291
  }
Ignore white space 6 line context
... ...
@@ -257,3 +257,3 @@
257 257
  ///
258
  /// This class is fully conform to the \ref concepts::Digraph
258
  /// This class fully conforms to the \ref concepts::Digraph
259 259
  /// "Digraph" concept.
... ...
@@ -338,3 +338,3 @@
338 338
    /// and target node \c t.
339
    /// \return the new arc.
339
    /// \return The new arc.
340 340
    Arc addArc(const Node& s, const Node& t) {
... ...
@@ -686,3 +686,3 @@
686 686
  ///
687
  /// This class is fully conform to the \ref concepts::Graph "Graph"
687
  /// This class fully conforms to the \ref concepts::Graph "Graph"
688 688
  /// concept.
... ...
@@ -763,3 +763,3 @@
763 763
    /// and node \c v endpoints.
764
    /// \return the new edge.
764
    /// \return The new edge.
765 765
    Edge addEdge(const Node& u, const Node& v) {
... ...
@@ -954,3 +954,3 @@
954 954
  ///
955
  /// This class is fully conform to the \ref concepts::Digraph
955
  /// This class fully conforms to the \ref concepts::Digraph
956 956
  /// "Digraph" concept.
... ...
@@ -1043,3 +1043,3 @@
1043 1043
    /// and target node \c t.
1044
    /// \return the new arc.
1044
    /// \return The new arc.
1045 1045
    Arc addArc(const Node& s, const Node& t) {
... ...
@@ -1302,3 +1302,3 @@
1302 1302
  ///
1303
  /// This class is fully conform to the \ref concepts::Graph
1303
  /// This class fully conforms to the \ref concepts::Graph
1304 1304
  /// "Graph" concept.
... ...
@@ -1391,3 +1391,3 @@
1391 1391
    /// and node \c v endpoints.
1392
    /// \return the new edge.
1392
    /// \return The new edge.
1393 1393
    Edge addEdge(const Node& u, const Node& v) {
Ignore white space 6 line context
... ...
@@ -48,6 +48,6 @@
48 48
  ///
49
  ///\param Graph Type of the underlying graph.
50
  ///\param Item Type of the items the data is assigned to (Graph::Node,
51
  ///Graph::Arc, Graph::Edge).
52
  template<class Graph, class Item>
49
  ///\param GR Type of the underlying graph.
50
  ///\param Item Type of the items the data is assigned to (\c GR::Node,
51
  ///\c GR::Arc or \c GR::Edge).
52
  template<class GR, class Item>
53 53
  class Elevator
... ...
@@ -62,6 +62,6 @@
62 62
    typedef Item *Vit;
63
    typedef typename ItemSetTraits<Graph,Item>::template Map<Vit>::Type VitMap;
64
    typedef typename ItemSetTraits<Graph,Item>::template Map<int>::Type IntMap;
63
    typedef typename ItemSetTraits<GR,Item>::template Map<Vit>::Type VitMap;
64
    typedef typename ItemSetTraits<GR,Item>::template Map<int>::Type IntMap;
65 65

	
66
    const Graph &_g;
66
    const GR &_g;
67 67
    int _max_level;
... ...
@@ -107,3 +107,3 @@
107 107
    ///Set the range of the possible labels to <tt>[0..max_level]</tt>.
108
    Elevator(const Graph &graph,int max_level) :
108
    Elevator(const GR &graph,int max_level) :
109 109
      _g(graph),
... ...
@@ -124,5 +124,5 @@
124 124
    ///where \c max_level is equal to the number of labeled items in the graph.
125
    Elevator(const Graph &graph) :
125
    Elevator(const GR &graph) :
126 126
      _g(graph),
127
      _max_level(countItems<Graph, Item>(graph)),
127
      _max_level(countItems<GR, Item>(graph)),
128 128
      _item_num(_max_level),
... ...
@@ -432,3 +432,3 @@
432 432
      Vit n=&_items[0];
433
      for(typename ItemSetTraits<Graph,Item>::ItemIt i(_g);i!=INVALID;++i)
433
      for(typename ItemSetTraits<GR,Item>::ItemIt i(_g);i!=INVALID;++i)
434 434
        {
... ...
@@ -491,6 +491,6 @@
491 491
  ///
492
  ///\param Graph Type of the underlying graph.
493
  ///\param Item Type of the items the data is assigned to (Graph::Node,
494
  ///Graph::Arc, Graph::Edge).
495
  template <class Graph, class Item>
492
  ///\param GR Type of the underlying graph.
493
  ///\param Item Type of the items the data is assigned to (\c GR::Node,
494
  ///\c GR::Arc or \c GR::Edge).
495
  template <class GR, class Item>
496 496
  class LinkedElevator {
... ...
@@ -503,10 +503,10 @@
503 503

	
504
    typedef typename ItemSetTraits<Graph,Item>::
504
    typedef typename ItemSetTraits<GR,Item>::
505 505
    template Map<Item>::Type ItemMap;
506
    typedef typename ItemSetTraits<Graph,Item>::
506
    typedef typename ItemSetTraits<GR,Item>::
507 507
    template Map<int>::Type IntMap;
508
    typedef typename ItemSetTraits<Graph,Item>::
508
    typedef typename ItemSetTraits<GR,Item>::
509 509
    template Map<bool>::Type BoolMap;
510 510

	
511
    const Graph &_graph;
511
    const GR &_graph;
512 512
    int _max_level;
... ...
@@ -527,3 +527,3 @@
527 527
    ///Set the range of the possible labels to <tt>[0..max_level]</tt>.
528
    LinkedElevator(const Graph& graph, int max_level)
528
    LinkedElevator(const GR& graph, int max_level)
529 529
      : _graph(graph), _max_level(max_level), _item_num(_max_level),
... ...
@@ -540,4 +540,4 @@
540 540
    ///where \c max_level is equal to the number of labeled items in the graph.
541
    LinkedElevator(const Graph& graph)
542
      : _graph(graph), _max_level(countItems<Graph, Item>(graph)),
541
    LinkedElevator(const GR& graph)
542
      : _graph(graph), _max_level(countItems<GR, Item>(graph)),
543 543
        _item_num(_max_level),
... ...
@@ -937,3 +937,3 @@
937 937
      _init_level = 0;
938
      for(typename ItemSetTraits<Graph,Item>::ItemIt i(_graph);
938
      for(typename ItemSetTraits<GR,Item>::ItemIt i(_graph);
939 939
          i != INVALID; ++i) {
Ignore white space 6 line context
... ...
@@ -56,14 +56,14 @@
56 56
  ///\sa EulerIt
57
  template<class Digraph>
57
  template<typename GR>
58 58
  class DiEulerIt
59 59
  {
60
    typedef typename Digraph::Node Node;
61
    typedef typename Digraph::NodeIt NodeIt;
62
    typedef typename Digraph::Arc Arc;
63
    typedef typename Digraph::ArcIt ArcIt;
64
    typedef typename Digraph::OutArcIt OutArcIt;
65
    typedef typename Digraph::InArcIt InArcIt;
60
    typedef typename GR::Node Node;
61
    typedef typename GR::NodeIt NodeIt;
62
    typedef typename GR::Arc Arc;
63
    typedef typename GR::ArcIt ArcIt;
64
    typedef typename GR::OutArcIt OutArcIt;
65
    typedef typename GR::InArcIt InArcIt;
66 66

	
67
    const Digraph &g;
68
    typename Digraph::template NodeMap<OutArcIt> nedge;
67
    const GR &g;
68
    typename GR::template NodeMap<OutArcIt> nedge;
69 69
    std::list<Arc> euler;
... ...
@@ -74,7 +74,7 @@
74 74

	
75
    ///\param _g A digraph.
75
    ///\param gr A digraph.
76 76
    ///\param start The starting point of the tour. If it is not given
77 77
    ///       the tour will start from the first node.
78
    DiEulerIt(const Digraph &_g,typename Digraph::Node start=INVALID)
79
      : g(_g), nedge(g)
78
    DiEulerIt(const GR &gr, typename GR::Node start = INVALID)
79
      : g(gr), nedge(g)
80 80
    {
... ...
@@ -147,16 +147,16 @@
147 147
  ///\sa EulerIt
148
  template<class Digraph>
148
  template<typename GR>
149 149
  class EulerIt
150 150
  {
151
    typedef typename Digraph::Node Node;
152
    typedef typename Digraph::NodeIt NodeIt;
153
    typedef typename Digraph::Arc Arc;
154
    typedef typename Digraph::Edge Edge;
155
    typedef typename Digraph::ArcIt ArcIt;
156
    typedef typename Digraph::OutArcIt OutArcIt;
157
    typedef typename Digraph::InArcIt InArcIt;
151
    typedef typename GR::Node Node;
152
    typedef typename GR::NodeIt NodeIt;
153
    typedef typename GR::Arc Arc;
154
    typedef typename GR::Edge Edge;
155
    typedef typename GR::ArcIt ArcIt;
156
    typedef typename GR::OutArcIt OutArcIt;
157
    typedef typename GR::InArcIt InArcIt;
158 158

	
159
    const Digraph &g;
160
    typename Digraph::template NodeMap<OutArcIt> nedge;
161
    typename Digraph::template EdgeMap<bool> visited;
159
    const GR &g;
160
    typename GR::template NodeMap<OutArcIt> nedge;
161
    typename GR::template EdgeMap<bool> visited;
162 162
    std::list<Arc> euler;
... ...
@@ -167,7 +167,7 @@
167 167

	
168
    ///\param _g An graph.
168
    ///\param gr An graph.
169 169
    ///\param start The starting point of the tour. If it is not given
170 170
    ///       the tour will start from the first node.
171
    EulerIt(const Digraph &_g,typename Digraph::Node start=INVALID)
172
      : g(_g), nedge(g), visited(g,false)
171
    EulerIt(const GR &gr, typename GR::Node start = INVALID)
172
      : g(gr), nedge(g), visited(g, false)
173 173
    {
... ...
@@ -240,3 +240,3 @@
240 240
  ///but still have an Euler tour</em>.
241
  template<class Digraph>
241
  template<typename GR>
242 242
#ifdef DOXYGEN
... ...
@@ -244,6 +244,6 @@
244 244
#else
245
  typename enable_if<UndirectedTagIndicator<Digraph>,bool>::type
246
  eulerian(const Digraph &g)
245
  typename enable_if<UndirectedTagIndicator<GR>,bool>::type
246
  eulerian(const GR &g)
247 247
  {
248
    for(typename Digraph::NodeIt n(g);n!=INVALID;++n)
248
    for(typename GR::NodeIt n(g);n!=INVALID;++n)
249 249
      if(countIncEdges(g,n)%2) return false;
... ...
@@ -251,10 +251,10 @@
251 251
  }
252
  template<class Digraph>
253
  typename disable_if<UndirectedTagIndicator<Digraph>,bool>::type
252
  template<class GR>
253
  typename disable_if<UndirectedTagIndicator<GR>,bool>::type
254 254
#endif
255
  eulerian(const Digraph &g)
255
  eulerian(const GR &g)
256 256
  {
257
    for(typename Digraph::NodeIt n(g);n!=INVALID;++n)
257
    for(typename GR::NodeIt n(g);n!=INVALID;++n)
258 258
      if(countInArcs(g,n)!=countOutArcs(g,n)) return false;
259
    return connected(Undirector<const Digraph>(g));
259
    return connected(Undirector<const GR>(g));
260 260
  }
Ignore white space 6 line context
... ...
@@ -66,7 +66,7 @@
66 66
///
67
///\c G is the type of the underlying graph.
68
template<class G>
67
///\param GR is the type of the underlying graph.
68
template<class GR>
69 69
struct DefaultGraphToEpsTraits
70 70
{
71
  typedef G Graph;
71
  typedef GR Graph;
72 72
  typedef typename Graph::Node Node;
... ...
@@ -141,11 +141,10 @@
141 141
  ///Constructor
142
  ///\param _g  Reference to the graph to be printed.
143
  ///\param _os Reference to the output stream.
144
  ///\param _os Reference to the output stream.
142
  ///\param gr  Reference to the graph to be printed.
143
  ///\param ost Reference to the output stream.
145 144
  ///By default it is <tt>std::cout</tt>.
146
  ///\param _pros If it is \c true, then the \c ostream referenced by \c _os
145
  ///\param pros If it is \c true, then the \c ostream referenced by \c os
147 146
  ///will be explicitly deallocated by the destructor.
148
  DefaultGraphToEpsTraits(const G &_g,std::ostream& _os=std::cout,
149
                          bool _pros=false) :
150
    g(_g), os(_os),
147
  DefaultGraphToEpsTraits(const GR &gr, std::ostream& ost = std::cout,
148
                          bool pros = false) :
149
    g(gr), os(ost),
151 150
    _coords(dim2::Point<double>(1,1)), _nodeSizes(1), _nodeShapes(0),
... ...
@@ -160,4 +159,4 @@
160 159
    _showNodePsText(false), _nodePsTexts(false), _nodePsTextsPreamble(0),
161
    _undirected(lemon::UndirectedTagIndicator<G>::value),
162
    _pleaseRemoveOsStream(_pros), _scaleToA4(false),
160
    _undirected(lemon::UndirectedTagIndicator<GR>::value),
161
    _pleaseRemoveOsStream(pros), _scaleToA4(false),
163 162
    _nodeTextColorType(SAME_COL), _nodeTextColors(BLACK),
... ...
@@ -1136,9 +1135,9 @@
1136 1135
///\sa GraphToEps
1137
///\sa graphToEps(G &g, const char *file_name)
1138
template<class G>
1139
GraphToEps<DefaultGraphToEpsTraits<G> >
1140
graphToEps(G &g, std::ostream& os=std::cout)
1136
///\sa graphToEps(GR &g, const char *file_name)
1137
template<class GR>
1138
GraphToEps<DefaultGraphToEpsTraits<GR> >
1139
graphToEps(GR &g, std::ostream& os=std::cout)
1141 1140
{
1142 1141
  return
1143
    GraphToEps<DefaultGraphToEpsTraits<G> >(DefaultGraphToEpsTraits<G>(g,os));
1142
    GraphToEps<DefaultGraphToEpsTraits<GR> >(DefaultGraphToEpsTraits<GR>(g,os));
1144 1143
}
... ...
@@ -1149,9 +1148,9 @@
1149 1148
///This function does the same as
1150
///\ref graphToEps(G &g,std::ostream& os)
1149
///\ref graphToEps(GR &g,std::ostream& os)
1151 1150
///but it writes its output into the file \c file_name
1152 1151
///instead of a stream.
1153
///\sa graphToEps(G &g, std::ostream& os)
1154
template<class G>
1155
GraphToEps<DefaultGraphToEpsTraits<G> >
1156
graphToEps(G &g,const char *file_name)
1152
///\sa graphToEps(GR &g, std::ostream& os)
1153
template<class GR>
1154
GraphToEps<DefaultGraphToEpsTraits<GR> >
1155
graphToEps(GR &g,const char *file_name)
1157 1156
{
... ...
@@ -1162,4 +1161,4 @@
1162 1161
  }
1163
  return GraphToEps<DefaultGraphToEpsTraits<G> >
1164
    (DefaultGraphToEpsTraits<G>(g,*os,true));
1162
  return GraphToEps<DefaultGraphToEpsTraits<GR> >
1163
    (DefaultGraphToEpsTraits<GR>(g,*os,true));
1165 1164
}
... ...
@@ -1170,9 +1169,9 @@
1170 1169
///This function does the same as
1171
///\ref graphToEps(G &g,std::ostream& os)
1170
///\ref graphToEps(GR &g,std::ostream& os)
1172 1171
///but it writes its output into the file \c file_name
1173 1172
///instead of a stream.
1174
///\sa graphToEps(G &g, std::ostream& os)
1175
template<class G>
1176
GraphToEps<DefaultGraphToEpsTraits<G> >
1177
graphToEps(G &g,const std::string& file_name)
1173
///\sa graphToEps(GR &g, std::ostream& os)
1174
template<class GR>
1175
GraphToEps<DefaultGraphToEpsTraits<GR> >
1176
graphToEps(GR &g,const std::string& file_name)
1178 1177
{
... ...
@@ -1183,4 +1182,4 @@
1183 1182
  }
1184
  return GraphToEps<DefaultGraphToEpsTraits<G> >
1185
    (DefaultGraphToEpsTraits<G>(g,*os,true));
1183
  return GraphToEps<DefaultGraphToEpsTraits<GR> >
1184
    (DefaultGraphToEpsTraits<GR>(g,*os,true));
1186 1185
}
Ignore white space 6 line context
... ...
@@ -498,3 +498,3 @@
498 498
  ///
499
  /// This graph type is fully conform to the \ref concepts::Graph
499
  /// This graph type fully conforms to the \ref concepts::Graph
500 500
  /// "Graph" concept, and it also has an important extra feature
Ignore white space 6 line context
... ...
@@ -59,16 +59,16 @@
59 59
  /// which solves the undirected problem in
60
  /// \f$ O(nm + n^2 \log(n)) \f$ time: it is implemented in the
60
  /// \f$ O(nm + n^2 \log n) \f$ time: it is implemented in the
61 61
  /// NagamochiIbaraki algorithm class.
62 62
  ///
63
  /// \param _Digraph is the graph type of the algorithm.
64
  /// \param _CapacityMap is an edge map of capacities which should
65
  /// be any numreric type. The default type is _Digraph::ArcMap<int>.
66
  /// \param _Tolerance is the handler of the inexact computation. The
67
  /// default type for this is Tolerance<CapacityMap::Value>.
63
  /// \param GR The digraph class the algorithm runs on.
64
  /// \param CAP An arc map of capacities which can be any numreric type.
65
  /// The default type is \ref concepts::Digraph::ArcMap "GR::ArcMap<int>".
66
  /// \param TOL Tolerance class for handling inexact computations. The
67
  /// default tolerance type is \ref Tolerance "Tolerance<CAP::Value>".
68 68
#ifdef DOXYGEN
69
  template <typename _Digraph, typename _CapacityMap, typename _Tolerance>
69
  template <typename GR, typename CAP, typename TOL>
70 70
#else
71
  template <typename _Digraph,
72
            typename _CapacityMap = typename _Digraph::template ArcMap<int>,
73
            typename _Tolerance = Tolerance<typename _CapacityMap::Value> >
71
  template <typename GR,
72
            typename CAP = typename GR::template ArcMap<int>,
73
            typename TOL = Tolerance<typename CAP::Value> >
74 74
#endif
... ...
@@ -77,5 +77,5 @@
77 77

	
78
    typedef _Digraph Digraph;
79
    typedef _CapacityMap CapacityMap;
80
    typedef _Tolerance Tolerance;
78
    typedef GR Digraph;
79
    typedef CAP CapacityMap;
80
    typedef TOL Tolerance;
81 81

	
... ...
@@ -819,3 +819,3 @@
819 819
    /// The simplest way to execute the algorithm is to use
820
    /// one of the member functions called \c run(...).
820
    /// one of the member functions called \ref run().
821 821
    /// \n
Ignore white space 6 line context
... ...
@@ -293,3 +293,3 @@
293 293
  ///
294
  /// This graph type is fully conform to the \ref concepts::Graph
294
  /// This graph type fully conforms to the \ref concepts::Graph
295 295
  /// "Graph" concept, and it also has an important extra feature
Ignore white space 6 line context
... ...
@@ -450,3 +450,3 @@
450 450
  /// maps are read.
451
  template <typename _Digraph>
451
  template <typename GR>
452 452
  class DigraphReader {
... ...
@@ -454,8 +454,8 @@
454 454

	
455
    typedef _Digraph Digraph;
455
    typedef GR Digraph;
456

	
457
  private:
458

	
456 459
    TEMPLATE_DIGRAPH_TYPEDEFS(Digraph);
457 460

	
458
  private:
459

	
460

	
461 461
    std::istream* _is;
... ...
@@ -1248,3 +1248,3 @@
1248 1248
  /// it's value is an edge label prefixed with \c '+' or \c '-'.
1249
  template <typename _Graph>
1249
  template <typename GR>
1250 1250
  class GraphReader {
... ...
@@ -1252,7 +1252,8 @@
1252 1252

	
1253
    typedef _Graph Graph;
1253
    typedef GR Graph;
1254

	
1255
  private:
1256

	
1254 1257
    TEMPLATE_GRAPH_TYPEDEFS(Graph);
1255 1258

	
1256
  private:
1257

	
1258 1259
    std::istream* _is;
... ...
@@ -1358,8 +1359,8 @@
1358 1359
  private:
1359
    template <typename GR>
1360
    friend GraphReader<GR> graphReader(GR& graph, std::istream& is);
1361
    template <typename GR>
1362
    friend GraphReader<GR> graphReader(GR& graph, const std::string& fn); 
1363
    template <typename GR>
1364
    friend GraphReader<GR> graphReader(GR& graph, const char *fn);
1360
    template <typename Graph>
1361
    friend GraphReader<Graph> graphReader(Graph& graph, std::istream& is);
1362
    template <typename Graph>
1363
    friend GraphReader<Graph> graphReader(Graph& graph, const std::string& fn); 
1364
    template <typename Graph>
1365
    friend GraphReader<Graph> graphReader(Graph& graph, const char *fn);
1365 1366

	
Ignore white space 6 line context
... ...
@@ -408,3 +408,3 @@
408 408
  /// output to the output of the first pass.
409
  template <typename _Digraph>
409
  template <typename GR>
410 410
  class DigraphWriter {
... ...
@@ -412,3 +412,3 @@
412 412

	
413
    typedef _Digraph Digraph;
413
    typedef GR Digraph;
414 414
    TEMPLATE_DIGRAPH_TYPEDEFS(Digraph);
... ...
@@ -976,3 +976,3 @@
976 976
  /// of the arc) and the label of corresponding edge.
977
  template <typename _Graph>
977
  template <typename GR>
978 978
  class GraphWriter {
... ...
@@ -980,3 +980,3 @@
980 980

	
981
    typedef _Graph Graph;
981
    typedef GR Graph;
982 982
    TEMPLATE_GRAPH_TYPEDEFS(Graph);
... ...
@@ -1075,11 +1075,11 @@
1075 1075

	
1076
    template <typename GR>
1077
    friend GraphWriter<GR> graphWriter(const GR& graph,
1078
                                       std::ostream& os);
1079
    template <typename GR>
1080
    friend GraphWriter<GR> graphWriter(const GR& graph,
1081
                                       const std::string& fn);
1082
    template <typename GR>
1083
    friend GraphWriter<GR> graphWriter(const GR& graph,
1084
                                       const char *fn);
1076
    template <typename Graph>
1077
    friend GraphWriter<Graph> graphWriter(const Graph& graph,
1078
                                          std::ostream& os);
1079
    template <typename Graph>
1080
    friend GraphWriter<Graph> graphWriter(const Graph& graph,
1081
                                          const std::string& fn);
1082
    template <typename Graph>
1083
    friend GraphWriter<Graph> graphWriter(const Graph& graph,
1084
                                          const char *fn);
1085 1085
    
Ignore white space 6 line context
... ...
@@ -353,3 +353,3 @@
353 353
    ///Add a new node to the digraph.
354
    ///\return the new node.
354
    ///\return The new node.
355 355
    Node addNode() { return Parent::addNode(); }
... ...
@@ -360,3 +360,3 @@
360 360
    ///and target node \c t.
361
    ///\return the new arc.
361
    ///\return The new arc.
362 362
    Arc addArc(const Node& s, const Node& t) {
... ...
@@ -1210,3 +1210,3 @@
1210 1210
    /// Add a new node to the graph.
1211
    /// \return the new node.
1211
    /// \return The new node.
1212 1212
    Node addNode() { return Parent::addNode(); }
... ...
@@ -1217,3 +1217,3 @@
1217 1217
    /// and target node \c t.
1218
    /// \return the new edge.
1218
    /// \return The new edge.
1219 1219
    Edge addEdge(const Node& s, const Node& t) {
Ignore white space 6 line context
... ...
@@ -65,5 +65,6 @@
65 65
  public:
66
    typedef MapBase<K, V> Parent;
67
    typedef typename Parent::Key Key;
68
    typedef typename Parent::Value Value;
66
    ///\e
67
    typedef K Key;
68
    ///\e
69
    typedef V Value;
69 70

	
... ...
@@ -104,5 +105,6 @@
104 105
  public:
105
    typedef MapBase<K, V> Parent;
106
    typedef typename Parent::Key Key;
107
    typedef typename Parent::Value Value;
106
    ///\e
107
    typedef K Key;
108
    ///\e
109
    typedef V Value;
108 110

	
... ...
@@ -170,5 +172,6 @@
170 172
  public:
171
    typedef MapBase<K, V> Parent;
172
    typedef typename Parent::Key Key;
173
    typedef typename Parent::Value Value;
173
    ///\e
174
    typedef K Key;
175
    ///\e
176
    typedef V Value;
174 177

	
... ...
@@ -204,5 +207,6 @@
204 207
  public:
205
    typedef MapBase<T, T> Parent;
206
    typedef typename Parent::Key Key;
207
    typedef typename Parent::Value Value;
208
    ///\e
209
    typedef T Key;
210
    ///\e
211
    typedef T Value;
208 212

	
... ...
@@ -247,7 +251,6 @@
247 251

	
248
    typedef MapBase<int, V> Parent;
249 252
    /// Key type
250
    typedef typename Parent::Key Key;
253
    typedef int Key;
251 254
    /// Value type
252
    typedef typename Parent::Value Value;
255
    typedef V Value;
253 256
    /// Reference type
... ...
@@ -355,3 +358,3 @@
355 358
  /// function.
356
  template <typename K, typename V, typename Compare = std::less<K> >
359
  template <typename K, typename V, typename Comp = std::less<K> >
357 360
  class SparseMap : public MapBase<K, V> {
... ...
@@ -361,7 +364,6 @@
361 364

	
362
    typedef MapBase<K, V> Parent;
363 365
    /// Key type
364
    typedef typename Parent::Key Key;
366
    typedef K Key;
365 367
    /// Value type
366
    typedef typename Parent::Value Value;
368
    typedef V Value;
367 369
    /// Reference type
... ...
@@ -375,3 +377,3 @@
375 377

	
376
    typedef std::map<K, V, Compare> Map;
378
    typedef std::map<K, V, Comp> Map;
377 379
    Map _map;
... ...
@@ -491,5 +493,6 @@
491 493
  public:
492
    typedef MapBase<typename M2::Key, typename M1::Value> Parent;
493
    typedef typename Parent::Key Key;
494
    typedef typename Parent::Value Value;
494
    ///\e
495
    typedef typename M2::Key Key;
496
    ///\e
497
    typedef typename M1::Value Value;
495 498

	
... ...
@@ -498,3 +501,3 @@
498 501

	
499
    /// \e
502
    ///\e
500 503
    typename MapTraits<M1>::ConstReturnValue
... ...
@@ -547,5 +550,6 @@
547 550
  public:
548
    typedef MapBase<typename M1::Key, V> Parent;
549
    typedef typename Parent::Key Key;
550
    typedef typename Parent::Value Value;
551
    ///\e
552
    typedef typename M1::Key Key;
553
    ///\e
554
    typedef V Value;
551 555

	
... ...
@@ -554,3 +558,3 @@
554 558
      : _m1(m1), _m2(m2), _f(f) {}
555
    /// \e
559
    ///\e
556 560
    Value operator[](const Key &k) const { return _f(_m1[k],_m2[k]); }
... ...
@@ -617,5 +621,6 @@
617 621
  public:
618
    typedef MapBase<K, V> Parent;
619
    typedef typename Parent::Key Key;
620
    typedef typename Parent::Value Value;
622
    ///\e
623
    typedef K Key;
624
    ///\e
625
    typedef V Value;
621 626

	
... ...
@@ -623,3 +628,3 @@
623 628
    FunctorToMap(const F &f = F()) : _f(f) {}
624
    /// \e
629
    ///\e
625 630
    Value operator[](const Key &k) const { return _f(k); }
... ...
@@ -671,8 +676,9 @@
671 676
  public:
672
    typedef MapBase<typename M::Key, typename M::Value> Parent;
673
    typedef typename Parent::Key Key;
674
    typedef typename Parent::Value Value;
675

	
676
    typedef typename Parent::Key argument_type;
677
    typedef typename Parent::Value result_type;
677
    ///\e
678
    typedef typename M::Key Key;
679
    ///\e
680
    typedef typename M::Value Value;
681

	
682
    typedef typename M::Key argument_type;
683
    typedef typename M::Value result_type;
678 684

	
... ...
@@ -680,5 +686,5 @@
680 686
    MapToFunctor(const M &m) : _m(m) {}
681
    /// \e
687
    ///\e
682 688
    Value operator()(const Key &k) const { return _m[k]; }
683
    /// \e
689
    ///\e
684 690
    Value operator[](const Key &k) const { return _m[k]; }
... ...
@@ -711,5 +717,6 @@
711 717
  public:
712
    typedef MapBase<typename M::Key, V> Parent;
713
    typedef typename Parent::Key Key;
714
    typedef typename Parent::Value Value;
718
    ///\e
719
    typedef typename M::Key Key;
720
    ///\e
721
    typedef V Value;
715 722

	
... ...
@@ -721,3 +728,3 @@
721 728

	
722
    /// \e
729
    ///\e
723 730
    Value operator[](const Key &k) const { return _m[k]; }
... ...
@@ -753,5 +760,6 @@
753 760
  public:
754
    typedef MapBase<typename M1::Key, typename M1::Value> Parent;
755
    typedef typename Parent::Key Key;
756
    typedef typename Parent::Value Value;
761
    ///\e
762
    typedef typename M1::Key Key;
763
    ///\e
764
    typedef typename M1::Value Value;
757 765

	
... ...
@@ -799,5 +807,6 @@
799 807
  public:
800
    typedef MapBase<typename M1::Key, typename M1::Value> Parent;
801
    typedef typename Parent::Key Key;
802
    typedef typename Parent::Value Value;
808
    ///\e
809
    typedef typename M1::Key Key;
810
    ///\e
811
    typedef typename M1::Value Value;
803 812

	
... ...
@@ -805,3 +814,3 @@
805 814
    AddMap(const M1 &m1, const M2 &m2) : _m1(m1), _m2(m2) {}
806
    /// \e
815
    ///\e
807 816
    Value operator[](const Key &k) const { return _m1[k]+_m2[k]; }
... ...
@@ -847,5 +856,6 @@
847 856
  public:
848
    typedef MapBase<typename M1::Key, typename M1::Value> Parent;
849
    typedef typename Parent::Key Key;
850
    typedef typename Parent::Value Value;
857
    ///\e
858
    typedef typename M1::Key Key;
859
    ///\e
860
    typedef typename M1::Value Value;
851 861

	
... ...
@@ -853,3 +863,3 @@
853 863
    SubMap(const M1 &m1, const M2 &m2) : _m1(m1), _m2(m2) {}
854
    /// \e
864
    ///\e
855 865
    Value operator[](const Key &k) const { return _m1[k]-_m2[k]; }
... ...
@@ -896,5 +906,6 @@
896 906
  public:
897
    typedef MapBase<typename M1::Key, typename M1::Value> Parent;
898
    typedef typename Parent::Key Key;
899
    typedef typename Parent::Value Value;
907
    ///\e
908
    typedef typename M1::Key Key;
909
    ///\e
910
    typedef typename M1::Value Value;
900 911

	
... ...
@@ -902,3 +913,3 @@
902 913
    MulMap(const M1 &m1,const M2 &m2) : _m1(m1), _m2(m2) {}
903
    /// \e
914
    ///\e
904 915
    Value operator[](const Key &k) const { return _m1[k]*_m2[k]; }
... ...
@@ -944,5 +955,6 @@
944 955
  public:
945
    typedef MapBase<typename M1::Key, typename M1::Value> Parent;
946
    typedef typename Parent::Key Key;
947
    typedef typename Parent::Value Value;
956
    ///\e
957
    typedef typename M1::Key Key;
958
    ///\e
959
    typedef typename M1::Value Value;
948 960

	
... ...
@@ -950,3 +962,3 @@
950 962
    DivMap(const M1 &m1,const M2 &m2) : _m1(m1), _m2(m2) {}
951
    /// \e
963
    ///\e
952 964
    Value operator[](const Key &k) const { return _m1[k]/_m2[k]; }
... ...
@@ -994,5 +1006,6 @@
994 1006
  public:
995
    typedef MapBase<typename M::Key, typename M::Value> Parent;
996
    typedef typename Parent::Key Key;
997
    typedef typename Parent::Value Value;
1007
    ///\e
1008
    typedef typename M::Key Key;
1009
    ///\e
1010
    typedef typename M::Value Value;
998 1011

	
... ...
@@ -1004,3 +1017,3 @@
1004 1017
    ShiftMap(const M &m, const C &v) : _m(m), _v(v) {}
1005
    /// \e
1018
    ///\e
1006 1019
    Value operator[](const Key &k) const { return _m[k]+_v; }
... ...
@@ -1024,5 +1037,6 @@
1024 1037
  public:
1025
    typedef MapBase<typename M::Key, typename M::Value> Parent;
1026
    typedef typename Parent::Key Key;
1027
    typedef typename Parent::Value Value;
1038
    ///\e
1039
    typedef typename M::Key Key;
1040
    ///\e
1041
    typedef typename M::Value Value;
1028 1042

	
... ...
@@ -1034,5 +1048,5 @@
1034 1048
    ShiftWriteMap(M &m, const C &v) : _m(m), _v(v) {}
1035
    /// \e
1049
    ///\e
1036 1050
    Value operator[](const Key &k) const { return _m[k]+_v; }
1037
    /// \e
1051
    ///\e
1038 1052
    void set(const Key &k, const Value &v) { _m.set(k, v-_v); }
... ...
@@ -1095,5 +1109,6 @@
1095 1109
  public:
1096
    typedef MapBase<typename M::Key, typename M::Value> Parent;
1097
    typedef typename Parent::Key Key;
1098
    typedef typename Parent::Value Value;
1110
    ///\e
1111
    typedef typename M::Key Key;
1112
    ///\e
1113
    typedef typename M::Value Value;
1099 1114

	
... ...
@@ -1105,3 +1120,3 @@
1105 1120
    ScaleMap(const M &m, const C &v) : _m(m), _v(v) {}
1106
    /// \e
1121
    ///\e
1107 1122
    Value operator[](const Key &k) const { return _v*_m[k]; }
... ...
@@ -1126,5 +1141,6 @@
1126 1141
  public:
1127
    typedef MapBase<typename M::Key, typename M::Value> Parent;
1128
    typedef typename Parent::Key Key;
1129
    typedef typename Parent::Value Value;
1142
    ///\e
1143
    typedef typename M::Key Key;
1144
    ///\e
1145
    typedef typename M::Value Value;
1130 1146

	
... ...
@@ -1136,5 +1152,5 @@
1136 1152
    ScaleWriteMap(M &m, const C &v) : _m(m), _v(v) {}
1137
    /// \e
1153
    ///\e
1138 1154
    Value operator[](const Key &k) const { return _v*_m[k]; }
1139
    /// \e
1155
    ///\e
1140 1156
    void set(const Key &k, const Value &v) { _m.set(k, v/_v); }
... ...
@@ -1195,5 +1211,6 @@
1195 1211
  public:
1196
    typedef MapBase<typename M::Key, typename M::Value> Parent;
1197
    typedef typename Parent::Key Key;
1198
    typedef typename Parent::Value Value;
1212
    ///\e
1213
    typedef typename M::Key Key;
1214
    ///\e
1215
    typedef typename M::Value Value;
1199 1216

	
... ...
@@ -1201,3 +1218,3 @@
1201 1218
    NegMap(const M &m) : _m(m) {}
1202
    /// \e
1219
    ///\e
1203 1220
    Value operator[](const Key &k) const { return -_m[k]; }
... ...
@@ -1230,5 +1247,6 @@
1230 1247
  public:
1231
    typedef MapBase<typename M::Key, typename M::Value> Parent;
1232
    typedef typename Parent::Key Key;
1233
    typedef typename Parent::Value Value;
1248
    ///\e
1249
    typedef typename M::Key Key;
1250
    ///\e
1251
    typedef typename M::Value Value;
1234 1252

	
... ...
@@ -1236,5 +1254,5 @@
1236 1254
    NegWriteMap(M &m) : _m(m) {}
1237
    /// \e
1255
    ///\e
1238 1256
    Value operator[](const Key &k) const { return -_m[k]; }
1239
    /// \e
1257
    ///\e
1240 1258
    void set(const Key &k, const Value &v) { _m.set(k, -v); }
... ...
@@ -1284,5 +1302,6 @@
1284 1302
  public:
1285
    typedef MapBase<typename M::Key, typename M::Value> Parent;
1286
    typedef typename Parent::Key Key;
1287
    typedef typename Parent::Value Value;
1303
    ///\e
1304
    typedef typename M::Key Key;
1305
    ///\e
1306
    typedef typename M::Value Value;
1288 1307

	
... ...
@@ -1290,3 +1309,3 @@
1290 1309
    AbsMap(const M &m) : _m(m) {}
1291
    /// \e
1310
    ///\e
1292 1311
    Value operator[](const Key &k) const {
... ...
@@ -1339,5 +1358,6 @@
1339 1358
  public:
1340
    typedef MapBase<K, bool> Parent;
1341
    typedef typename Parent::Key Key;
1342
    typedef typename Parent::Value Value;
1359
    ///\e
1360
    typedef K Key;
1361
    ///\e
1362
    typedef bool Value;
1343 1363

	
... ...
@@ -1376,5 +1396,6 @@
1376 1396
  public:
1377
    typedef MapBase<K, bool> Parent;
1378
    typedef typename Parent::Key Key;
1379
    typedef typename Parent::Value Value;
1397
    ///\e
1398
    typedef K Key;
1399
    ///\e
1400
    typedef bool Value;
1380 1401

	
... ...
@@ -1421,5 +1442,6 @@
1421 1442
  public:
1422
    typedef MapBase<typename M1::Key, bool> Parent;
1423
    typedef typename Parent::Key Key;
1424
    typedef typename Parent::Value Value;
1443
    ///\e
1444
    typedef typename M1::Key Key;
1445
    ///\e
1446
    typedef bool Value;
1425 1447

	
... ...
@@ -1427,3 +1449,3 @@
1427 1449
    AndMap(const M1 &m1, const M2 &m2) : _m1(m1), _m2(m2) {}
1428
    /// \e
1450
    ///\e
1429 1451
    Value operator[](const Key &k) const { return _m1[k]&&_m2[k]; }
... ...
@@ -1469,5 +1491,6 @@
1469 1491
  public:
1470
    typedef MapBase<typename M1::Key, bool> Parent;
1471
    typedef typename Parent::Key Key;
1472
    typedef typename Parent::Value Value;
1492
    ///\e
1493
    typedef typename M1::Key Key;
1494
    ///\e
1495
    typedef bool Value;
1473 1496

	
... ...
@@ -1475,3 +1498,3 @@
1475 1498
    OrMap(const M1 &m1, const M2 &m2) : _m1(m1), _m2(m2) {}
1476
    /// \e
1499
    ///\e
1477 1500
    Value operator[](const Key &k) const { return _m1[k]||_m2[k]; }
... ...
@@ -1508,5 +1531,6 @@
1508 1531
  public:
1509
    typedef MapBase<typename M::Key, bool> Parent;
1510
    typedef typename Parent::Key Key;
1511
    typedef typename Parent::Value Value;
1532
    ///\e
1533
    typedef typename M::Key Key;
1534
    ///\e
1535
    typedef bool Value;
1512 1536

	
... ...
@@ -1514,3 +1538,3 @@
1514 1538
    NotMap(const M &m) : _m(m) {}
1515
    /// \e
1539
    ///\e
1516 1540
    Value operator[](const Key &k) const { return !_m[k]; }
... ...
@@ -1534,5 +1558,6 @@
1534 1558
  public:
1535
    typedef MapBase<typename M::Key, bool> Parent;
1536
    typedef typename Parent::Key Key;
1537
    typedef typename Parent::Value Value;
1559
    ///\e
1560
    typedef typename M::Key Key;
1561
    ///\e
1562
    typedef bool Value;
1538 1563

	
... ...
@@ -1540,5 +1565,5 @@
1540 1565
    NotWriteMap(M &m) : _m(m) {}
1541
    /// \e
1566
    ///\e
1542 1567
    Value operator[](const Key &k) const { return !_m[k]; }
1543
    /// \e
1568
    ///\e
1544 1569
    void set(const Key &k, bool v) { _m.set(k, !v); }
... ...
@@ -1597,5 +1622,6 @@
1597 1622
  public:
1598
    typedef MapBase<typename M1::Key, bool> Parent;
1599
    typedef typename Parent::Key Key;
1600
    typedef typename Parent::Value Value;
1623
    ///\e
1624
    typedef typename M1::Key Key;
1625
    ///\e
1626
    typedef bool Value;
1601 1627

	
... ...
@@ -1603,3 +1629,3 @@
1603 1629
    EqualMap(const M1 &m1, const M2 &m2) : _m1(m1), _m2(m2) {}
1604
    /// \e
1630
    ///\e
1605 1631
    Value operator[](const Key &k) const { return _m1[k]==_m2[k]; }
... ...
@@ -1645,5 +1671,6 @@
1645 1671
  public:
1646
    typedef MapBase<typename M1::Key, bool> Parent;
1647
    typedef typename Parent::Key Key;
1648
    typedef typename Parent::Value Value;
1672
    ///\e
1673
    typedef typename M1::Key Key;
1674
    ///\e
1675
    typedef bool Value;
1649 1676

	
... ...
@@ -1651,3 +1678,3 @@
1651 1678
    LessMap(const M1 &m1, const M2 &m2) : _m1(m1), _m2(m2) {}
1652
    /// \e
1679
    ///\e
1653 1680
    Value operator[](const Key &k) const { return _m1[k]<_m2[k]; }
... ...
@@ -1707,4 +1734,4 @@
1707 1734
  ///
1708
  /// \tparam It The type of the iterator.
1709
  /// \tparam Ke The key type of the map. The default value set
1735
  /// \tparam IT The type of the iterator.
1736
  /// \tparam KEY The key type of the map. The default value set
1710 1737
  /// according to the iterator type should work in most cases.
... ...
@@ -1714,13 +1741,16 @@
1714 1741
#ifdef DOXYGEN
1715
  template <typename It, typename Ke>
1742
  template <typename IT, typename KEY>
1716 1743
#else
1717
  template <typename It,
1718
            typename Ke=typename _maps_bits::IteratorTraits<It>::Value>
1744
  template <typename IT,
1745
            typename KEY = typename _maps_bits::IteratorTraits<IT>::Value>
1719 1746
#endif
1720
  class LoggerBoolMap {
1747
  class LoggerBoolMap : public MapBase<KEY, bool> {
1721 1748
  public:
1722
    typedef It Iterator;
1723

	
1724
    typedef Ke Key;
1749

	
1750
    ///\e
1751
    typedef KEY Key;
1752
    ///\e
1725 1753
    typedef bool Value;
1754
    ///\e
1755
    typedef IT Iterator;
1726 1756

	
... ...
@@ -1787,19 +1817,31 @@
1787 1817

	
1788
  /// Provides an immutable and unique id for each item in the graph.
1789

	
1790
  /// The IdMap class provides a unique and immutable id for each item of the
1791
  /// same type (e.g. node) in the graph. This id is <ul><li>\b unique:
1792
  /// different items (nodes) get different ids <li>\b immutable: the id of an
1793
  /// item (node) does not change (even if you delete other nodes).  </ul>
1794
  /// Through this map you get access (i.e. can read) the inner id values of
1795
  /// the items stored in the graph. This map can be inverted with its member
1818
  /// \brief Provides an immutable and unique id for each item in a graph.
1819
  ///
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 
1822
  ///  - \b unique: different items get different ids,
1823
  ///  - \b immutable: the id of an item does not change (even if you
1824
  ///    delete other nodes).
1825
  ///
1826
  /// Using this map you get access (i.e. can read) the inner id values of
1827
  /// the items stored in the graph, which is returned by the \c id()
1828
  /// function of the graph. This map can be inverted with its member
1796 1829
  /// class \c InverseMap or with the \c operator() member.
1797 1830
  ///
1798
  template <typename _Graph, typename _Item>
1799
  class IdMap {
1831
  /// \tparam GR The graph type.
1832
  /// \tparam K The key type of the map (\c GR::Node, \c GR::Arc or
1833
  /// \c GR::Edge).
1834
  ///
1835
  /// \see DescriptorMap
1836
  template <typename GR, typename K>
1837
  class IdMap : public MapBase<K, int> {
1800 1838
  public:
1801
    typedef _Graph Graph;
1839
    /// The graph type of IdMap.
1840
    typedef GR Graph;
1841
    /// The key type of IdMap (\c Node, \c Arc or \c Edge).
1842
    typedef K Item;
1843
    /// The key type of IdMap (\c Node, \c Arc or \c Edge).
1844
    typedef K Key;
1845
    /// The value type of IdMap.
1802 1846
    typedef int Value;
1803
    typedef _Item Item;
1804
    typedef _Item Key;
1805 1847

	
... ...
@@ -1815,5 +1857,5 @@
1815 1857

	
1816
    /// \brief Gives back the item by its id.
1858
    /// \brief Gives back the \e item by its id.
1817 1859
    ///
1818
    /// Gives back the item by its id.
1860
    /// Gives back the \e item by its id.
1819 1861
    Item operator()(int id) { return _graph->fromId(id, Item()); }
... ...
@@ -1825,5 +1867,5 @@
1825 1867

	
1826
    /// \brief The class represents the inverse of its owner (IdMap).
1868
    /// \brief This class represents the inverse of its owner (IdMap).
1827 1869
    ///
1828
    /// The class represents the inverse of its owner (IdMap).
1870
    /// This class represents the inverse of its owner (IdMap).
1829 1871
    /// \see inverse()
... ...
@@ -1845,3 +1887,2 @@
1845 1887
      /// Gives back the given item from its id.
1846
      ///
1847 1888
      Item operator[](int id) const { return _graph->fromId(id, Item());}
... ...
@@ -1856,3 +1897,2 @@
1856 1897
    InverseMap inverse() const { return InverseMap(*_graph);}
1857

	
1858 1898
  };
... ...
@@ -1860,6 +1900,6 @@
1860 1900

	
1861
  /// \brief General invertable graph-map type.
1862

	
1863
  /// This type provides simple invertable graph-maps.
1864
  /// The InvertableMap wraps an arbitrary ReadWriteMap
1901
  /// \brief General invertable graph map type.
1902

	
1903
  /// This class provides simple invertable graph maps.
1904
  /// It wraps an arbitrary \ref concepts::ReadWriteMap "ReadWriteMap"
1865 1905
  /// and if a key is set to a new value then store it
... ...
@@ -1870,17 +1910,17 @@
1870 1910
  ///
1871
  /// \tparam _Graph The graph type.
1872
  /// \tparam _Item The item type of the graph.
1873
  /// \tparam _Value The value type of the map.
1911
  /// \tparam GR The graph type.
1912
  /// \tparam K The key type of the map (\c GR::Node, \c GR::Arc or
1913
  /// \c GR::Edge).
1914
  /// \tparam V The value type of the map.
1874 1915
  ///
1875 1916
  /// \see IterableValueMap
1876
  template <typename _Graph, typename _Item, typename _Value>
1917
  template <typename GR, typename K, typename V>
1877 1918
  class InvertableMap
1878
    : protected ItemSetTraits<_Graph, _Item>::template Map<_Value>::Type {
1919
    : protected ItemSetTraits<GR, K>::template Map<V>::Type {
1879 1920
  private:
1880 1921

	
1881
    typedef typename ItemSetTraits<_Graph, _Item>::
1882
    template Map<_Value>::Type Map;
1883
    typedef _Graph Graph;
1884

	
1885
    typedef std::map<_Value, _Item> Container;
1922
    typedef typename ItemSetTraits<GR, K>::
1923
      template Map<V>::Type Map;
1924

	
1925
    typedef std::map<V, K> Container;
1886 1926
    Container _inv_map;
... ...
@@ -1889,6 +1929,10 @@
1889 1929

	
1890
    /// The key type of InvertableMap (Node, Arc, Edge).
1891
    typedef typename Map::Key Key;
1892
    /// The value type of the InvertableMap.
1893
    typedef typename Map::Value Value;
1930
    /// The graph type of InvertableMap.
1931
    typedef GR Graph;
1932
    /// The key type of InvertableMap (\c Node, \c Arc or \c Edge).
1933
    typedef K Item;
1934
    /// The key type of InvertableMap (\c Node, \c Arc or \c Edge).
1935
    typedef K Key;
1936
    /// The value type of InvertableMap.
1937
    typedef V Value;
1894 1938

	
... ...
@@ -1896,4 +1940,3 @@
1896 1940
    ///
1897
    /// Construct a new InvertableMap for the graph.
1898
    ///
1941
    /// Construct a new InvertableMap for the given graph.
1899 1942
    explicit InvertableMap(const Graph& graph) : Map(graph) {}
... ...
@@ -1904,4 +1947,3 @@
1904 1947
    /// iterator on the values of the map. The values can
1905
    /// be accessed in the [beginValue, endValue) range.
1906
    ///
1948
    /// be accessed in the <tt>[beginValue, endValue)</tt> range.
1907 1949
    class ValueIterator
... ...
@@ -1937,3 +1979,3 @@
1937 1979
    /// first value of the map. The values of the
1938
    /// map can be accessed in the [beginValue, endValue)
1980
    /// map can be accessed in the <tt>[beginValue, endValue)</tt>
1939 1981
    /// range.
... ...
@@ -1947,3 +1989,3 @@
1947 1989
    /// last value of the map. The values of the
1948
    /// map can be accessed in the [beginValue, endValue)
1990
    /// map can be accessed in the <tt>[beginValue, endValue)</tt>
1949 1991
    /// range.
... ...
@@ -1953,5 +1995,5 @@
1953 1995

	
1954
    /// \brief The setter function of the map.
1996
    /// \brief Sets the value associated with the given key.
1955 1997
    ///
1956
    /// Sets the mapped value.
1998
    /// Sets the value associated with the given key.
1957 1999
    void set(const Key& key, const Value& val) {
... ...
@@ -1966,5 +2008,5 @@
1966 2008

	
1967
    /// \brief The getter function of the map.
2009
    /// \brief Returns the value associated with the given key.
1968 2010
    ///
1969
    /// It gives back the value associated with the key.
2011
    /// Returns the value associated with the given key.
1970 2012
    typename MapTraits<Map>::ConstReturnValue
... ...
@@ -1984,5 +2026,5 @@
1984 2026

	
1985
    /// \brief Erase the key from the map.
2027
    /// \brief Erase the key from the map and the inverse map.
1986 2028
    ///
1987
    /// Erase the key to the map. It is called by the
2029
    /// Erase the key from the map and the inverse map. It is called by the
1988 2030
    /// \c AlterationNotifier.
... ...
@@ -1997,5 +2039,5 @@
1997 2039

	
1998
    /// \brief Erase more keys from the map.
2040
    /// \brief Erase more keys from the map and the inverse map.
1999 2041
    ///
2000
    /// Erase more keys from the map. It is called by the
2042
    /// Erase more keys from the map and the inverse map. It is called by the
2001 2043
    /// \c AlterationNotifier.
... ...
@@ -2012,5 +2054,5 @@
2012 2054

	
2013
    /// \brief Clear the keys from the map and inverse map.
2055
    /// \brief Clear the keys from the map and the inverse map.
2014 2056
    ///
2015
    /// Clear the keys from the map and inverse map. It is called by the
2057
    /// Clear the keys from the map and the inverse map. It is called by the
2016 2058
    /// \c AlterationNotifier.
... ...
@@ -2026,6 +2068,6 @@
2026 2068
    /// The inverse of this map. The subscript operator of the map
2027
    /// gives back always the item what was last assigned to the value.
2069
    /// gives back the item that was last assigned to the value.
2028 2070
    class InverseMap {
2029 2071
    public:
2030
      /// \brief Constructor of the InverseMap.
2072
      /// \brief Constructor
2031 2073
      ///
... ...
@@ -2042,4 +2084,4 @@
2042 2084
      ///
2043
      /// Subscript operator. It gives back always the item
2044
      /// what was last assigned to the value.
2085
      /// Subscript operator. It gives back the item
2086
      /// that was last assigned to the given value.
2045 2087
      Value operator[](const Key& key) const {
... ...
@@ -2052,5 +2094,5 @@
2052 2094

	
2053
    /// \brief It gives back the just readable inverse map.
2095
    /// \brief It gives back the read-only inverse map.
2054 2096
    ///
2055
    /// It gives back the just readable inverse map.
2097
    /// It gives back the read-only inverse map.
2056 2098
    InverseMap inverse() const {
... ...
@@ -2062,31 +2104,39 @@
2062 2104
  /// \brief Provides a mutable, continuous and unique descriptor for each
2063
  /// item in the graph.
2105
  /// item in a graph.
2064 2106
  ///
2065
  /// The DescriptorMap class provides a unique and continuous (but mutable)
2066
  /// descriptor (id) for each item of the same type (e.g. node) in the
2067
  /// graph. This id is <ul><li>\b unique: different items (nodes) get
2068
  /// different ids <li>\b continuous: the range of the ids is the set of
2069
  /// integers between 0 and \c n-1, where \c n is the number of the items of
2070
  /// this type (e.g. nodes) (so the id of a node can change if you delete an
2071
  /// other node, i.e. this id is mutable).  </ul> This map can be inverted
2072
  /// with its member class \c InverseMap, or with the \c operator() member.
2107
  /// DescriptorMap provides a unique and continuous (but mutable)
2108
  /// descriptor (id) for each item of the same type (\c Node, \c Arc or
2109
  /// \c Edge) in a graph. This id is
2110
  ///  - \b unique: different items get different ids,
2111
  ///  - \b continuous: the range of the ids is the set of integers
2112
  ///    between 0 and \c n-1, where \c n is the number of the items of
2113
  ///    this type (\c Node, \c Arc or \c Edge). So the id of an item can
2114
  ///    change if you delete an other item of the same type, i.e. this
2115
  ///    id is mutable.
2073 2116
  ///
2074
  /// \tparam _Graph The graph class the \c DescriptorMap belongs to.
2075
  /// \tparam _Item The Item is the Key of the Map. It may be Node, Arc or
2076
  /// Edge.
2077
  template <typename _Graph, typename _Item>
2117
  /// Thus this id is not (necessarily) the same as what can get using
2118
  /// the \c id() function of the graph or \ref IdMap.
2119
  /// This map can be inverted with its member class \c InverseMap,
2120
  /// or with the \c operator() member.
2121
  ///
2122
  /// \tparam GR The graph type.
2123
  /// \tparam K The key type of the map (\c GR::Node, \c GR::Arc or
2124
  /// \c GR::Edge).
2125
  ///
2126
  /// \see IdMap
2127
  template <typename GR, typename K>
2078 2128
  class DescriptorMap
2079
    : protected ItemSetTraits<_Graph, _Item>::template Map<int>::Type {
2080

	
2081
    typedef _Item Item;
2082
    typedef typename ItemSetTraits<_Graph, _Item>::template Map<int>::Type Map;
2129
    : protected ItemSetTraits<GR, K>::template Map<int>::Type {
2130

	
2131
    typedef typename ItemSetTraits<GR, K>::template Map<int>::Type Map;
2083 2132

	
2084 2133
  public:
2085
    /// The graph class of DescriptorMap.
2086
    typedef _Graph Graph;
2087

	
2088
    /// The key type of DescriptorMap (Node, Arc, Edge).
2089
    typedef typename Map::Key Key;
2134
    /// The graph type of DescriptorMap.
2135
    typedef GR Graph;
2136
    /// The key type of DescriptorMap (\c Node, \c Arc or \c Edge).
2137
    typedef K Item;
2138
    /// The key type of DescriptorMap (\c Node, \c Arc or \c Edge).
2139
    typedef K Key;
2090 2140
    /// The value type of DescriptorMap.
2091
    typedef typename Map::Value Value;
2141
    typedef int Value;
2092 2142

	
... ...
@@ -2095,3 +2145,3 @@
2095 2145
    /// Constructor for descriptor map.
2096
    explicit DescriptorMap(const Graph& _graph) : Map(_graph) {
2146
    explicit DescriptorMap(const Graph& gr) : Map(gr) {
2097 2147
      Item it;
... ...
@@ -2106,3 +2156,3 @@
2106 2156

	
2107
    /// \brief Add a new key to the map.
2157
    /// \brief Adds a new key to the map.
2108 2158
    ///
... ...
@@ -2216,2 +2266,3 @@
2216 2266
  public:
2267

	
2217 2268
    /// \brief The inverse map type of DescriptorMap.
... ...
@@ -2221,3 +2272,3 @@
2221 2272
    public:
2222
      /// \brief Constructor of the InverseMap.
2273
      /// \brief Constructor
2223 2274
      ///
... ...
@@ -2236,3 +2287,3 @@
2236 2287
      /// Subscript operator. It gives back the item
2237
      /// that the descriptor belongs to currently.
2288
      /// that the descriptor currently belongs to.
2238 2289
      Value operator[](const Key& key) const {
... ...
@@ -2260,7 +2311,9 @@
2260 2311

	
2261
  /// \brief Returns the source of the given arc.
2312
  /// \brief Map of the source nodes of arcs in a digraph.
2262 2313
  ///
2263
  /// The SourceMap gives back the source Node of the given arc.
2314
  /// SourceMap provides access for the source node of each arc in a digraph,
2315
  /// which is returned by the \c source() function of the digraph.
2316
  /// \tparam GR The digraph type.
2264 2317
  /// \see TargetMap
2265
  template <typename Digraph>
2318
  template <typename GR>
2266 2319
  class SourceMap {
... ...
@@ -2268,4 +2321,6 @@
2268 2321

	
2269
    typedef typename Digraph::Node Value;
2270
    typedef typename Digraph::Arc Key;
2322
    ///\e
2323
    typedef typename GR::Arc Key;
2324
    ///\e
2325
    typedef typename GR::Node Value;
2271 2326

	
... ...
@@ -2273,13 +2328,11 @@
2273 2328
    ///
2274
    /// Constructor
2329
    /// Constructor.
2275 2330
    /// \param digraph The digraph that the map belongs to.
2276
    explicit SourceMap(const Digraph& digraph) : _digraph(digraph) {}
2277

	
2278
    /// \brief The subscript operator.
2331
    explicit SourceMap(const GR& digraph) : _graph(digraph) {}
2332

	
2333
    /// \brief Returns the source node of the given arc.
2279 2334
    ///
2280
    /// The subscript operator.
2281
    /// \param arc The arc
2282
    /// \return The source of the arc
2335
    /// Returns the source node of the given arc.
2283 2336
    Value operator[](const Key& arc) const {
2284
      return _digraph.source(arc);
2337
      return _graph.source(arc);
2285 2338
    }
... ...
@@ -2287,3 +2340,3 @@
2287 2340
  private:
2288
    const Digraph& _digraph;
2341
    const GR& _graph;
2289 2342
  };
... ...
@@ -2294,12 +2347,14 @@
2294 2347
  /// \relates SourceMap
2295
  template <typename Digraph>
2296
  inline SourceMap<Digraph> sourceMap(const Digraph& digraph) {
2297
    return SourceMap<Digraph>(digraph);
2348
  template <typename GR>
2349
  inline SourceMap<GR> sourceMap(const GR& graph) {
2350
    return SourceMap<GR>(graph);
2298 2351
  }
2299 2352

	
2300
  /// \brief Returns the target of the given arc.
2353
  /// \brief Map of the target nodes of arcs in a digraph.
2301 2354
  ///
2302
  /// The TargetMap gives back the target Node of the given arc.
2355
  /// TargetMap provides access for the target node of each arc in a digraph,
2356
  /// which is returned by the \c target() function of the digraph.
2357
  /// \tparam GR The digraph type.
2303 2358
  /// \see SourceMap
2304
  template <typename Digraph>
2359
  template <typename GR>
2305 2360
  class TargetMap {
... ...
@@ -2307,4 +2362,6 @@
2307 2362

	
2308
    typedef typename Digraph::Node Value;
2309
    typedef typename Digraph::Arc Key;
2363
    ///\e
2364
    typedef typename GR::Arc Key;
2365
    ///\e
2366
    typedef typename GR::Node Value;
2310 2367

	
... ...
@@ -2312,13 +2369,11 @@
2312 2369
    ///
2313
    /// Constructor
2370
    /// Constructor.
2314 2371
    /// \param digraph The digraph that the map belongs to.
2315
    explicit TargetMap(const Digraph& digraph) : _digraph(digraph) {}
2316

	
2317
    /// \brief The subscript operator.
2372
    explicit TargetMap(const GR& digraph) : _graph(digraph) {}
2373

	
2374
    /// \brief Returns the target node of the given arc.
2318 2375
    ///
2319
    /// The subscript operator.
2320
    /// \param e The arc
2321
    /// \return The target of the arc
2376
    /// Returns the target node of the given arc.
2322 2377
    Value operator[](const Key& e) const {
2323
      return _digraph.target(e);
2378
      return _graph.target(e);
2324 2379
    }
... ...
@@ -2326,3 +2381,3 @@
2326 2381
  private:
2327
    const Digraph& _digraph;
2382
    const GR& _graph;
2328 2383
  };
... ...
@@ -2333,12 +2388,15 @@
2333 2388
  /// \relates TargetMap
2334
  template <typename Digraph>
2335
  inline TargetMap<Digraph> targetMap(const Digraph& digraph) {
2336
    return TargetMap<Digraph>(digraph);
2389
  template <typename GR>
2390
  inline TargetMap<GR> targetMap(const GR& graph) {
2391
    return TargetMap<GR>(graph);
2337 2392
  }
2338 2393

	
2339
  /// \brief Returns the "forward" directed arc view of an edge.
2394
  /// \brief Map of the "forward" directed arc view of edges in a graph.
2340 2395
  ///
2341
  /// Returns the "forward" directed arc view of an edge.
2396
  /// ForwardMap provides access for the "forward" directed arc view of
2397
  /// each edge in a graph, which is returned by the \c direct() function
2398
  /// of the graph with \c true parameter.
2399
  /// \tparam GR The graph type.
2342 2400
  /// \see BackwardMap
2343
  template <typename Graph>
2401
  template <typename GR>
2344 2402
  class ForwardMap {
... ...
@@ -2346,4 +2404,4 @@
2346 2404

	
2347
    typedef typename Graph::Arc Value;
2348
    typedef typename Graph::Edge Key;
2405
    typedef typename GR::Arc Value;
2406
    typedef typename GR::Edge Key;
2349 2407

	
... ...
@@ -2351,11 +2409,9 @@
2351 2409
    ///
2352
    /// Constructor
2410
    /// Constructor.
2353 2411
    /// \param graph The graph that the map belongs to.
2354
    explicit ForwardMap(const Graph& graph) : _graph(graph) {}
2355

	
2356
    /// \brief The subscript operator.
2412
    explicit ForwardMap(const GR& graph) : _graph(graph) {}
2413

	
2414
    /// \brief Returns the "forward" directed arc view of the given edge.
2357 2415
    ///
2358
    /// The subscript operator.
2359
    /// \param key An edge
2360
    /// \return The "forward" directed arc view of edge
2416
    /// Returns the "forward" directed arc view of the given edge.
2361 2417
    Value operator[](const Key& key) const {
... ...
@@ -2365,3 +2421,3 @@
2365 2421
  private:
2366
    const Graph& _graph;
2422
    const GR& _graph;
2367 2423
  };
... ...
@@ -2372,12 +2428,15 @@
2372 2428
  /// \relates ForwardMap
2373
  template <typename Graph>
2374
  inline ForwardMap<Graph> forwardMap(const Graph& graph) {
2375
    return ForwardMap<Graph>(graph);
2429
  template <typename GR>
2430
  inline ForwardMap<GR> forwardMap(const GR& graph) {
2431
    return ForwardMap<GR>(graph);
2376 2432
  }
2377 2433

	
2378
  /// \brief Returns the "backward" directed arc view of an edge.
2434
  /// \brief Map of the "backward" directed arc view of edges in a graph.
2379 2435
  ///
2380
  /// Returns the "backward" directed arc view of an edge.
2436
  /// BackwardMap provides access for the "backward" directed arc view of
2437
  /// each edge in a graph, which is returned by the \c direct() function
2438
  /// of the graph with \c false parameter.
2439
  /// \tparam GR The graph type.
2381 2440
  /// \see ForwardMap
2382
  template <typename Graph>
2441
  template <typename GR>
2383 2442
  class BackwardMap {
... ...
@@ -2385,4 +2444,4 @@
2385 2444

	
2386
    typedef typename Graph::Arc Value;
2387
    typedef typename Graph::Edge Key;
2445
    typedef typename GR::Arc Value;
2446
    typedef typename GR::Edge Key;
2388 2447

	
... ...
@@ -2390,11 +2449,9 @@
2390 2449
    ///
2391
    /// Constructor
2450
    /// Constructor.
2392 2451
    /// \param graph The graph that the map belongs to.
2393
    explicit BackwardMap(const Graph& graph) : _graph(graph) {}
2394

	
2395
    /// \brief The subscript operator.
2452
    explicit BackwardMap(const GR& graph) : _graph(graph) {}
2453

	
2454
    /// \brief Returns the "backward" directed arc view of the given edge.
2396 2455
    ///
2397
    /// The subscript operator.
2398
    /// \param key An edge
2399
    /// \return The "backward" directed arc view of edge
2456
    /// Returns the "backward" directed arc view of the given edge.
2400 2457
    Value operator[](const Key& key) const {
... ...
@@ -2404,3 +2461,3 @@
2404 2461
  private:
2405
    const Graph& _graph;
2462
    const GR& _graph;
2406 2463
  };
... ...
@@ -2411,52 +2468,11 @@
2411 2468
  /// \relates BackwardMap
2412
  template <typename Graph>
2413
  inline BackwardMap<Graph> backwardMap(const Graph& graph) {
2414
    return BackwardMap<Graph>(graph);
2469
  template <typename GR>
2470
  inline BackwardMap<GR> backwardMap(const GR& graph) {
2471
    return BackwardMap<GR>(graph);
2415 2472
  }
2416 2473

	
2417
  /// \brief Potential difference map
2418
  ///
2419
  /// If there is an potential map on the nodes then we
2420
  /// can get an arc map as we get the substraction of the
2421
  /// values of the target and source.
2422
  template <typename Digraph, typename NodeMap>
2423
  class PotentialDifferenceMap {
2424
  public:
2425
    typedef typename Digraph::Arc Key;
2426
    typedef typename NodeMap::Value Value;
2427

	
2428
    /// \brief Constructor
2429
    ///
2430
    /// Contructor of the map
2431
    explicit PotentialDifferenceMap(const Digraph& digraph,
2432
                                    const NodeMap& potential)
2433
      : _digraph(digraph), _potential(potential) {}
2434

	
2435
    /// \brief Const subscription operator
2436
    ///
2437
    /// Const subscription operator
2438
    Value operator[](const Key& arc) const {
2439
      return _potential[_digraph.target(arc)] -
2440
        _potential[_digraph.source(arc)];
2441
    }
2442

	
2443
  private:
2444
    const Digraph& _digraph;
2445
    const NodeMap& _potential;
2446
  };
2447

	
2448
  /// \brief Returns a PotentialDifferenceMap.
2449
  ///
2450
  /// This function just returns a PotentialDifferenceMap.
2451
  /// \relates PotentialDifferenceMap
2452
  template <typename Digraph, typename NodeMap>
2453
  PotentialDifferenceMap<Digraph, NodeMap>
2454
  potentialDifferenceMap(const Digraph& digraph, const NodeMap& potential) {
2455
    return PotentialDifferenceMap<Digraph, NodeMap>(digraph, potential);
2456
  }
2457

	
2458
  /// \brief Map of the node in-degrees.
2474
  /// \brief Map of the in-degrees of nodes in a digraph.
2459 2475
  ///
2460 2476
  /// This map returns the in-degree of a node. Once it is constructed,
2461
  /// the degrees are stored in a standard NodeMap, so each query is done
2477
  /// the degrees are stored in a standard \c NodeMap, so each query is done
2462 2478
  /// in constant time. On the other hand, the values are updated automatically
... ...
@@ -2464,6 +2480,7 @@
2464 2480
  ///
2465
  /// \warning Besides addNode() and addArc(), a digraph structure may provide
2466
  /// alternative ways to modify the digraph. The correct behavior of InDegMap
2467
  /// is not guarantied if these additional features are used. For example
2468
  /// the functions \ref ListDigraph::changeSource() "changeSource()",
2481
  /// \warning Besides \c addNode() and \c addArc(), a digraph structure 
2482
  /// may provide alternative ways to modify the digraph.
2483
  /// The correct behavior of InDegMap is not guarantied if these additional
2484
  /// features are used. For example the functions
2485
  /// \ref ListDigraph::changeSource() "changeSource()",
2469 2486
  /// \ref ListDigraph::changeTarget() "changeTarget()" and
... ...
@@ -2473,6 +2490,5 @@
2473 2490
  /// \sa OutDegMap
2474

	
2475
  template <typename _Digraph>
2491
  template <typename GR>
2476 2492
  class InDegMap
2477
    : protected ItemSetTraits<_Digraph, typename _Digraph::Arc>
2493
    : protected ItemSetTraits<GR, typename GR::Arc>
2478 2494
      ::ItemNotifier::ObserverBase {
... ...
@@ -2480,6 +2496,9 @@
2480 2496
  public:
2481

	
2482
    typedef _Digraph Digraph;
2497
    
2498
    /// The digraph type
2499
    typedef GR Digraph;
2500
    /// The key type
2501
    typedef typename Digraph::Node Key;
2502
    /// The value type
2483 2503
    typedef int Value;
2484
    typedef typename Digraph::Node Key;
2485 2504

	
... ...
@@ -2525,5 +2544,5 @@
2525 2544
    ///
2526
    /// Constructor for creating in-degree map.
2527
    explicit InDegMap(const Digraph& digraph)
2528
      : _digraph(digraph), _deg(digraph) {
2545
    /// Constructor for creating an in-degree map.
2546
    explicit InDegMap(const Digraph& graph)
2547
      : _digraph(graph), _deg(graph) {
2529 2548
      Parent::attach(_digraph.notifier(typename Digraph::Arc()));
... ...
@@ -2535,2 +2554,4 @@
2535 2554

	
2555
    /// \brief Gives back the in-degree of a Node.
2556
    ///
2536 2557
    /// Gives back the in-degree of a Node.
... ...
@@ -2581,6 +2602,6 @@
2581 2602

	
2582
  /// \brief Map of the node out-degrees.
2603
  /// \brief Map of the out-degrees of nodes in a digraph.
2583 2604
  ///
2584 2605
  /// This map returns the out-degree of a node. Once it is constructed,
2585
  /// the degrees are stored in a standard NodeMap, so each query is done
2606
  /// the degrees are stored in a standard \c NodeMap, so each query is done
2586 2607
  /// in constant time. On the other hand, the values are updated automatically
... ...
@@ -2588,6 +2609,7 @@
2588 2609
  ///
2589
  /// \warning Besides addNode() and addArc(), a digraph structure may provide
2590
  /// alternative ways to modify the digraph. The correct behavior of OutDegMap
2591
  /// is not guarantied if these additional features are used. For example
2592
  /// the functions \ref ListDigraph::changeSource() "changeSource()",
2610
  /// \warning Besides \c addNode() and \c addArc(), a digraph structure 
2611
  /// may provide alternative ways to modify the digraph.
2612
  /// The correct behavior of OutDegMap is not guarantied if these additional
2613
  /// features are used. For example the functions
2614
  /// \ref ListDigraph::changeSource() "changeSource()",
2593 2615
  /// \ref ListDigraph::changeTarget() "changeTarget()" and
... ...
@@ -2597,6 +2619,5 @@
2597 2619
  /// \sa InDegMap
2598

	
2599
  template <typename _Digraph>
2620
  template <typename GR>
2600 2621
  class OutDegMap
2601
    : protected ItemSetTraits<_Digraph, typename _Digraph::Arc>
2622
    : protected ItemSetTraits<GR, typename GR::Arc>
2602 2623
      ::ItemNotifier::ObserverBase {
... ...
@@ -2605,5 +2626,8 @@
2605 2626

	
2606
    typedef _Digraph Digraph;
2627
    /// The digraph type
2628
    typedef GR Digraph;
2629
    /// The key type
2630
    typedef typename Digraph::Node Key;
2631
    /// The value type
2607 2632
    typedef int Value;
2608
    typedef typename Digraph::Node Key;
2609 2633

	
... ...
@@ -2647,5 +2671,5 @@
2647 2671
    ///
2648
    /// Constructor for creating out-degree map.
2649
    explicit OutDegMap(const Digraph& digraph)
2650
      : _digraph(digraph), _deg(digraph) {
2672
    /// Constructor for creating an out-degree map.
2673
    explicit OutDegMap(const Digraph& graph)
2674
      : _digraph(graph), _deg(graph) {
2651 2675
      Parent::attach(_digraph.notifier(typename Digraph::Arc()));
... ...
@@ -2657,2 +2681,4 @@
2657 2681

	
2682
    /// \brief Gives back the out-degree of a Node.
2683
    ///
2658 2684
    /// Gives back the out-degree of a Node.
... ...
@@ -2703,2 +2729,52 @@
2703 2729

	
2730
  /// \brief Potential difference map
2731
  ///
2732
  /// PotentialMap returns the difference between the potentials of the
2733
  /// source and target nodes of each arc in a digraph, i.e. it returns
2734
  /// \code
2735
  ///   potential[gr.target(arc)] - potential[gr.source(arc)].
2736
  /// \endcode
2737
  /// \tparam GR The digraph type.
2738
  /// \tparam POT A node map storing the potentials.
2739
  template <typename GR, typename POT>
2740
  class PotentialDifferenceMap {
2741
  public:
2742
    /// Key type
2743
    typedef typename GR::Arc Key;
2744
    /// Value type
2745
    typedef typename POT::Value Value;
2746

	
2747
    /// \brief Constructor
2748
    ///
2749
    /// Contructor of the map.
2750
    explicit PotentialDifferenceMap(const GR& gr,
2751
                                    const POT& potential)
2752
      : _digraph(gr), _potential(potential) {}
2753

	
2754
    /// \brief Returns the potential difference for the given arc.
2755
    ///
2756
    /// Returns the potential difference for the given arc, i.e.
2757
    /// \code
2758
    ///   potential[gr.target(arc)] - potential[gr.source(arc)].
2759
    /// \endcode
2760
    Value operator[](const Key& arc) const {
2761
      return _potential[_digraph.target(arc)] -
2762
        _potential[_digraph.source(arc)];
2763
    }
2764

	
2765
  private:
2766
    const GR& _digraph;
2767
    const POT& _potential;
2768
  };
2769

	
2770
  /// \brief Returns a PotentialDifferenceMap.
2771
  ///
2772
  /// This function just returns a PotentialDifferenceMap.
2773
  /// \relates PotentialDifferenceMap
2774
  template <typename GR, typename POT>
2775
  PotentialDifferenceMap<GR, POT>
2776
  potentialDifferenceMap(const GR& gr, const POT& potential) {
2777
    return PotentialDifferenceMap<GR, POT>(gr, potential);
2778
  }
2779

	
2704 2780
  /// @}
Ignore white space 6 line context
... ...
@@ -57,4 +57,4 @@
57 57
  ///
58
  /// \param _Graph The graph type the algorithm runs on.
59
  template <typename _Graph>
58
  /// \param GR The graph type the algorithm runs on.
59
  template <typename GR>
60 60
  class MaxMatching {
... ...
@@ -62,3 +62,3 @@
62 62

	
63
    typedef _Graph Graph;
63
    typedef GR Graph;
64 64
    typedef typename Graph::template NodeMap<typename Graph::Arc>
... ...
@@ -465,3 +465,3 @@
465 465
    /// with true value, ie. it contains a matching.
466
    /// \return %True if the map contains a matching.
466
    /// \return \c true if the map contains a matching.
467 467
    template <typename MatchingMap>
... ...
@@ -615,3 +615,3 @@
615 615
  /// on extensive use of priority queues and provides
616
  /// \f$O(nm\log(n))\f$ time complexity.
616
  /// \f$O(nm\log n)\f$ time complexity.
617 617
  ///
... ...
@@ -649,4 +649,4 @@
649 649
  /// solution is multiplied by \ref MaxWeightedMatching::dualScale "4".
650
  template <typename _Graph,
651
            typename _WeightMap = typename _Graph::template EdgeMap<int> >
650
  template <typename GR,
651
            typename WM = typename GR::template EdgeMap<int> >
652 652
  class MaxWeightedMatching {
... ...
@@ -654,4 +654,7 @@
654 654

	
655
    typedef _Graph Graph;
656
    typedef _WeightMap WeightMap;
655
    ///\e
656
    typedef GR Graph;
657
    ///\e
658
    typedef WM WeightMap;
659
    ///\e
657 660
    typedef typename WeightMap::Value Value;
... ...
@@ -1959,3 +1962,3 @@
1959 1962
  /// is based on extensive use of priority queues and provides
1960
  /// \f$O(nm\log(n))\f$ time complexity.
1963
  /// \f$O(nm\log n)\f$ time complexity.
1961 1964
  ///
... ...
@@ -1992,4 +1995,4 @@
1992 1995
  /// solution is multiplied by \ref MaxWeightedMatching::dualScale "4".
1993
  template <typename _Graph,
1994
            typename _WeightMap = typename _Graph::template EdgeMap<int> >
1996
  template <typename GR,
1997
            typename WM = typename GR::template EdgeMap<int> >
1995 1998
  class MaxWeightedPerfectMatching {
... ...
@@ -1997,4 +2000,4 @@
1997 2000

	
1998
    typedef _Graph Graph;
1999
    typedef _WeightMap WeightMap;
2001
    typedef GR Graph;
2002
    typedef WM WeightMap;
2000 2003
    typedef typename WeightMap::Value Value;
Ignore white space 6 line context
... ...
@@ -37,5 +37,5 @@
37 37
  /// Default traits class for MinCostArborescence class.
38
  /// \param _Digraph Digraph type.
39
  /// \param _CostMap Type of cost map.
40
  template <class _Digraph, class _CostMap>
38
  /// \param GR Digraph type.
39
  /// \param CM Type of cost map.
40
  template <class GR, class CM>
41 41
  struct MinCostArborescenceDefaultTraits{
... ...
@@ -43,3 +43,3 @@
43 43
    /// \brief The digraph type the algorithm runs on.
44
    typedef _Digraph Digraph;
44
    typedef GR Digraph;
45 45

	
... ...
@@ -49,3 +49,3 @@
49 49
    /// It must meet the \ref concepts::ReadMap "ReadMap" concept.
50
    typedef _CostMap CostMap;
50
    typedef CM CostMap;
51 51

	
... ...
@@ -65,7 +65,7 @@
65 65

	
66
    /// \brief Instantiates a ArborescenceMap.
66
    /// \brief Instantiates a \c ArborescenceMap.
67 67
    ///
68
    /// This function instantiates a \ref ArborescenceMap.
68
    /// This function instantiates a \c ArborescenceMap.
69 69
    /// \param digraph is the graph, to which we would like to
70
    /// calculate the ArborescenceMap.
70
    /// calculate the \c ArborescenceMap.
71 71
    static ArborescenceMap *createArborescenceMap(const Digraph &digraph){
... ...
@@ -74,12 +74,12 @@
74 74

	
75
    /// \brief The type of the PredMap
75
    /// \brief The type of the \c PredMap
76 76
    ///
77
    /// The type of the PredMap. It is a node map with an arc value type.
77
    /// The type of the \c PredMap. It is a node map with an arc value type.
78 78
    typedef typename Digraph::template NodeMap<typename Digraph::Arc> PredMap;
79 79

	
80
    /// \brief Instantiates a PredMap.
80
    /// \brief Instantiates a \c PredMap.
81 81
    ///
82
    /// This function instantiates a \ref PredMap.
83
    /// \param _digraph is the digraph, to which we would like to define the
84
    /// PredMap.
82
    /// This function instantiates a \c PredMap.
83
    /// \param digraph The digraph to which we would like to define the
84
    /// \c PredMap.
85 85
    static PredMap *createPredMap(const Digraph &digraph){
... ...
@@ -100,3 +100,3 @@
100 100
  /// given sources and spans all the nodes which are reachable from the
101
  /// sources. The time complexity of the algorithm is \f$ O(n^2+e) \f$.
101
  /// sources. The time complexity of the algorithm is O(n<sup>2</sup>+e).
102 102
  ///
... ...
@@ -105,5 +105,5 @@
105 105
  ///
106
  /// \param _Digraph The digraph type the algorithm runs on. The default value
106
  /// \param GR The digraph type the algorithm runs on. The default value
107 107
  /// is \ref ListDigraph.
108
  /// \param _CostMap This read-only ArcMap determines the costs of the
108
  /// \param CM This read-only ArcMap determines the costs of the
109 109
  /// arcs. It is read once for each arc, so the map may involve in
... ...
@@ -112,17 +112,15 @@
112 112
  /// concepts::Digraph::ArcMap "Digraph::ArcMap<int>".
113
  /// \param _Traits Traits class to set various data types used
113
  /// \param TR Traits class to set various data types used
114 114
  /// by the algorithm. The default traits class is
115 115
  /// \ref MinCostArborescenceDefaultTraits
116
  /// "MinCostArborescenceDefaultTraits<_Digraph, _CostMap>".  See \ref
116
  /// "MinCostArborescenceDefaultTraits<GR, CM>".  See \ref
117 117
  /// MinCostArborescenceDefaultTraits for the documentation of a
118 118
  /// MinCostArborescence traits class.
119
  ///
120
  /// \author Balazs Dezso
121 119
#ifndef DOXYGEN
122
  template <typename _Digraph = ListDigraph,
123
            typename _CostMap = typename _Digraph::template ArcMap<int>,
124
            typename _Traits =
125
            MinCostArborescenceDefaultTraits<_Digraph, _CostMap> >
120
  template <typename GR = ListDigraph,
121
            typename CM = typename GR::template ArcMap<int>,
122
            typename TR =
123
              MinCostArborescenceDefaultTraits<GR, CM> >
126 124
#else
127
  template <typename _Digraph, typename _CostMap, typedef _Traits>
125
  template <typename GR, typename CM, typedef TR>
128 126
#endif
... ...
@@ -132,3 +130,3 @@
132 130
    /// The traits.
133
    typedef _Traits Traits;
131
    typedef TR Traits;
134 132
    /// The type of the underlying digraph.
... ...
@@ -442,4 +440,4 @@
442 440
    ///
443
    /// \param _digraph The digraph the algorithm will run on.
444
    /// \param _cost The cost map used by the algorithm.
441
    /// \param digraph The digraph the algorithm will run on.
442
    /// \param cost The cost map used by the algorithm.
445 443
    MinCostArborescence(const Digraph& digraph, const CostMap& cost)
... ...
@@ -458,3 +456,3 @@
458 456
    /// Sets the arborescence map.
459
    /// \return \c (*this)
457
    /// \return <tt>(*this)</tt>
460 458
    MinCostArborescence& arborescenceMap(ArborescenceMap& m) {
... ...
@@ -471,3 +469,3 @@
471 469
    /// Sets the arborescence map.
472
    /// \return \c (*this)
470
    /// \return <tt>(*this)</tt>
473 471
    MinCostArborescence& predMap(PredMap& m) {
Ignore white space 6 line context
... ...
@@ -42,3 +42,3 @@
42 42
  /// A structure for representing directed path in a digraph.
43
  /// \tparam _Digraph The digraph type in which the path is.
43
  /// \tparam GR The digraph type in which the path is.
44 44
  ///
... ...
@@ -54,3 +54,3 @@
54 54
  /// insertions.
55
  template <typename _Digraph>
55
  template <typename GR>
56 56
  class Path {
... ...
@@ -58,3 +58,3 @@
58 58

	
59
    typedef _Digraph Digraph;
59
    typedef GR Digraph;
60 60
    typedef typename Digraph::Arc Arc;
... ...
@@ -139,3 +139,3 @@
139 139
    ///
140
    /// \pre n is in the [0..length() - 1] range
140
    /// \pre \c n is in the <tt>[0..length() - 1]</tt> range.
141 141
    const Arc& nth(int n) const {
... ...
@@ -147,3 +147,3 @@
147 147
    ///
148
    /// \pre n is in the [0..length() - 1] range
148
    /// \pre \c n is in the <tt>[0..length() - 1]</tt> range.
149 149
    ArcIt nthIt(int n) const {
... ...
@@ -230,3 +230,3 @@
230 230
  /// A structure for representing directed path in a digraph.
231
  /// \tparam _Digraph The digraph type in which the path is.
231
  /// \tparam GR The digraph type in which the path is.
232 232
  ///
... ...
@@ -242,3 +242,3 @@
242 242
  /// arcs.
243
  template <typename _Digraph>
243
  template <typename GR>
244 244
  class SimplePath {
... ...
@@ -246,3 +246,3 @@
246 246

	
247
    typedef _Digraph Digraph;
247
    typedef GR Digraph;
248 248
    typedef typename Digraph::Arc Arc;
... ...
@@ -331,3 +331,3 @@
331 331
    ///
332
    /// \pre n is in the [0..length() - 1] range
332
    /// \pre \c n is in the <tt>[0..length() - 1]</tt> range.
333 333
    const Arc& nth(int n) const {
... ...
@@ -394,3 +394,3 @@
394 394
  /// A structure for representing directed path in a digraph.
395
  /// \tparam _Digraph The digraph type in which the path is.
395
  /// \tparam GR The digraph type in which the path is.
396 396
  ///
... ...
@@ -406,3 +406,3 @@
406 406
  /// and it can be splited and spliced in O(1) time.
407
  template <typename _Digraph>
407
  template <typename GR>
408 408
  class ListPath {
... ...
@@ -410,3 +410,3 @@
410 410

	
411
    typedef _Digraph Digraph;
411
    typedef GR Digraph;
412 412
    typedef typename Digraph::Arc Arc;
... ...
@@ -509,3 +509,3 @@
509 509
    /// This function looks for the nth arc in O(n) time.
510
    /// \pre n is in the [0..length() - 1] range
510
    /// \pre \c n is in the <tt>[0..length() - 1]</tt> range.
511 511
    const Arc& nth(int n) const {
... ...
@@ -734,3 +734,3 @@
734 734
  /// A structure for representing directed path in a digraph.
735
  /// \tparam _Digraph The digraph type in which the path is.
735
  /// \tparam GR The digraph type in which the path is.
736 736
  ///
... ...
@@ -748,3 +748,3 @@
748 748
  /// used when you want to store a large number of paths.
749
  template <typename _Digraph>
749
  template <typename GR>
750 750
  class StaticPath {
... ...
@@ -752,3 +752,3 @@
752 752

	
753
    typedef _Digraph Digraph;
753
    typedef GR Digraph;
754 754
    typedef typename Digraph::Arc Arc;
... ...
@@ -835,3 +835,3 @@
835 835
    ///
836
    /// \pre n is in the [0..length() - 1] range
836
    /// \pre \c n is in the <tt>[0..length() - 1]</tt> range.
837 837
    const Arc& nth(int n) const {
Ignore white space 6 line context
... ...
@@ -34,4 +34,4 @@
34 34
  /// \tparam GR Digraph type.
35
  /// \tparam CM Capacity map type.
36
  template <typename GR, typename CM>
35
  /// \tparam CAP Capacity map type.
36
  template <typename GR, typename CAP>
37 37
  struct PreflowDefaultTraits {
... ...
@@ -45,3 +45,3 @@
45 45
    /// It must meet the \ref concepts::ReadMap "ReadMap" concept.
46
    typedef CM CapacityMap;
46
    typedef CAP CapacityMap;
47 47

	
... ...
@@ -96,4 +96,5 @@
96 96
  /// This class provides an implementation of Goldberg-Tarjan's \e preflow
97
  /// \e push-relabel algorithm producing a flow of maximum value in a
98
  /// digraph. The preflow algorithms are the fastest known maximum
97
  /// \e push-relabel algorithm producing a \ref max_flow
98
  /// "flow of maximum value" in a digraph.
99
  /// The preflow algorithms are the fastest known maximum
99 100
  /// flow algorithms. The current implementation use a mixture of the
... ...
@@ -107,10 +108,10 @@
107 108
  /// \tparam GR The type of the digraph the algorithm runs on.
108
  /// \tparam CM The type of the capacity map. The default map
109
  /// \tparam CAP The type of the capacity map. The default map
109 110
  /// type is \ref concepts::Digraph::ArcMap "GR::ArcMap<int>".
110 111
#ifdef DOXYGEN
111
  template <typename GR, typename CM, typename TR>
112
  template <typename GR, typename CAP, typename TR>
112 113
#else
113 114
  template <typename GR,
114
            typename CM = typename GR::template ArcMap<int>,
115
            typename TR = PreflowDefaultTraits<GR, CM> >
115
            typename CAP = typename GR::template ArcMap<int>,
116
            typename TR = PreflowDefaultTraits<GR, CAP> >
116 117
#endif
... ...
@@ -196,5 +197,5 @@
196 197

	
197
    template <typename _FlowMap>
198
    template <typename T>
198 199
    struct SetFlowMapTraits : public Traits {
199
      typedef _FlowMap FlowMap;
200
      typedef T FlowMap;
200 201
      static FlowMap *createFlowMap(const Digraph&) {
... ...
@@ -210,12 +211,12 @@
210 211
    /// type.
211
    template <typename _FlowMap>
212
    template <typename T>
212 213
    struct SetFlowMap
213
      : public Preflow<Digraph, CapacityMap, SetFlowMapTraits<_FlowMap> > {
214
      : public Preflow<Digraph, CapacityMap, SetFlowMapTraits<T> > {
214 215
      typedef Preflow<Digraph, CapacityMap,
215
                      SetFlowMapTraits<_FlowMap> > Create;
216
                      SetFlowMapTraits<T> > Create;
216 217
    };
217 218

	
218
    template <typename _Elevator>
219
    template <typename T>
219 220
    struct SetElevatorTraits : public Traits {
220
      typedef _Elevator Elevator;
221
      typedef T Elevator;
221 222
      static Elevator *createElevator(const Digraph&, int) {
... ...
@@ -235,12 +236,12 @@
235 236
    /// \sa SetStandardElevator
236
    template <typename _Elevator>
237
    template <typename T>
237 238
    struct SetElevator
238
      : public Preflow<Digraph, CapacityMap, SetElevatorTraits<_Elevator> > {
239
      : public Preflow<Digraph, CapacityMap, SetElevatorTraits<T> > {
239 240
      typedef Preflow<Digraph, CapacityMap,
240
                      SetElevatorTraits<_Elevator> > Create;
241
                      SetElevatorTraits<T> > Create;
241 242
    };
242 243

	
243
    template <typename _Elevator>
244
    template <typename T>
244 245
    struct SetStandardElevatorTraits : public Traits {
245
      typedef _Elevator Elevator;
246
      typedef T Elevator;
246 247
      static Elevator *createElevator(const Digraph& digraph, int max_level) {
... ...
@@ -262,8 +263,8 @@
262 263
    /// \sa SetElevator
263
    template <typename _Elevator>
264
    template <typename T>
264 265
    struct SetStandardElevator
265 266
      : public Preflow<Digraph, CapacityMap,
266
                       SetStandardElevatorTraits<_Elevator> > {
267
                       SetStandardElevatorTraits<T> > {
267 268
      typedef Preflow<Digraph, CapacityMap,
268
                      SetStandardElevatorTraits<_Elevator> > Create;
269
                      SetStandardElevatorTraits<T> > Create;
269 270
    };
... ...
@@ -948,3 +949,3 @@
948 949
    /// \note This function calls \ref minCut() for each node, so it runs in
949
    /// \f$O(n)\f$ time.
950
    /// O(n) time.
950 951
    ///
Ignore white space 6 line context
... ...
@@ -207,7 +207,7 @@
207 207
  /// This is a special quick sort algorithm where the pivot
208
  /// values to split the items are choosen to be \f$ 2^k \f$ for each \c k.
209
  /// Therefore, the time complexity of the
210
  /// algorithm is \f$ O(\log(c)n) \f$ and it uses \f$ O(\log(c)) \f$,
211
  /// additional space, where \c c is the maximal value and \c n is the
212
  /// number of the items in the container.
208
  /// values to split the items are choosen to be 2<sup>k</sup>
209
  /// for each \c k.
210
  /// Therefore, the time complexity of the algorithm is O(log(c)*n) and
211
  /// it uses O(log(c)) additional space, where \c c is the maximal value
212
  /// and \c n is the number of the items in the container.
213 213
  ///
... ...
@@ -432,6 +432,6 @@
432 432
  /// in the container, then it copies the corresponding items to
433
  /// another container in asceding order in \c O(n) time.
433
  /// another container in asceding order in O(n) time.
434 434
  ///
435
  /// The time complexity of the algorithm is \f$ O(\log(c)n) \f$ and
436
  /// it uses \f$ O(n) \f$, additional space, where \c c is the
435
  /// The time complexity of the algorithm is O(log(c)*n) and
436
  /// it uses O(n) additional space, where \c c is the
437 437
  /// maximal value and \c n is the number of the items in the
Ignore white space 6 line context
... ...
@@ -605,3 +605,3 @@
605 605
    /// it uses the \c seedFromTime().
606
    /// \return Currently always true.
606
    /// \return Currently always \c true.
607 607
    bool seed() {
... ...
@@ -626,3 +626,3 @@
626 626
    /// \param offset The offset, from the file read.
627
    /// \return True when the seeding successes.
627
    /// \return \c true when the seeding successes.
628 628
#ifndef WIN32
... ...
@@ -647,3 +647,3 @@
647 647
    /// random sequence.
648
    /// \return Currently always true.
648
    /// \return Currently always \c true.
649 649
    bool seedFromTime() {
Ignore white space 6 line context
... ...
@@ -227,4 +227,4 @@
227 227

	
228
    /// \return the new node.
229
    ///
228
    /// Add a new node to the digraph.
229
    /// \return The new node.
230 230
    Node addNode() { return Parent::addNode(); }
... ...
@@ -235,3 +235,3 @@
235 235
    ///and target node \c t.
236
    ///\return the new arc.
236
    ///\return The new arc.
237 237
    Arc addArc(const Node& s, const Node& t) {
... ...
@@ -668,4 +668,4 @@
668 668

	
669
    /// \return the new node.
670
    ///
669
    /// Add a new node to the graph.
670
    /// \return The new node.
671 671
    Node addNode() { return Parent::addNode(); }
... ...
@@ -676,3 +676,3 @@
676 676
    ///and \c t.
677
    ///\return the new edge.
677
    ///\return The new edge.
678 678
    Edge addEdge(const Node& s, const Node& t) {
Ignore white space 6 line context
... ...
@@ -47,5 +47,5 @@
47 47
  ///
48
  /// \tparam Digraph The digraph type the algorithm runs on.
48
  /// \tparam GR The digraph type the algorithm runs on.
49 49
  /// The default value is \c ListDigraph.
50
  /// \tparam LengthMap The type of the length (cost) map.
50
  /// \tparam LEN The type of the length (cost) map.
51 51
  /// The default value is <tt>Digraph::ArcMap<int></tt>.
... ...
@@ -57,6 +57,6 @@
57 57
#ifdef DOXYGEN
58
  template <typename Digraph, typename LengthMap>
58
  template <typename GR, typename LEN>
59 59
#else
60
  template < typename Digraph = ListDigraph,
61
             typename LengthMap = typename Digraph::template ArcMap<int> >
60
  template < typename GR = ListDigraph,
61
             typename LEN = typename GR::template ArcMap<int> >
62 62
#endif
... ...
@@ -64,7 +64,6 @@
64 64
  {
65
    TEMPLATE_DIGRAPH_TYPEDEFS(Digraph);
65
    TEMPLATE_DIGRAPH_TYPEDEFS(GR);
66 66

	
67
    typedef typename LengthMap::Value Length;
68 67
    typedef ConstMap<Arc, int> ConstArcMap;
69
    typedef typename Digraph::template NodeMap<Arc> PredMap;
68
    typedef typename GR::template NodeMap<Arc> PredMap;
70 69

	
... ...
@@ -72,2 +71,8 @@
72 71

	
72
    /// The type of the digraph the algorithm runs on.
73
    typedef GR Digraph;
74
    /// The type of the length map.
75
    typedef LEN LengthMap;
76
    /// The type of the lengths.
77
    typedef typename LengthMap::Value Length;
73 78
    /// The type of the flow map.
... ...
@@ -258,3 +263,3 @@
258 263
    ///
259
    /// \return \c (*this)
264
    /// \return <tt>(*this)</tt>
260 265
    Suurballe& flowMap(FlowMap &map) {
... ...
@@ -275,3 +280,3 @@
275 280
    ///
276
    /// \return \c (*this)
281
    /// \return <tt>(*this)</tt>
277 282
    Suurballe& potentialMap(PotentialMap &map) {
... ...
@@ -460,3 +465,3 @@
460 465
    /// This function returns the total length (cost) of the found paths
461
    /// (flow). The complexity of the function is \f$ O(e) \f$.
466
    /// (flow). The complexity of the function is O(e).
462 467
    ///
Show white space 6 line context
... ...
@@ -53,3 +53,3 @@
53 53
  /// method.
54
  template <typename _ItemIntMap>
54
  template <typename IM>
55 55
  class UnionFind {
... ...
@@ -57,3 +57,5 @@
57 57

	
58
    typedef _ItemIntMap ItemIntMap;
58
    ///\e
59
    typedef IM ItemIntMap;
60
    ///\e
59 61
    typedef typename ItemIntMap::Key Item;
... ...
@@ -172,3 +174,3 @@
172 174
  ///
173
  template <typename _ItemIntMap>
175
  template <typename IM>
174 176
  class UnionFindEnum {
... ...
@@ -176,3 +178,5 @@
176 178

	
177
    typedef _ItemIntMap ItemIntMap;
179
    ///\e
180
    typedef IM ItemIntMap;
181
    ///\e
178 182
    typedef typename ItemIntMap::Key Item;
... ...
@@ -629,3 +633,3 @@
629 633
  /// method.
630
  template <typename _ItemIntMap>
634
  template <typename IM>
631 635
  class ExtendFindEnum {
... ...
@@ -633,3 +637,5 @@
633 637

	
634
    typedef _ItemIntMap ItemIntMap;
638
    ///\e
639
    typedef IM ItemIntMap;
640
    ///\e
635 641
    typedef typename ItemIntMap::Key Item;
... ...
@@ -950,5 +956,3 @@
950 956
  /// method.
951
  ///
952
  template <typename _Value, typename _ItemIntMap,
953
            typename _Comp = std::less<_Value> >
957
  template <typename V, typename IM, typename Comp = std::less<V> >
954 958
  class HeapUnionFind {
... ...
@@ -956,8 +960,10 @@
956 960

	
957
    typedef _Value Value;
958
    typedef typename _ItemIntMap::Key Item;
959

	
960
    typedef _ItemIntMap ItemIntMap;
961

	
962
    typedef _Comp Comp;
961
    ///\e
962
    typedef V Value;
963
    ///\e
964
    typedef typename IM::Key Item;
965
    ///\e
966
    typedef IM ItemIntMap;
967
    ///\e
968
    typedef Comp Compare;
963 969

	
... ...
@@ -1603,3 +1609,3 @@
1603 1609
    ///
1604
    /// \return Gives back the priority of the current item.
1610
    /// Gives back the priority of the current item.
1605 1611
    const Value& operator[](const Item& item) const {
... ...
@@ -1648,3 +1654,3 @@
1648 1654
    ///
1649
    /// \return Gives back the minimum priority of the class.
1655
    /// Gives back the minimum priority of the class.
1650 1656
    const Value& classPrio(int cls) const {
... ...
@@ -1662,5 +1668,5 @@
1662 1668
    ///
1669
    /// Gives back a representant item of the class.
1663 1670
    /// The representant is indpendent from the priorities of the
1664 1671
    /// items.
1665
    /// \return Gives back a representant item of the class.
1666 1672
    const Item& classRep(int id) const {
0 comments (0 inline)