gravatar
kpeter (Peter Kovacs)
kpeter@inf.elte.hu
Small doc improvements
0 8 0
default
8 files changed with 42 insertions and 28 deletions:
↑ Collapse diff ↑
Ignore white space 6 line context
... ...
@@ -372,13 +372,13 @@
372 372
\f$X\f$ subset of the nodes with minimum overall capacity on
373 373
outgoing arcs. Formally, there is a \f$G=(V,A)\f$ digraph, a
374 374
\f$cap: A\rightarrow\mathbf{R}^+_0\f$ capacity function. The minimum
375 375
cut is the \f$X\f$ solution of the next optimization problem:
376 376

	
377 377
\f[ \min_{X \subset V, X\not\in \{\emptyset, V\}}
378
    \sum_{uv\in A, u\in X, v\not\in X}cap(uv) \f]
378
    \sum_{uv\in A: u\in X, v\not\in X}cap(uv) \f]
379 379

	
380 380
LEMON contains several algorithms related to minimum cut problems:
381 381

	
382 382
- \ref HaoOrlin "Hao-Orlin algorithm" for calculating minimum cut
383 383
  in directed graphs.
384 384
- \ref NagamochiIbaraki "Nagamochi-Ibaraki algorithm" for
... ...
@@ -395,14 +395,14 @@
395 395
@ingroup algs
396 396
\brief Algorithms for discovering the graph properties
397 397

	
398 398
This group contains the algorithms for discovering the graph properties
399 399
like connectivity, bipartiteness, euler property, simplicity etc.
400 400

	
401
\image html edge_biconnected_components.png
402
\image latex edge_biconnected_components.eps "bi-edge-connected components" width=\textwidth
401
\image html connected_components.png
402
\image latex connected_components.eps "Connected components" width=\textwidth
403 403
*/
404 404

	
405 405
/**
406 406
@defgroup planar Planarity Embedding and Drawing
407 407
@ingroup algs
408 408
\brief Algorithms for planarity checking, embedding and drawing
Ignore white space 6 line context
... ...
@@ -410,14 +410,14 @@
410 410

	
411 411
  public:
412 412

	
413 413
    ///\name Execution Control
414 414
    ///The simplest way to execute the BFS algorithm is to use one of the
415 415
    ///member functions called \ref run(Node) "run()".\n
416
    ///If you need more control on the execution, first you have to call
417
    ///\ref init(), then you can add several source nodes with
416
    ///If you need better control on the execution, you have to call
417
    ///\ref init() first, then you can add several source nodes with
418 418
    ///\ref addSource(). Finally the actual path computation can be
419 419
    ///performed with one of the \ref start() functions.
420 420

	
421 421
    ///@{
422 422

	
423 423
    ///\brief Initializes the internal data structures.
... ...
@@ -1422,14 +1422,14 @@
1422 1422

	
1423 1423
  public:
1424 1424

	
1425 1425
    /// \name Execution Control
1426 1426
    /// The simplest way to execute the BFS algorithm is to use one of the
1427 1427
    /// member functions called \ref run(Node) "run()".\n
1428
    /// If you need more control on the execution, first you have to call
1429
    /// \ref init(), then you can add several source nodes with
1428
    /// If you need better control on the execution, you have to call
1429
    /// \ref init() first, then you can add several source nodes with
1430 1430
    /// \ref addSource(). Finally the actual path computation can be
1431 1431
    /// performed with one of the \ref start() functions.
1432 1432

	
1433 1433
    /// @{
1434 1434

	
1435 1435
    /// \brief Initializes the internal data structures.
Ignore white space 6 line context
... ...
@@ -69,13 +69,17 @@
69 69

	
70 70
    /// \brief The type of the map that stores the flow values.
71 71
    ///
72 72
    /// The type of the map that stores the flow values.
73 73
    /// It must conform to the \ref concepts::ReadWriteMap "ReadWriteMap"
74 74
    /// concept.
75
#ifdef DOXYGEN
76
    typedef GR::ArcMap<Value> FlowMap;
77
#else
75 78
    typedef typename Digraph::template ArcMap<Value> FlowMap;
79
#endif
76 80

	
77 81
    /// \brief Instantiates a FlowMap.
78 82
    ///
79 83
    /// This function instantiates a \ref FlowMap.
80 84
    /// \param digraph The digraph for which we would like to define
81 85
    /// the flow map.
... ...
@@ -84,15 +88,18 @@
84 88
    }
85 89

	
86 90
    /// \brief The elevator type used by the algorithm.
87 91
    ///
88 92
    /// The elevator type used by the algorithm.
89 93
    ///
90
    /// \sa Elevator
91
    /// \sa LinkedElevator
94
    /// \sa Elevator, LinkedElevator
95
#ifdef DOXYGEN
96
    typedef lemon::Elevator<GR, GR::Node> Elevator;
97
#else
92 98
    typedef lemon::Elevator<Digraph, typename Digraph::Node> Elevator;
99
#endif
93 100

	
94 101
    /// \brief Instantiates an Elevator.
95 102
    ///
96 103
    /// This function instantiates an \ref Elevator.
97 104
    /// \param digraph The digraph for which we would like to define
98 105
    /// the elevator.
... ...
@@ -464,14 +471,14 @@
464 471
    const Tolerance& tolerance() const {
465 472
      return tolerance;
466 473
    }
467 474

	
468 475
    /// \name Execution Control
469 476
    /// The simplest way to execute the algorithm is to call \ref run().\n
470
    /// If you need more control on the initial solution or the execution,
471
    /// first you have to call one of the \ref init() functions, then
477
    /// If you need better control on the initial solution or the execution,
478
    /// you have to call one of the \ref init() functions first, then
472 479
    /// the \ref start() function.
473 480

	
474 481
    ///@{
475 482

	
476 483
    /// Initializes the internal data structures.
477 484

	
Ignore white space 6 line context
... ...
@@ -408,14 +408,14 @@
408 408

	
409 409
  public:
410 410

	
411 411
    ///\name Execution Control
412 412
    ///The simplest way to execute the DFS algorithm is to use one of the
413 413
    ///member functions called \ref run(Node) "run()".\n
414
    ///If you need more control on the execution, first you have to call
415
    ///\ref init(), then you can add a source node with \ref addSource()
414
    ///If you need better control on the execution, you have to call
415
    ///\ref init() first, then you can add a source node with \ref addSource()
416 416
    ///and perform the actual computation with \ref start().
417 417
    ///This procedure can be repeated if there are nodes that have not
418 418
    ///been reached.
419 419

	
420 420
    ///@{
421 421

	
... ...
@@ -1366,14 +1366,14 @@
1366 1366

	
1367 1367
  public:
1368 1368

	
1369 1369
    /// \name Execution Control
1370 1370
    /// The simplest way to execute the DFS algorithm is to use one of the
1371 1371
    /// member functions called \ref run(Node) "run()".\n
1372
    /// If you need more control on the execution, first you have to call
1373
    /// \ref init(), then you can add a source node with \ref addSource()
1372
    /// If you need better control on the execution, you have to call
1373
    /// \ref init() first, then you can add a source node with \ref addSource()
1374 1374
    /// and perform the actual computation with \ref start().
1375 1375
    /// This procedure can be repeated if there are nodes that have not
1376 1376
    /// been reached.
1377 1377

	
1378 1378
    /// @{
1379 1379

	
Ignore white space 6 line context
... ...
@@ -581,14 +581,14 @@
581 581

	
582 582
  public:
583 583

	
584 584
    ///\name Execution Control
585 585
    ///The simplest way to execute the %Dijkstra algorithm is to use
586 586
    ///one of the member functions called \ref run(Node) "run()".\n
587
    ///If you need more control on the execution, first you have to call
588
    ///\ref init(), then you can add several source nodes with
587
    ///If you need better control on the execution, you have to call
588
    ///\ref init() first, then you can add several source nodes with
589 589
    ///\ref addSource(). Finally the actual path computation can be
590 590
    ///performed with one of the \ref start() functions.
591 591

	
592 592
    ///@{
593 593

	
594 594
    ///\brief Initializes the internal data structures.
Ignore white space 12 line context
... ...
@@ -356,16 +356,16 @@
356 356
    /// GomoryHu. Before using it, you must allocate a GomoryHu class
357 357
    /// and call its \ref GomoryHu::run() "run()" method.
358 358
    ///
359 359
    /// This example counts the nodes in the minimum cut separating \c s from
360 360
    /// \c t.
361 361
    /// \code
362
    /// GomoruHu<Graph> gom(g, capacities);
362
    /// GomoryHu<Graph> gom(g, capacities);
363 363
    /// gom.run();
364 364
    /// int cnt=0;
365
    /// for(GomoruHu<Graph>::MinCutNodeIt n(gom,s,t); n!=INVALID; ++n) ++cnt;
365
    /// for(GomoryHu<Graph>::MinCutNodeIt n(gom,s,t); n!=INVALID; ++n) ++cnt;
366 366
    /// \endcode
367 367
    class MinCutNodeIt
368 368
    {
369 369
      bool _side;
370 370
      typename Graph::NodeIt _node_it;
371 371
      typename Graph::template NodeMap<bool> _cut;
... ...
@@ -453,16 +453,16 @@
453 453
    /// GomoryHu. Before using it, you must allocate a GomoryHu class
454 454
    /// and call its \ref GomoryHu::run() "run()" method.
455 455
    ///
456 456
    /// This example computes the value of the minimum cut separating \c s from
457 457
    /// \c t.
458 458
    /// \code
459
    /// GomoruHu<Graph> gom(g, capacities);
459
    /// GomoryHu<Graph> gom(g, capacities);
460 460
    /// gom.run();
461 461
    /// int value=0;
462
    /// for(GomoruHu<Graph>::MinCutEdgeIt e(gom,s,t); e!=INVALID; ++e)
462
    /// for(GomoryHu<Graph>::MinCutEdgeIt e(gom,s,t); e!=INVALID; ++e)
463 463
    ///   value+=capacities[e];
464 464
    /// \endcode
465 465
    /// The result will be the same as the value returned by
466 466
    /// \ref GomoryHu::minCutValue() "gom.minCutValue(s,t)".
467 467
    class MinCutEdgeIt
468 468
    {
Ignore white space 6 line context
... ...
@@ -485,14 +485,14 @@
485 485
      return *this;
486 486
    }
487 487

	
488 488
    /// \name Execution Control
489 489
    /// The simplest way to execute the algorithm is to use
490 490
    /// one of the member functions called \c run(...). \n
491
    /// If you need more control on the execution,
492
    /// first you must call \ref init(), then you can add several
491
    /// If you need better control on the execution,
492
    /// you have to call \ref init() first, then you can add several
493 493
    /// source nodes with \ref addSource().
494 494
    /// Finally \ref start() will perform the arborescence
495 495
    /// computation.
496 496

	
497 497
    ///@{
498 498

	
Ignore white space 6 line context
... ...
@@ -49,13 +49,17 @@
49 49
    typedef typename CapacityMap::Value Value;
50 50

	
51 51
    /// \brief The type of the map that stores the flow values.
52 52
    ///
53 53
    /// The type of the map that stores the flow values.
54 54
    /// It must meet the \ref concepts::ReadWriteMap "ReadWriteMap" concept.
55
#ifdef DOXYGEN
56
    typedef GR::ArcMap<Value> FlowMap;
57
#else
55 58
    typedef typename Digraph::template ArcMap<Value> FlowMap;
59
#endif
56 60

	
57 61
    /// \brief Instantiates a FlowMap.
58 62
    ///
59 63
    /// This function instantiates a \ref FlowMap.
60 64
    /// \param digraph The digraph for which we would like to define
61 65
    /// the flow map.
... ...
@@ -64,15 +68,18 @@
64 68
    }
65 69

	
66 70
    /// \brief The elevator type used by Preflow algorithm.
67 71
    ///
68 72
    /// The elevator type used by Preflow algorithm.
69 73
    ///
70
    /// \sa Elevator
71
    /// \sa LinkedElevator
72
    typedef LinkedElevator<Digraph, typename Digraph::Node> Elevator;
74
    /// \sa Elevator, LinkedElevator
75
#ifdef DOXYGEN
76
    typedef lemon::Elevator<GR, GR::Node> Elevator;
77
#else
78
    typedef lemon::Elevator<Digraph, typename Digraph::Node> Elevator;
79
#endif
73 80

	
74 81
    /// \brief Instantiates an Elevator.
75 82
    ///
76 83
    /// This function instantiates an \ref Elevator.
77 84
    /// \param digraph The digraph for which we would like to define
78 85
    /// the elevator.
... ...
@@ -386,14 +393,14 @@
386 393
      return tolerance;
387 394
    }
388 395

	
389 396
    /// \name Execution Control
390 397
    /// The simplest way to execute the preflow algorithm is to use
391 398
    /// \ref run() or \ref runMinCut().\n
392
    /// If you need more control on the initial solution or the execution,
393
    /// first you have to call one of the \ref init() functions, then
399
    /// If you need better control on the initial solution or the execution,
400
    /// you have to call one of the \ref init() functions first, then
394 401
    /// \ref startFirstPhase() and if you need it \ref startSecondPhase().
395 402

	
396 403
    ///@{
397 404

	
398 405
    /// \brief Initializes the internal data structures.
399 406
    ///
0 comments (0 inline)