↑ Collapse diff ↑
Ignore white space 6 line context
... ...
@@ -68,19 +68,19 @@
68 68
    ///
69 69
    /// Each Item element have a state associated to it. It may be "in heap",
70 70
    /// "pre heap" or "post heap". The latter two are indifferent from the
71 71
    /// heap's point of view, but may be useful to the user.
72 72
    ///
73 73
    /// The item-int map must be initialized in such way that it assigns
74 74
    /// \c PRE_HEAP (<tt>-1</tt>) to any element to be put in the heap.
75 75
    enum State {
76
      IN_HEAP = 0,    ///< \e
77
      PRE_HEAP = -1,  ///< \e
78
      POST_HEAP = -2  ///< \e
76
      IN_HEAP = 0,    ///< = 0.
77
      PRE_HEAP = -1,  ///< = -1.
78
      POST_HEAP = -2  ///< = -2.
79 79
    };
80 80

	
81 81
  private:
82 82
    std::vector<Pair> _data;
83 83
    Compare _comp;
84 84
    ItemIntMap &_iim;
85 85

	
86 86
  public:
Ignore white space 6 line context
... ...
@@ -597,17 +597,17 @@
597 597
    public:
598 598

	
599 599
      typedef BAS Base;
600 600
      typedef typename Base::Node Node;
601 601
      typedef typename Base::Arc Arc;
602 602

	
603 603
      typedef IterableDigraphComponent Digraph;
604 604

	
605
      /// \name Base iteration
605
      /// \name Base Iteration
606 606
      ///
607 607
      /// This interface provides functions for iteration on digraph items.
608 608
      ///
609 609
      /// @{
610 610

	
611 611
      /// \brief Return the first node.
612 612
      ///
613 613
      /// This function gives back the first node in the iteration order.
... ...
@@ -649,17 +649,17 @@
649 649
      /// \brief Return the next arc outgoing form the given node.
650 650
      ///
651 651
      /// This function gives back the next arc outgoing form the
652 652
      /// given node.
653 653
      void nextOut(Arc&) const {}
654 654

	
655 655
      /// @}
656 656

	
657
      /// \name Class based iteration
657
      /// \name Class Based Iteration
658 658
      ///
659 659
      /// This interface provides iterator classes for digraph items.
660 660
      ///
661 661
      /// @{
662 662

	
663 663
      /// \brief This iterator goes through each node.
664 664
      ///
665 665
      /// This iterator goes through each node.
... ...
@@ -774,17 +774,17 @@
774 774
      typedef BAS Base;
775 775
      typedef typename Base::Node Node;
776 776
      typedef typename Base::Arc Arc;
777 777
      typedef typename Base::Edge Edge;
778 778

	
779 779

	
780 780
      typedef IterableGraphComponent Graph;
781 781

	
782
      /// \name Base iteration
782
      /// \name Base Iteration
783 783
      ///
784 784
      /// This interface provides functions for iteration on edges.
785 785
      ///
786 786
      /// @{
787 787

	
788 788
      using IterableDigraphComponent<Base>::first;
789 789
      using IterableDigraphComponent<Base>::next;
790 790

	
... ...
@@ -813,17 +813,17 @@
813 813
      /// node. The bool parameter should be used as \c firstInc() use it.
814 814
      void nextInc(Edge&, bool&) const {}
815 815

	
816 816
      using IterableDigraphComponent<Base>::baseNode;
817 817
      using IterableDigraphComponent<Base>::runningNode;
818 818

	
819 819
      /// @}
820 820

	
821
      /// \name Class based iteration
821
      /// \name Class Based Iteration
822 822
      ///
823 823
      /// This interface provides iterator classes for edges.
824 824
      ///
825 825
      /// @{
826 826

	
827 827
      /// \brief This iterator goes through each edge.
828 828
      ///
829 829
      /// This iterator goes through each edge.
Ignore white space 16 line context
... ...
@@ -66,19 +66,19 @@
66 66
      /// Each item has a state associated to it. It can be "in heap",
67 67
      /// "pre heap" or "post heap". The later two are indifferent
68 68
      /// from the point of view of the heap, but may be useful for
69 69
      /// the user.
70 70
      ///
71 71
      /// The item-int map must be initialized in such way that it assigns
72 72
      /// \c PRE_HEAP (<tt>-1</tt>) to any element to be put in the heap.
73 73
      enum State {
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.
74
        IN_HEAP = 0,    ///< = 0. The "in heap" state constant.
75
        PRE_HEAP = -1,  ///< = -1. The "pre heap" state constant.
76
        POST_HEAP = -2  ///< = -2. The "post heap" state constant.
77 77
      };
78 78

	
79 79
      /// \brief The constructor.
80 80
      ///
81 81
      /// The constructor.
82 82
      /// \param map A map that assigns \c int values to keys of type
83 83
      /// \c Item. It is used internally by the heap implementations to
84 84
      /// handle the cross references. The assigned value must be
Ignore white space 6 line context
... ...
@@ -201,17 +201,17 @@
201 201
  protected:
202 202

	
203 203
    Dfs() {}
204 204

	
205 205
  public:
206 206

	
207 207
    typedef Dfs Create;
208 208

	
209
    ///\name Named template parameters
209
    ///\name Named Template Parameters
210 210

	
211 211
    ///@{
212 212

	
213 213
    template <class T>
214 214
    struct SetPredMapTraits : public Traits {
215 215
      typedef T PredMap;
216 216
      static PredMap *createPredMap(const Digraph &)
217 217
      {
Ignore white space 6 line context
... ...
@@ -281,17 +281,17 @@
281 281
        _heap = Traits::createHeap(*_heap_cross_ref);
282 282
      }
283 283
    }
284 284

	
285 285
  public:
286 286

	
287 287
    typedef Dijkstra Create;
288 288

	
289
    ///\name Named template parameters
289
    ///\name Named Template Parameters
290 290

	
291 291
    ///@{
292 292

	
293 293
    template <class T>
