↑ Collapse diff ↑
Ignore white space 6 line context
... ...
@@ -70,15 +70,15 @@
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;
Ignore white space 6 line context
... ...
@@ -599,13 +599,13 @@
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.
... ...
@@ -651,13 +651,13 @@
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.
... ...
@@ -776,13 +776,13 @@
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;
... ...
@@ -815,13 +815,13 @@
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.
Ignore white space 6 line context
... ...
@@ -68,15 +68,15 @@
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
Ignore white space 6 line context
... ...
@@ -203,13 +203,13 @@
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;
Ignore white space 6 line context
... ...
@@ -283,13 +283,13 @@
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;
Ignore white space 6 line context
... ...
@@ -34,34 +34,39 @@
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;
... ...
@@ -93,14 +98,13 @@
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
... ...
@@ -250,13 +254,13 @@
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
... ...
@@ -284,13 +288,13 @@
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
... ...
@@ -310,13 +314,13 @@
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.
... ...
@@ -356,17 +360,17 @@
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
Ignore white space 6 line context
... ...
@@ -265,28 +265,24 @@
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;
Ignore white space 6 line context
... ...
@@ -245,39 +245,39 @@
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
... ...
@@ -298,27 +298,25 @@
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);
Ignore white space 6 line context
... ...
@@ -590,13 +590,13 @@
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>
... ...
@@ -695,13 +695,13 @@
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) {
... ...
@@ -724,13 +724,13 @@
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.
... ...
@@ -1113,13 +1113,13 @@
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() {
... ...
@@ -1386,13 +1386,13 @@
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>
... ...
@@ -1537,13 +1537,13 @@
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) {
... ...
@@ -1566,13 +1566,13 @@
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.
... ...
@@ -1956,13 +1956,13 @@
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() {
... ...
@@ -2155,13 +2155,13 @@
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
... ...
@@ -2254,13 +2254,13 @@
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() {
... ...
@@ -2436,13 +2436,13 @@
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 {
... ...
@@ -2462,13 +2462,13 @@
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().
... ...
@@ -2520,13 +2520,13 @@
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 {
... ...
@@ -2546,13 +2546,13 @@
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 {
... ...
@@ -2622,13 +2622,13 @@
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() {
Ignore white space 6 line context
... ...
@@ -535,13 +535,13 @@
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>
... ...
@@ -638,13 +638,13 @@
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) {
... ...
@@ -665,13 +665,13 @@
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() {
... ...
@@ -882,13 +882,13 @@
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() {
... ...
@@ -1103,13 +1103,13 @@
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>
... ...
@@ -1252,13 +1252,13 @@
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) {
... ...
@@ -1279,13 +1279,13 @@
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() {
... ...
@@ -1496,13 +1496,13 @@
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() {
... ...
@@ -1648,13 +1648,13 @@
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
... ...
@@ -1715,13 +1715,13 @@
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() {
Ignore white space 6 line context
... ...
@@ -49,18 +49,18 @@
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
... ...
@@ -68,21 +68,21 @@
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;
... ...
@@ -1002,13 +1002,13 @@
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

	
... ...
@@ -1785,21 +1785,21 @@
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
... ...
@@ -1849,13 +1849,13 @@
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();
... ...
@@ -1971,23 +1971,22 @@
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
... ...
@@ -2003,20 +2002,20 @@
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.
... ...
@@ -2031,13 +2030,13 @@
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();
Ignore white space 6 line context
... ...
@@ -2725,14 +2725,14 @@
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>
Ignore white space 6 line context
... ...
@@ -87,16 +87,16 @@
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
  ///
... ...
@@ -387,13 +387,13 @@
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;
... ...
@@ -627,13 +627,13 @@
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
Ignore white space 12 line context
... ...
@@ -656,13 +656,13 @@
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
... ...
@@ -759,13 +759,13 @@
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.
... ...
@@ -935,13 +935,13 @@
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.
Ignore white space 6 line context
... ...
@@ -285,13 +285,13 @@
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

	
Ignore white space 6 line context
... ...
@@ -284,13 +284,13 @@
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
... ...
@@ -392,13 +392,13 @@
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
    {
Ignore white space 6 line context
... ...
@@ -20,17 +20,16 @@
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>
Ignore white space 6 line context
... ...
@@ -21,17 +21,16 @@
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>
Ignore white space 6 line context
... ...
@@ -20,18 +20,16 @@
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>
0 comments (0 inline)