294 294
    struct SetPredMapTraits : public Traits {
295 295
      typedef T PredMap;
296 296
      static PredMap *createPredMap(const Digraph &)
297 297
      {
Ignore white space 6 line context
... ...
@@ -32,38 +32,43 @@
32 32
namespace lemon {
33 33

	
34 34
  /// \addtogroup dimacs_group
35 35
  /// @{
36 36

	
37 37
  /// DIMACS file type descriptor.
38 38
  struct DimacsDescriptor
39 39
  {
40
    ///File type enum
41
    enum Type
42
      {
43
        NONE, MIN, MAX, SP, MAT
44
      };
40
    ///\brief DIMACS file type enum
41
    ///
42
    ///DIMACS file type enum.
43
    enum Type {
44
      NONE,  ///< Undefined type.
45
      MIN,   ///< DIMACS file type for minimum cost flow problems.
46
      MAX,   ///< DIMACS file type for maximum flow problems.
47
      SP,    ///< DIMACS file type for shostest path problems.
48
      MAT    ///< DIMACS file type for plain graphs and matching problems.
49
    };
45 50
    ///The file type
46 51
    Type type;
47 52
    ///The number of nodes in the graph
48 53
    int nodeNum;
49 54
    ///The number of edges in the graph
50 55
    int edgeNum;
51 56
    int lineShift;
52
    /// Constructor. Sets the type to NONE.
57
    ///Constructor. It sets the type to \c NONE.
53 58
    DimacsDescriptor() : type(NONE) {}
54 59
  };
55 60

	
56 61
  ///Discover the type of a DIMACS file
57 62

	
58
  ///It starts seeking the beginning of the file for the problem type
59
  ///and size info. The found data is returned in a special struct
60
  ///that can be evaluated and passed to the appropriate reader
61
  ///function.
63
  ///This function starts seeking the beginning of the given file for the
64
  ///problem type and size info. 
65
  ///The found data is returned in a special struct that can be evaluated
66
  ///and passed to the appropriate reader function.
62 67
  DimacsDescriptor dimacsType(std::istream& is)
63 68
  {
64 69
    DimacsDescriptor r;
65 70
    std::string problem,str;
66 71
    char c;
67 72
    r.lineShift=0;
68 73
    while (is >> c)
69 74
      switch(c)
... ...
@@ -91,18 +96,17 @@
91 96
          break;
92 97
        default:
93 98
          throw FormatError("Unknown DIMACS declaration.");
94 99
        }
95 100
    throw FormatError("Missing problem type declaration.");
96 101
  }
97 102

	
98 103

	
99

	
100
  /// DIMACS minimum cost flow reader function.
104
  /// \brief DIMACS minimum cost flow reader function.
101 105
  ///
102 106
  /// This function reads a minimum cost flow instance from DIMACS format,
103 107
  /// i.e. from a DIMACS file having a line starting with
104 108
  /// \code
105 109
  ///   p min
106 110
  /// \endcode
107 111
  /// At the beginning, \c g is cleared by \c g.clear(). The supply
108 112
  /// amount of the nodes are written to the \c supply node map
... ...
@@ -248,17 +252,17 @@
248 252
          getline(is, str);
249 253
          g.addArc(nodes[i], nodes[j]);
250 254
        }
251 255
        break;
252 256
      }
253 257
    }
254 258
  }
255 259

	
256
  /// DIMACS maximum flow reader function.
260
  /// \brief DIMACS maximum flow reader function.
257 261
  ///
258 262
  /// This function reads a maximum flow instance from DIMACS format,
259 263
  /// i.e. from a DIMACS file having a line starting with
260 264
  /// \code
261 265
  ///   p max
262 266
  /// \endcode
263 267
  /// At the beginning, \c g is cleared by \c g.clear(). The arc
264 268
  /// capacities are written to the \c capacity arc map and \c s and
... ...
@@ -282,17 +286,17 @@
282 286
                     typename CapacityMap::Value infty = 0,
283 287
                     DimacsDescriptor desc=DimacsDescriptor()) {
284 288
    if(desc.type==DimacsDescriptor::NONE) desc=dimacsType(is);
285 289
    if(desc.type!=DimacsDescriptor::MAX)
286 290
      throw FormatError("Problem type mismatch");
287 291
    _readDimacs(is,g,capacity,s,t,infty,desc);
288 292
  }
289 293

	
290
  /// DIMACS shortest path reader function.
294
  /// \brief DIMACS shortest path reader function.
291 295
  ///
292 296
  /// This function reads a shortest path instance from DIMACS format,
293 297
  /// i.e. from a DIMACS file having a line starting with
294 298
  /// \code
295 299
  ///   p sp
296 300
  /// \endcode
297 301
  /// At the beginning, \c g is cleared by \c g.clear(). The arc
298 302
  /// lengths are written to the \c length arc map and \c s is set to the
... ...
@@ -308,17 +312,17 @@
308 312
                    DimacsDescriptor desc=DimacsDescriptor()) {
309 313
    typename Digraph::Node t;
310 314
    if(desc.type==DimacsDescriptor::NONE) desc=dimacsType(is);
311 315
    if(desc.type!=DimacsDescriptor::SP)
312 316
      throw FormatError("Problem type mismatch");
313 317
    _readDimacs(is, g, length, s, t, 0, desc);
314 318
  }
315 319

	
316
  /// DIMACS capacitated digraph reader function.
320
  /// \brief DIMACS capacitated digraph reader function.
317 321
  ///
318 322
  /// This function reads an arc capacitated digraph instance from
319 323
  /// DIMACS 'max' or 'sp' format.
320 324
  /// At the beginning, \c g is cleared by \c g.clear()
321 325
  /// and the arc capacities/lengths are written to the \c capacity
322 326
  /// arc map.
323 327
  ///
324 328
  /// In case of the 'max' format, if the capacity of an arc is negative,
... ...
@@ -354,21 +358,21 @@
354 358
  template<typename Graph>
355 359
  typename disable_if<lemon::UndirectedTagIndicator<Graph>,void>::type
356 360
  _addArcEdge(Graph &g, typename Graph::Node s, typename Graph::Node t,
357 361
              dummy<1> = 1)
358 362
  {
359 363
    g.addArc(s,t);
360 364
  }
361 365
  
362
  /// DIMACS plain (di)graph reader function.
366
  /// \brief DIMACS plain (di)graph reader function.
363 367
  ///
364
  /// This function reads a (di)graph without any designated nodes and
365
  /// maps from DIMACS format, i.e. from DIMACS files having a line
366
  /// starting with
368
  /// This function reads a plain (di)graph without any designated nodes
369
  /// and maps (e.g. a matching instance) from DIMACS format, i.e. from 
370
  /// DIMACS files having a line starting with
367 371
  /// \code
368 372
  ///   p mat
369 373
  /// \endcode
370 374
  /// At the beginning, \c g is cleared by \c g.clear().
371 375
  ///
372 376
  /// If the file type was previously evaluated by dimacsType(), then
373 377
  /// the descriptor struct should be given by the \c dest parameter.
374 378
  template<typename Graph>
Ignore white space 6 line context
... ...
@@ -263,32 +263,28 @@
263 263
  enum NodeShapes {
264 264
    /// = 0
265 265
    ///\image html nodeshape_0.png
266 266
    ///\image latex nodeshape_0.eps "CIRCLE shape (0)" width=2cm
267 267
    CIRCLE=0,
268 268
    /// = 1
269 269
    ///\image html nodeshape_1.png
270 270
    ///\image latex nodeshape_1.eps "SQUARE shape (1)" width=2cm
271
    ///
272 271
    SQUARE=1,
273 272
    /// = 2
274 273
    ///\image html nodeshape_2.png
275 274
    ///\image latex nodeshape_2.eps "DIAMOND shape (2)" width=2cm
276
    ///
277 275
    DIAMOND=2,
278 276
    /// = 3
279 277
    ///\image html nodeshape_3.png
280
    ///\image latex nodeshape_2.eps "MALE shape (4)" width=2cm
281
    ///
278
    ///\image latex nodeshape_3.eps "MALE shape (3)" width=2cm
282 279
    MALE=3,
283 280
    /// = 4
284 281
    ///\image html nodeshape_4.png
285
    ///\image latex nodeshape_2.eps "FEMALE shape (4)" width=2cm
286
    ///
282
    ///\image latex nodeshape_4.eps "FEMALE shape (4)" width=2cm
287 283
    FEMALE=4
288 284
  };
289 285

	
290 286
private:
291 287
  class arcLess {
292 288
    const Graph &g;
293 289
  public:
294 290
    arcLess(const Graph &_g) : g(_g) {}
Ignore white space 6 line context
... ...
@@ -243,43 +243,43 @@
243 243
        return _kruskal_bits::kruskal(graph, in, out);
244 244
      }
245 245
    };
246 246

	
247 247
  }
248 248

	
249 249
  /// \ingroup spantree
250 250
  ///
251
  /// \brief Kruskal algorithm to find a minimum cost spanning tree of
251
  /// \brief Kruskal's algorithm for finding a minimum cost spanning tree of
252 252
  /// a graph.
253 253
  ///
254 254
  /// This function runs Kruskal's algorithm to find a minimum cost
255
  /// spanning tree.
255
  /// spanning tree of a graph.
256 256
  /// Due to some C++ hacking, it accepts various input and output types.
257 257
  ///
258 258
  /// \param g The graph the algorithm runs on.
259 259
  /// It can be either \ref concepts::Digraph "directed" or
260 260
  /// \ref concepts::Graph "undirected".
261 261
  /// If the graph is directed, the algorithm consider it to be
262 262
  /// undirected by disregarding the direction of the arcs.
263 263
  ///
264 264
  /// \param in This object is used to describe the arc/edge costs.
265 265
  /// It can be one of the following choices.
266 266
  /// - An STL compatible 'Forward Container' with
267
  /// <tt>std::pair<GR::Arc,X></tt> or
268
  /// <tt>std::pair<GR::Edge,X></tt> as its <tt>value_type</tt>, where
269
  /// \c X is the type of the costs. The pairs indicates the arcs/edges
267
  /// <tt>std::pair<GR::Arc,C></tt> or
268
  /// <tt>std::pair<GR::Edge,C></tt> as its <tt>value_type</tt>, where
269
  /// \c C is the type of the costs. The pairs indicates the arcs/edges
270 270
  /// along with the assigned cost. <em>They must be in a
271 271
  /// cost-ascending order.</em>
272 272
  /// - Any readable arc/edge map. The values of the map indicate the
273 273
  /// arc/edge costs.
274 274
  ///
275 275
  /// \retval out Here we also have a choice.
276
  /// - It can be a writable \c bool arc/edge map. After running the
277
  /// algorithm it will contain the found minimum cost spanning
276
  /// - It can be a writable arc/edge map with \c bool value type. After
277
  /// running the algorithm it will contain the found minimum cost spanning
278 278
  /// tree: the value of an arc/edge will be set to \c true if it belongs
279 279
  /// to the tree, otherwise it will be set to \c false. The value of
280 280
  /// each arc/edge will be set exactly once.
281 281
  /// - It can also be an iteraror of an STL Container with
282 282
  /// <tt>GR::Arc</tt> or <tt>GR::Edge</tt> as its
283 283
  /// <tt>value_type</tt>.  The algorithm copies the elements of the
284 284
  /// found tree into this sequence.  For example, if we know that the
285 285
  /// spanning tree of the graph \c g has say 53 arcs, then we can
... ...
@@ -296,31 +296,29 @@
296 296
  ///\endcode
297 297
  ///
298 298
  /// \return The total cost of the found spanning tree.
299 299
  ///
300 300
  /// \note If the input graph is not (weakly) connected, a spanning
301 301
  /// forest is calculated instead of a spanning tree.
302 302

	
303 303
#ifdef DOXYGEN
304
  template <class Graph, class In, class Out>
305
  Value kruskal(GR const& g, const In& in, Out& out)
304
  template <typename Graph, typename In, typename Out>
305
  Value kruskal(const Graph& g, const In& in, Out& out)
306 306
#else
307 307
  template <class Graph, class In, class Out>
308 308
  inline typename _kruskal_bits::KruskalValueSelector<In>::Value
309 309
  kruskal(const Graph& graph, const In& in, Out& out)
310 310
#endif
311 311
  {
312 312
    return _kruskal_bits::KruskalInputSelector<Graph, In, Out>::
313 313
      kruskal(graph, in, out);
314 314
  }
315 315

	
316 316

	
317

	
318

	
319 317
  template <class Graph, class In, class Out>
320 318
  inline typename _kruskal_bits::KruskalValueSelector<In>::Value
321 319
  kruskal(const Graph& graph, const In& in, const Out& out)
322 320
  {
323 321
    return _kruskal_bits::KruskalInputSelector<Graph, In, const Out>::
324 322
      kruskal(graph, in, out);
325 323
  }
326 324

	
Ignore white space 6 line context
... ...
@@ -588,17 +588,17 @@
588 588
      _attributes_caption = other._attributes_caption;
589 589

	
590 590
    }
591 591

	
592 592
    DigraphReader& operator=(const DigraphReader&);
593 593

	
594 594
  public:
595 595

	
596
    /// \name Reading rules
596
    /// \name Reading Rules
597 597
    /// @{
598 598

	
599 599
    /// \brief Node map reading rule
600 600
    ///
601 601
    /// Add a node map reading rule to the reader.
602 602
    template <typename Map>
603 603
    DigraphReader& nodeMap(const std::string& caption, Map& map) {
604 604
      checkConcept<concepts::WriteMap<Node, typename Map::Value>, Map>();
... ...
@@ -693,17 +693,17 @@
693 693
      _reader_bits::ValueStorageBase* storage =
694 694
        new _reader_bits::ValueStorage<Arc, Converter>(arc, converter);
695 695
      _attributes.insert(std::make_pair(caption, storage));
696 696
      return *this;
697 697
    }
698 698

	
699 699
    /// @}
700 700

	
701
    /// \name Select section by name
701
    /// \name Select Section by Name
702 702
    /// @{
703 703

	
704 704
    /// \brief Set \c \@nodes section to be read
705 705
    ///
706 706
    /// Set \c \@nodes section to be read
707 707
    DigraphReader& nodes(const std::string& caption) {
708 708
      _nodes_caption = caption;
709 709
      return *this;
... ...
@@ -722,17 +722,17 @@
722 722
    /// Set \c \@attributes section to be read
723 723
    DigraphReader& attributes(const std::string& caption) {
724 724
      _attributes_caption = caption;
725 725
      return *this;
726 726
    }
727 727

	
728 728
    /// @}
729 729

	
730
    /// \name Using previously constructed node or arc set
730
    /// \name Using Previously Constructed Node or Arc Set
731 731
    /// @{
732 732

	
733 733
    /// \brief Use previously constructed node set
734 734
    ///
735 735
    /// Use previously constructed node set, and specify the node
736 736
    /// label map.
737 737
    template <typename Map>
738 738
    DigraphReader& useNodes(const Map& map) {
... ...
@@ -1111,17 +1111,17 @@
1111 1111
          msg << "Attribute not found: " << it->first;
1112 1112
          throw FormatError(msg.str());
1113 1113
        }
1114 1114
      }
1115 1115
    }
1116 1116

	
1117 1117
  public:
1118 1118

	
1119
    /// \name Execution of the reader
1119
    /// \name Execution of the Reader
1120 1120
    /// @{
1121 1121

	
1122 1122
    /// \brief Start the batch processing
1123 1123
    ///
1124 1124
    /// This function starts the batch processing
1125 1125
    void run() {
1126 1126
      LEMON_ASSERT(_is != 0, "This reader assigned to an other reader");
1127 1127

	
... ...
@@ -1384,17 +1384,17 @@
1384 1384
      _attributes_caption = other._attributes_caption;
1385 1385

	
1386 1386
    }
1387 1387

	
1388 1388
    GraphReader& operator=(const GraphReader&);
1389 1389

	
1390 1390
  public:
1391 1391

	
1392
    /// \name Reading rules
1392
    /// \name Reading Rules
1393 1393
    /// @{
1394 1394

	
1395 1395
    /// \brief Node map reading rule
1396 1396
    ///
1397 1397
    /// Add a node map reading rule to the reader.
1398 1398
    template <typename Map>
1399 1399
    GraphReader& nodeMap(const std::string& caption, Map& map) {
1400 1400
      checkConcept<concepts::WriteMap<Node, typename Map::Value>, Map>();
... ...
@@ -1535,17 +1535,17 @@
1535 1535
      _reader_bits::ValueStorageBase* storage =
1536 1536
        new _reader_bits::ValueStorage<Arc, Converter>(arc, converter);
1537 1537
      _attributes.insert(std::make_pair(caption, storage));
1538 1538
      return *this;
1539 1539
    }
1540 1540

	
1541 1541
    /// @}
1542 1542

	
1543
    /// \name Select section by name
1543
    /// \name Select Section by Name
1544 1544
    /// @{
1545 1545

	
1546 1546
    /// \brief Set \c \@nodes section to be read
1547 1547
    ///
1548 1548
    /// Set \c \@nodes section to be read.
1549 1549
    GraphReader& nodes(const std::string& caption) {
1550 1550
      _nodes_caption = caption;
1551 1551
      return *this;
... ...
@@ -1564,17 +1564,17 @@
1564 1564
    /// Set \c \@attributes section to be read.
1565 1565
    GraphReader& attributes(const std::string& caption) {
1566 1566
      _attributes_caption = caption;
1567 1567
      return *this;
1568 1568
    }
1569 1569

	
1570 1570
    /// @}
1571 1571

	
1572
    /// \name Using previously constructed node or edge set
1572
    /// \name Using Previously Constructed Node or Edge Set
1573 1573
    /// @{
1574 1574

	
1575 1575
    /// \brief Use previously constructed node set
1576 1576
    ///
1577 1577
    /// Use previously constructed node set, and specify the node
1578 1578
    /// label map.
1579 1579
    template <typename Map>
1580 1580
    GraphReader& useNodes(const Map& map) {
... ...
@@ -1954,17 +1954,17 @@
1954 1954
          msg << "Attribute not found: " << it->first;
1955 1955
          throw FormatError(msg.str());
1956 1956
        }
1957 1957
      }
1958 1958
    }
1959 1959

	
1960 1960
  public:
1961 1961

	
1962
    /// \name Execution of the reader
1962
    /// \name Execution of the Reader
1963 1963
    /// @{
1964 1964

	
1965 1965
    /// \brief Start the batch processing
1966 1966
    ///
1967 1967
    /// This function starts the batch processing
1968 1968
    void run() {
1969 1969

	
1970 1970
      LEMON_ASSERT(_is != 0, "This reader assigned to an other reader");
... ...
@@ -2153,17 +2153,17 @@
2153 2153

	
2154 2154
      _sections.swap(other._sections);
2155 2155
    }
2156 2156

	
2157 2157
    SectionReader& operator=(const SectionReader&);
2158 2158

	
2159 2159
  public:
2160 2160

	
2161
    /// \name Section readers
2161
    /// \name Section Readers
2162 2162
    /// @{
2163 2163

	
2164 2164
    /// \brief Add a section processor with line oriented reading
2165 2165
    ///
2166 2166
    /// The first parameter is the type descriptor of the section, the
2167 2167
    /// second is a functor, which takes just one \c std::string
2168 2168
    /// parameter. At the reading process, each line of the section
2169 2169
    /// will be given to the functor object. However, the empty lines
... ...
@@ -2252,17 +2252,17 @@
2252 2252
      if (readSuccess()) {
2253 2253
        line.putback(c);
2254 2254
      }
2255 2255
    }
2256 2256

	
2257 2257
  public:
2258 2258

	
2259 2259

	
2260
    /// \name Execution of the reader
2260
    /// \name Execution of the Reader
2261 2261
    /// @{
2262 2262

	
2263 2263
    /// \brief Start the batch processing
2264 2264
    ///
2265 2265
    /// This function starts the batch processing.
2266 2266
    void run() {
2267 2267

	
2268 2268
      LEMON_ASSERT(_is != 0, "This reader assigned to an other reader");
... ...
@@ -2434,17 +2434,17 @@
2434 2434
  private:
2435 2435

	
2436 2436
    LgfContents(const LgfContents&);
2437 2437
    LgfContents& operator=(const LgfContents&);
2438 2438

	
2439 2439
  public:
2440 2440

	
2441 2441

	
2442
    /// \name Node sections
2442
    /// \name Node Sections
2443 2443
    /// @{
2444 2444

	
2445 2445
    /// \brief Gives back the number of node sections in the file.
2446 2446
    ///
2447 2447
    /// Gives back the number of node sections in the file.
2448 2448
    int nodeSectionNum() const {
2449 2449
      return _node_sections.size();
2450 2450
    }
... ...
@@ -2460,17 +2460,17 @@
2460 2460
    ///
2461 2461
    /// Gives back the node maps for the given section.
2462 2462
    const std::vector<std::string>& nodeMapNames(int i) const {
2463 2463
      return _node_maps[i];
2464 2464
    }
2465 2465

	
2466 2466
    /// @}
2467 2467

	
2468
    /// \name Arc/Edge sections
2468
    /// \name Arc/Edge Sections
2469 2469
    /// @{
2470 2470

	
2471 2471
    /// \brief Gives back the number of arc/edge sections in the file.
2472 2472
    ///
2473 2473
    /// Gives back the number of arc/edge sections in the file.
2474 2474
    /// \note It is synonym of \c edgeSectionNum().
2475 2475
    int arcSectionNum() const {
2476 2476
      return _edge_sections.size();
... ...
@@ -2518,17 +2518,17 @@
2518 2518
    /// Gives back the edge maps for the given section.
2519 2519
    /// \note It is synonym of \c arcMapNames().
2520 2520
    const std::vector<std::string>& edgeMapNames(int i) const {
2521 2521
      return _edge_maps[i];
2522 2522
    }
2523 2523

	
2524 2524
    /// @}
2525 2525

	
2526
    /// \name Attribute sections
2526
    /// \name Attribute Sections
2527 2527
    /// @{
2528 2528

	
2529 2529
    /// \brief Gives back the number of attribute sections in the file.
2530 2530
    ///
2531 2531
    /// Gives back the number of attribute sections in the file.
2532 2532
    int attributeSectionNum() const {
2533 2533
      return _attribute_sections.size();
2534 2534
    }
... ...
@@ -2544,17 +2544,17 @@
2544 2544
    ///
2545 2545
    /// Gives back the attributes for the given section.
2546 2546
    const std::vector<std::string>& attributes(int i) const {
2547 2547
      return _attributes[i];
2548 2548
    }
2549 2549

	
2550 2550
    /// @}
2551 2551

	
2552
    /// \name Extra sections
2552
    /// \name Extra Sections
2553 2553
    /// @{
2554 2554

	
2555 2555
    /// \brief Gives back the number of extra sections in the file.
2556 2556
    ///
2557 2557
    /// Gives back the number of extra sections in the file.
2558 2558
    int extraSectionNum() const {
2559 2559
      return _extra_sections.size();
2560 2560
    }
... ...
@@ -2620,17 +2620,17 @@
2620 2620
        attrs.push_back(attr);
2621 2621
        readLine();
2622 2622
      }
2623 2623
      line.putback(c);
2624 2624
    }
2625 2625

	
2626 2626
  public:
2627 2627

	
2628
    /// \name Execution of the contents reader
2628
    /// \name Execution of the Contents Reader
2629 2629
    /// @{
2630 2630

	
2631 2631
    /// \brief Starts the reading
2632 2632
    ///
2633 2633
    /// This function starts the reading.
2634 2634
    void run() {
2635 2635

	
2636 2636
      readLine();
Ignore white space 6 line context
... ...
@@ -533,17 +533,17 @@
533 533
      _arcs_caption = other._arcs_caption;
534 534
      _attributes_caption = other._attributes_caption;
535 535
    }
536 536

	
537 537
    DigraphWriter& operator=(const DigraphWriter&);
538 538

	
539 539
  public:
540 540

	
541
    /// \name Writing rules
541
    /// \name Writing Rules
542 542
    /// @{
543 543

	
544 544
    /// \brief Node map writing rule
545 545
    ///
546 546
    /// Add a node map writing rule to the writer.
547 547
    template <typename Map>
548 548
    DigraphWriter& nodeMap(const std::string& caption, const Map& map) {
549 549
      checkConcept<concepts::ReadMap<Node, typename Map::Value>, Map>();
... ...
@@ -636,17 +636,17 @@
636 636
      typedef _writer_bits::MapLookUpConverter<Arc> Converter;
637 637
      Converter converter(_arc_index);
638 638
      _writer_bits::ValueStorageBase* storage =
639 639
        new _writer_bits::ValueStorage<Arc, Converter>(arc, converter);
640 640
      _attributes.push_back(std::make_pair(caption, storage));
641 641
      return *this;
642 642
    }
643 643

	
644
    /// \name Section captions
644
    /// \name Section Captions
645 645
    /// @{
646 646

	
647 647
    /// \brief Add an additional caption to the \c \@nodes section
648 648
    ///
649 649
    /// Add an additional caption to the \c \@nodes section.
650 650
    DigraphWriter& nodes(const std::string& caption) {
651 651
      _nodes_caption = caption;
652 652
      return *this;
... ...
@@ -663,17 +663,17 @@
663 663
    /// \brief Add an additional caption to the \c \@attributes section
664 664
    ///
665 665
    /// Add an additional caption to the \c \@attributes section.
666 666
    DigraphWriter& attributes(const std::string& caption) {
667 667
      _attributes_caption = caption;
668 668
      return *this;
669 669
    }
670 670

	
671
    /// \name Skipping section
671
    /// \name Skipping Section
672 672
    /// @{
673 673

	
674 674
    /// \brief Skip writing the node set
675 675
    ///
676 676
    /// The \c \@nodes section will not be written to the stream.
677 677
    DigraphWriter& skipNodes() {
678 678
      LEMON_ASSERT(!_skip_nodes, "Multiple usage of skipNodes() member");
679 679
      _skip_nodes = true;
... ...
@@ -880,17 +880,17 @@
880 880
        _writer_bits::writeToken(*_os, it->first) << ' ';
881 881
        _writer_bits::writeToken(*_os, it->second->get());
882 882
        *_os << std::endl;
883 883
      }
884 884
    }
885 885

	
886 886
  public:
887 887

	
888
    /// \name Execution of the writer
888
    /// \name Execution of the Writer
889 889
    /// @{
890 890

	
891 891
    /// \brief Start the batch processing
892 892
    ///
893 893
    /// This function starts the batch processing.
894 894
    void run() {
895 895
      if (!_skip_nodes) {
896 896
        writeNodes();
... ...
@@ -1101,17 +1101,17 @@
1101 1101
      _edges_caption = other._edges_caption;
1102 1102
      _attributes_caption = other._attributes_caption;
1103 1103
    }
1104 1104

	
1105 1105
    GraphWriter& operator=(const GraphWriter&);
1106 1106

	
1107 1107
  public:
1108 1108

	
1109
    /// \name Writing rules
1109
    /// \name Writing Rules
1110 1110
    /// @{
1111 1111

	
1112 1112
    /// \brief Node map writing rule
1113 1113
    ///
1114 1114
    /// Add a node map writing rule to the writer.
1115 1115
    template <typename Map>
1116 1116
    GraphWriter& nodeMap(const std::string& caption, const Map& map) {
1117 1117
      checkConcept<concepts::ReadMap<Node, typename Map::Value>, Map>();
... ...
@@ -1250,17 +1250,17 @@
1250 1250
      typedef _writer_bits::GraphArcLookUpConverter<Graph> Converter;
1251 1251
      Converter converter(_graph, _edge_index);
1252 1252
      _writer_bits::ValueStorageBase* storage =
1253 1253
        new _writer_bits::ValueStorage<Arc, Converter>(arc, converter);
1254 1254
      _attributes.push_back(std::make_pair(caption, storage));
1255 1255
      return *this;
1256 1256
    }
1257 1257

	
1258
    /// \name Section captions
1258
    /// \name Section Captions
1259 1259
    /// @{
1260 1260

	
1261 1261
    /// \brief Add an additional caption to the \c \@nodes section
1262 1262
    ///
1263 1263
    /// Add an additional caption to the \c \@nodes section.
1264 1264
    GraphWriter& nodes(const std::string& caption) {
1265 1265
      _nodes_caption = caption;
1266 1266
      return *this;
... ...
@@ -1277,17 +1277,17 @@
1277 1277
    /// \brief Add an additional caption to the \c \@attributes section
1278 1278
    ///
1279 1279
    /// Add an additional caption to the \c \@attributes section.
1280 1280
    GraphWriter& attributes(const std::string& caption) {
1281 1281
      _attributes_caption = caption;
1282 1282
      return *this;
1283 1283
    }
1284 1284

	
1285
    /// \name Skipping section
1285
    /// \name Skipping Section
1286 1286
    /// @{
1287 1287

	
1288 1288
    /// \brief Skip writing the node set
1289 1289
    ///
1290 1290
    /// The \c \@nodes section will not be written to the stream.
1291 1291
    GraphWriter& skipNodes() {
1292 1292
      LEMON_ASSERT(!_skip_nodes, "Multiple usage of skipNodes() member");
1293 1293
      _skip_nodes = true;
... ...
@@ -1494,17 +1494,17 @@
1494 1494
        _writer_bits::writeToken(*_os, it->first) << ' ';
1495 1495
        _writer_bits::writeToken(*_os, it->second->get());
1496 1496
        *_os << std::endl;
1497 1497
      }
1498 1498
    }
1499 1499

	
1500 1500
  public:
1501 1501

	
1502
    /// \name Execution of the writer
1502
    /// \name Execution of the Writer
1503 1503
    /// @{
1504 1504

	
1505 1505
    /// \brief Start the batch processing
1506 1506
    ///
1507 1507
    /// This function starts the batch processing.
1508 1508
    void run() {
1509 1509
      if (!_skip_nodes) {
1510 1510
        writeNodes();
... ...
@@ -1646,17 +1646,17 @@
1646 1646

	
1647 1647
      _sections.swap(other._sections);
1648 1648
    }
1649 1649

	
1650 1650
    SectionWriter& operator=(const SectionWriter&);
1651 1651

	
1652 1652
  public:
1653 1653

	
1654
    /// \name Section writers
1654
    /// \name Section Writers
1655 1655
    /// @{
1656 1656

	
1657 1657
    /// \brief Add a section writer with line oriented writing
1658 1658
    ///
1659 1659
    /// The first parameter is the type descriptor of the section, the
1660 1660
    /// second is a generator with std::string values. At the writing
1661 1661
    /// process, the returned \c std::string will be written into the
1662 1662
    /// output file until it is an empty string.
... ...
@@ -1713,17 +1713,17 @@
1713 1713
      return *this;
1714 1714
    }
1715 1715

	
1716 1716
    /// @}
1717 1717

	
1718 1718
  public:
1719 1719

	
1720 1720

	
1721
    /// \name Execution of the writer
1721
    /// \name Execution of the Writer
1722 1722
    /// @{
1723 1723

	
1724 1724
    /// \brief Start the batch processing
1725 1725
    ///
1726 1726
    /// This function starts the batch processing.
1727 1727
    void run() {
1728 1728

	
1729 1729
      LEMON_ASSERT(_os != 0, "This writer is assigned to an other writer");
Ignore white space 6 line context
... ...
@@ -47,44 +47,44 @@
47 47

	
48 48
    _solver_bits::VarIndex rows;
49 49
    _solver_bits::VarIndex cols;
50 50

	
51 51
  public:
52 52

	
53 53
    ///Possible outcomes of an LP solving procedure
54 54
    enum SolveExitStatus {
55
      ///This means that the problem has been successfully solved: either
55
      /// = 0. It means that the problem has been successfully solved: either
56 56
      ///an optimal solution has been found or infeasibility/unboundedness
57 57
      ///has been proved.
58 58
      SOLVED = 0,
59
      ///Any other case (including the case when some user specified
60
      ///limit has been exceeded)
59
      /// = 1. Any other case (including the case when some user specified
60
      ///limit has been exceeded).
61 61
      UNSOLVED = 1
62 62
    };
63 63

	
64 64
    ///Direction of the optimization
65 65
    enum Sense {
66 66
      /// Minimization
67 67
      MIN,
68 68
      /// Maximization
69 69
      MAX
70 70
    };
71 71

	
72 72
    ///Enum for \c messageLevel() parameter
73 73
    enum MessageLevel {
74
      /// no output (default value)
74
      /// No output (default value).
75 75
      MESSAGE_NOTHING,
76
      /// error messages only
76
      /// Error messages only.
77 77
      MESSAGE_ERROR,
78
      /// warnings
78
      /// Warnings.
79 79
      MESSAGE_WARNING,
80
      /// normal output
80
      /// Normal output.
81 81
      MESSAGE_NORMAL,
82
      /// verbose output
82
      /// Verbose output.
83 83
      MESSAGE_VERBOSE
84 84
    };
85 85
    
86 86

	
87 87
    ///The floating point type used by the solver
88 88
    typedef double Value;
89 89
    ///The infinity constant
90 90
    static const Value INF;
... ...
@@ -1000,17 +1000,17 @@
1000 1000
  public:
1001 1001

	
1002 1002
    /// Virtual destructor
1003 1003
    virtual ~LpBase() {}
1004 1004

	
1005 1005
    ///Gives back the name of the solver.
1006 1006
    const char* solverName() const {return _solverName();}
1007 1007

	
1008
    ///\name Build up and modify the LP
1008
    ///\name Build Up and Modify the LP
1009 1009

	
1010 1010
    ///@{
1011 1011

	
1012 1012
    ///Add a new empty column (i.e a new variable) to the LP
1013 1013
    Col addCol() { Col c; c._id = _addColId(_addCol()); return c;}
1014 1014

	
1015 1015
    ///\brief Adds several new columns (i.e variables) at once
1016 1016
    ///
... ...
@@ -1783,25 +1783,25 @@
1783 1783
  /// default LP solver. However, if you would like to handle LP
1784 1784
  /// solvers as reference or pointer in a generic way, you can use
1785 1785
  /// this class directly.
1786 1786
  class LpSolver : virtual public LpBase {
1787 1787
  public:
1788 1788

	
1789 1789
    /// The problem types for primal and dual problems
1790 1790
    enum ProblemType {
1791
      ///Feasible solution hasn't been found (but may exist).
1791
      /// = 0. Feasible solution hasn't been found (but may exist).
1792 1792
      UNDEFINED = 0,
1793
      ///The problem has no feasible solution
1793
      /// = 1. The problem has no feasible solution.
1794 1794
      INFEASIBLE = 1,
1795
      ///Feasible solution found
1795
      /// = 2. Feasible solution found.
1796 1796
      FEASIBLE = 2,
1797
      ///Optimal solution exists and found
1797
      /// = 3. Optimal solution exists and found.
1798 1798
      OPTIMAL = 3,
1799
      ///The cost function is unbounded
1799
      /// = 4. The cost function is unbounded.
1800 1800
      UNBOUNDED = 4
1801 1801
    };
1802 1802

	
1803 1803
    ///The basis status of variables
1804 1804
    enum VarStatus {
1805 1805
      /// The variable is in the basis
1806 1806
      BASIC, 
1807 1807
      /// The variable is free, but not basic
... ...
@@ -1847,17 +1847,17 @@
1847 1847
    ///
1848 1848
    ///\return The result of the optimization procedure. Possible
1849 1849
    ///values and their meanings can be found in the documentation of
1850 1850
    ///\ref SolveExitStatus.
1851 1851
    SolveExitStatus solve() { return _solve(); }
1852 1852

	
1853 1853
    ///@}
1854 1854

	
1855
    ///\name Obtain the solution
1855
    ///\name Obtain the Solution
1856 1856

	
1857 1857
    ///@{
1858 1858

	
1859 1859
    /// The type of the primal problem
1860 1860
    ProblemType primalType() const {
1861 1861
      return _getPrimalType();
1862 1862
    }
1863 1863

	
... ...
@@ -1969,27 +1969,26 @@
1969 1969
  /// default MIP solver. However, if you would like to handle MIP
1970 1970
  /// solvers as reference or pointer in a generic way, you can use
1971 1971
  /// this class directly.
1972 1972
  class MipSolver : virtual public LpBase {
1973 1973
  public:
1974 1974

	
1975 1975
    /// The problem types for MIP problems
1976 1976
    enum ProblemType {
1977
      ///Feasible solution hasn't been found (but may exist).
1977
      /// = 0. Feasible solution hasn't been found (but may exist).
1978 1978
      UNDEFINED = 0,
1979
      ///The problem has no feasible solution
1979
      /// = 1. The problem has no feasible solution.
1980 1980
      INFEASIBLE = 1,
1981
      ///Feasible solution found
1981
      /// = 2. Feasible solution found.
1982 1982
      FEASIBLE = 2,
1983
      ///Optimal solution exists and found
1983
      /// = 3. Optimal solution exists and found.
1984 1984
      OPTIMAL = 3,
1985
      ///The cost function is unbounded
1986
      ///
1987
      ///The Mip or at least the relaxed problem is unbounded
1985
      /// = 4. The cost function is unbounded.
1986
      ///The Mip or at least the relaxed problem is unbounded.
1988 1987
      UNBOUNDED = 4
1989 1988
    };
1990 1989

	
1991 1990
    ///Allocate a new MIP problem instance
1992 1991
    virtual MipSolver* newSolver() const = 0;
1993 1992
    ///Make a copy of the MIP problem
1994 1993
    virtual MipSolver* cloneSolver() const = 0;
1995 1994

	
... ...
@@ -2001,24 +2000,24 @@
2001 2000
    ///
2002 2001
    ///\return The result of the optimization procedure. Possible
2003 2002
    ///values and their meanings can be found in the documentation of
2004 2003
    ///\ref SolveExitStatus.
2005 2004
    SolveExitStatus solve() { return _solve(); }
2006 2005

	
2007 2006
    ///@}
2008 2007

	
2009
    ///\name Setting column type
2008
    ///\name Set Column Type
2010 2009
    ///@{
2011 2010

	
2012 2011
    ///Possible variable (column) types (e.g. real, integer, binary etc.)
2013 2012
    enum ColTypes {
2014
      ///Continuous variable (default)
2013
      /// = 0. Continuous variable (default).
2015 2014
      REAL = 0,
2016
      ///Integer variable
2015
      /// = 1. Integer variable.
2017 2016
      INTEGER = 1
2018 2017
    };
2019 2018

	
2020 2019
    ///Sets the type of the given column to the given type
2021 2020

	
2022 2021
    ///Sets the type of the given column to the given type.
2023 2022
    ///
2024 2023
    void colType(Col c, ColTypes col_type) {
... ...
@@ -2029,17 +2028,17 @@
2029 2028

	
2030 2029
    ///Gives back the type of the column.
2031 2030
    ///
2032 2031
    ColTypes colType(Col c) const {
2033 2032
      return _getColType(cols(id(c)));
2034 2033
    }
2035 2034
    ///@}
2036 2035

	
2037
    ///\name Obtain the solution
2036
    ///\name Obtain the Solution
2038 2037

	
2039 2038
    ///@{
2040 2039

	
2041 2040
    /// The type of the MIP problem
2042 2041
    ProblemType type() const {
2043 2042
      return _getType();
2044 2043
    }
2045 2044

	
Ignore white space 6 line context
... ...
@@ -2723,18 +2723,18 @@
2723 2723
  private:
2724 2724

	
2725 2725
    const Digraph& _digraph;
2726 2726
    AutoNodeMap _deg;
2727 2727
  };
2728 2728

	
2729 2729
  /// \brief Potential difference map
2730 2730
  ///
2731
  /// PotentialMap returns the difference between the potentials of the
2732
  /// source and target nodes of each arc in a digraph, i.e. it returns
2731
  /// PotentialDifferenceMap returns the difference between the potentials of
2732
  /// the source and target nodes of each arc in a digraph, i.e. it returns
2733 2733
  /// \code
2734 2734
  ///   potential[gr.target(arc)] - potential[gr.source(arc)].
2735 2735
  /// \endcode
2736 2736
  /// \tparam GR The digraph type.
2737 2737
  /// \tparam POT A node map storing the potentials.
2738 2738
  template <typename GR, typename POT>
2739 2739
  class PotentialDifferenceMap {
2740 2740
  public:
Ignore white space 6 line context
... ...
@@ -85,20 +85,20 @@
85 85
    static PredMap *createPredMap(const Digraph &digraph){
86 86
      return new PredMap(digraph);
87 87
    }
88 88

	
89 89
  };
90 90

	
91 91
  /// \ingroup spantree
92 92
  ///
93
  /// \brief %MinCostArborescence algorithm class.
93
  /// \brief Minimum Cost Arborescence algorithm class.
94 94
  ///
95 95
  /// This class provides an efficient implementation of
96
  /// %MinCostArborescence algorithm. The arborescence is a tree
96
  /// Minimum Cost Arborescence algorithm. The arborescence is a tree
97 97
  /// which is directed from a given source node of the digraph. One or
98 98
  /// more sources should be given for the algorithm and it will calculate
99 99
  /// the minimum cost subgraph which are union of arborescences with the
100 100
  /// given sources and spans all the nodes which are reachable from the
101 101
  /// sources. The time complexity of the algorithm is O(n<sup>2</sup>+e).
102 102
  ///
103 103
  /// The algorithm provides also an optimal dual solution, therefore
104 104
  /// the optimality of the solution can be checked.
... ...
@@ -385,17 +385,17 @@
385 385
        }
386 386
        _arborescence->set((*_pred)[source], true);
387 387
      }
388 388
    }
389 389

	
390 390

	
391 391
  public:
392 392

	
393
    /// \name Named template parameters
393
    /// \name Named Template Parameters
394 394

	
395 395
    /// @{
396 396

	
397 397
    template <class T>
398 398
    struct DefArborescenceMapTraits : public Traits {
399 399
      typedef T ArborescenceMap;
400 400
      static ArborescenceMap *createArborescenceMap(const Digraph &)
401 401
      {
... ...
@@ -625,17 +625,17 @@
625 625

	
626 626
    private:
627 627
      const MinCostArborescence* _algorithm;
628 628
      int _index, _last;
629 629
    };
630 630

	
631 631
    /// @}
632 632

	
633
    /// \name Execution control
633
    /// \name Execution Control
634 634
    /// The simplest way to execute the algorithm is to use
635 635
    /// one of the member functions called \c run(...). \n
636 636
    /// If you need more control on the execution,
637 637
    /// first you must call \ref init(), then you can add several
638 638
    /// source nodes with \ref addSource().
639 639
    /// Finally \ref start() will perform the arborescence
640 640
    /// computation.
641 641

	
Ignore white space 6 line context
... ...
@@ -654,17 +654,17 @@
654 654
#else
655 655
      seed(bits::getWinRndSeed());
656 656
#endif
657 657
      return true;
658 658
    }
659 659

	
660 660
    /// @}
661 661

	
662
    ///\name Uniform distributions
662
    ///\name Uniform Distributions
663 663
    ///
664 664
    /// @{
665 665

	
666 666
    /// \brief Returns a random real number from the range [0, 1)
667 667
    ///
668 668
    /// It returns a random real number from the range [0, 1). The
669 669
    /// default Number type is \c double.
670 670
    template <typename Number>
... ...
@@ -757,17 +757,17 @@
757 757
    /// random bits. Every time when it become empty the generator makes
758 758
    /// a new random word and fill the buffer up.
759 759
    bool boolean() {
760 760
      return bool_producer.convert(core);
761 761
    }
762 762

	
763 763
    /// @}
764 764

	
765
    ///\name Non-uniform distributions
765
    ///\name Non-uniform Distributions
766 766
    ///
767 767
    ///@{
768 768

	
769 769
    /// \brief Returns a random bool with given probability of true result.
770 770
    ///
771 771
    /// It returns a random bool with given probability of true result.
772 772
    bool boolean(double p) {
773 773
      return operator()() < p;
... ...
@@ -933,17 +933,17 @@
933 933
        k++;
934 934
        p*=real<double>();
935 935
      } while (p>=l);
936 936
      return k-1;
937 937
    }
938 938

	
939 939
    ///@}
940 940

	
941
    ///\name Two dimensional distributions
941
    ///\name Two Dimensional Distributions
942 942
    ///
943 943
    ///@{
944 944

	
945 945
    /// Uniform distribution on the full unit circle
946 946

	
947 947
    /// Uniform distribution on the full unit circle.
948 948
    ///
949 949
    dim2::Point<double> disc()
Ignore white space 6 line context
... ...
@@ -283,17 +283,17 @@
283 283
      if (_local_potential) {
284 284
        delete _potential;
285 285
        _local_potential = false;
286 286
      }
287 287
      _potential = &map;
288 288
      return *this;
289 289
    }
290 290

	
291
    /// \name Execution control
291
    /// \name Execution Control
292 292
    /// The simplest way to execute the algorithm is to call the run()
293 293
    /// function.
294 294
    /// \n
295 295
    /// If you only need the flow that is the union of the found
296 296
    /// arc-disjoint paths, you may call init() and findFlow().
297 297

	
298 298
    /// @{
299 299

	
Ignore white space 6 line context
... ...
@@ -282,17 +282,17 @@
282 282

	
283 283
  public:
284 284
    ///Constructor.
285 285

	
286 286
    ///\param run indicates whether or not the timer starts immediately.
287 287
    ///
288 288
    Timer(bool run=true) :_running(run) {_reset();}
289 289

	
290
    ///\name Control the state of the timer
290
    ///\name Control the State of the Timer
291 291
    ///Basically a Timer can be either running or stopped,
292 292
    ///but it provides a bit finer control on the execution.
293 293
    ///The \ref lemon::Timer "Timer" also counts the number of
294 294
    ///\ref lemon::Timer::start() "start()" executions, and it stops
295 295
    ///only after the same amount (or more) \ref lemon::Timer::stop()
296 296
    ///"stop()"s. This can be useful e.g. to compute the running time
297 297
    ///of recursive functions.
298 298

	
... ...
@@ -390,17 +390,17 @@
390 390
    void restart()
391 391
    {
392 392
      reset();
393 393
      start();
394 394
    }
395 395

	
396 396
    ///@}
397 397

	
398
    ///\name Query Functions for the ellapsed time
398
    ///\name Query Functions for the Ellapsed Time
399 399

	
400 400
    ///@{
401 401

	
402 402
    ///Gives back the ellapsed user time of the process
403 403
    double userTime() const
404 404
    {
405 405
      return operator TimeStamp().userTime();
406 406
    }
Ignore white space 6 line context
... ...
@@ -18,21 +18,20 @@
18 18

	
19 19
///\ingroup tools
20 20
///\file
21 21
///\brief DIMACS problem solver.
22 22
///
23 23
/// This program solves various problems given in DIMACS format.
24 24
///
25 25
/// See
26
/// \verbatim
27
///  dimacs-solver --help
28
/// \endverbatim
26
/// \code
27
///   dimacs-solver --help
28
/// \endcode
29 29
/// for more info on usage.
30
///
31 30

	
32 31
#include <iostream>
33 32
#include <fstream>
34 33
#include <cstring>
35 34

	
36 35
#include <lemon/smart_graph.h>
37 36
#include <lemon/dimacs.h>
38 37
#include <lemon/lgf_writer.h>
Ignore white space 6 line context
... ...
@@ -19,21 +19,20 @@
19 19
///\ingroup tools
20 20
///\file
21 21
///\brief DIMACS to LGF converter.
22 22
///
23 23
/// This program converts various DIMACS formats to the LEMON Digraph Format
24 24
/// (LGF).
25 25
///
26 26
/// See
27
/// \verbatim
28
///  dimacs-to-lgf --help
29
/// \endverbatim
30
/// for more info on usage.
31
///
27
/// \code
28
///   dimacs-to-lgf --help
29
/// \endcode
30
/// for more info on the usage.
32 31

	
33 32
#include <iostream>
34 33
#include <fstream>
35 34
#include <cstring>
36 35

	
37 36
#include <lemon/smart_graph.h>
38 37
#include <lemon/dimacs.h>
39 38
#include <lemon/lgf_writer.h>
Ignore white space 6 line context
... ...
@@ -18,22 +18,20 @@
18 18

	
19 19
/// \ingroup tools
20 20
/// \file
21 21
/// \brief Special plane digraph generator.
22 22
///
23 23
/// Graph generator application for various types of plane graphs.
24 24
///
25 25
/// See
26
/// \verbatim
27
///  lgf-gen --help
28
/// \endverbatim
26
/// \code
27
///   lgf-gen --help
28
/// \endcode
29 29
/// for more info on the usage.
30
///
31

	
32 30

	
33 31
#include <algorithm>
34 32
#include <set>
35 33
#include <ctime>
36 34
#include <lemon/list_graph.h>
37 35
#include <lemon/random.h>
38 36
#include <lemon/dim2.h>
39 37
#include <lemon/bfs.h>
0 comments (0 inline)