gravatar
kpeter (Peter Kovacs)
kpeter@inf.elte.hu
Doc improvements for the DIMACS tools (#167) The doc group is moved to groups.dox.
0 2 0
default
2 files changed with 20 insertions and 19 deletions:
↑ Collapse diff ↑
Ignore white space 16 line context
... ...
@@ -477,19 +477,28 @@
477 477
@ingroup io_group
478 478
\brief General \c EPS drawer and graph exporter
479 479

	
480 480
This group describes general \c EPS drawing methods and special
481 481
graph exporting tools.
482 482
*/
483 483

	
484 484
/**
485
@defgroup dimacs_group DIMACS format
486
@ingroup io_group
487
\brief Read and write files in DIMACS format
488

	
489
Tools to read a digraph from or write it to a file in DIMACS format data.
490
*/
491

	
492
/**
485 493
@defgroup nauty_group NAUTY Format
486 494
@ingroup io_group
487 495
\brief Read \e Nauty format
496

	
488 497
Tool to read graphs from \e Nauty format data.
489 498
*/
490 499

	
491 500
/**
492 501
@defgroup concept Concepts
493 502
\brief Skeleton classes and concept checking classes
494 503

	
495 504
This group describes the data/algorithm skeletons and concept checking
Ignore white space 16 line context
... ...
@@ -26,50 +26,42 @@
26 26
#include <lemon/error.h>
27 27

	
28 28
/// \ingroup dimacs_group
29 29
/// \file
30 30
/// \brief DIMACS file format reader.
31 31

	
32 32
namespace lemon {
33 33

	
34
  ///@defgroup dimacs_group DIMACS format
35
  ///\brief Read and write files in DIMACS format
36
  ///
37
  ///Tools to read a digraph from or write it to a file in DIMACS format
38
  ///data
39
  ///\ingroup io_group
40

	
41 34
  /// \addtogroup dimacs_group
42 35
  /// @{
43 36

	
44

	
45 37
  /// DIMACS file type descriptor.
46 38
  struct DimacsDescriptor
47 39
  {
48 40
    ///File type enum
49 41
    enum Type
50 42
      {
51 43
        NONE, MIN, MAX, SP, MAT
52 44
      };
53 45
    ///The file type
54 46
    Type type;
55
    ///The number of nodes on the graph
47
    ///The number of nodes in the graph
56 48
    int nodeNum;
57
    ///The number of edges on the graph
49
    ///The number of edges in the graph
58 50
    int edgeNum;
59 51
    int lineShift;
60 52
    /// Constructor. Sets the type to NONE.
61 53
    DimacsDescriptor() : type(NONE) {}
62 54
  };
63 55

	
64 56
  ///Discover the type of a DIMACS file
65 57

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

	
106 98

	
107 99

	
108
  /// DIMACS min cost flow reader function.
100
  /// DIMACS minimum cost flow reader function.
109 101
  ///
110
  /// This function reads a min cost flow instance from DIMACS format,
111
  /// i.e. from DIMACS files having a line starting with
102
  /// This function reads a minimum cost flow instance from DIMACS format,
103
  /// i.e. from a DIMACS file having a line starting with
112 104
  /// \code
113 105
  ///   p min
114 106
  /// \endcode
115 107
  /// At the beginning, \c g is cleared by \c g.clear(). The supply
116 108
  /// amount of the nodes are written to \c supply (signed). The
117 109
  /// lower bounds, capacities and costs of the arcs are written to
118 110
  /// \c lower, \c capacity and \c cost.
119 111
  ///
... ...
@@ -225,20 +217,20 @@
225 217
          getline(is, str);
226 218
          g.addArc(nodes[i], nodes[j]);
227 219
        }
228 220
        break;
229 221
      }
230 222
    }
231 223
  }
232 224

	
233
  /// DIMACS max flow reader function.
225
  /// DIMACS maximum flow reader function.
234 226
  ///
235
  /// This function reads a max flow instance from DIMACS format,
236
  /// i.e. from DIMACS files having a line starting with
227
  /// This function reads a maximum flow instance from DIMACS format,
228
  /// i.e. from a DIMACS file having a line starting with
237 229
  /// \code
238 230
  ///   p max
239 231
  /// \endcode
240 232
  /// At the beginning, \c g is cleared by \c g.clear(). The arc
241 233
  /// capacities are written to \c capacity and \c s and \c t are
242 234
  /// set to the source and the target nodes.
243 235
  ///
244 236
  /// If the file type was previously evaluated by dimacsType(), then
... ...
@@ -254,22 +246,22 @@
254 246
    if(desc.type!=DimacsDescriptor::MAX)
255 247
      throw FormatError("Problem type mismatch");
256 248
    _readDimacs(is,g,capacity,s,t,desc);
257 249
  }
258 250

	
259 251
  /// DIMACS shortest path reader function.
260 252
  ///
261 253
  /// This function reads a shortest path instance from DIMACS format,
262
  /// i.e. from DIMACS files having a line starting with
254
  /// i.e. from a DIMACS file having a line starting with
263 255
  /// \code
264 256
  ///   p sp
265 257
  /// \endcode
266 258
  /// At the beginning, \c g is cleared by \c g.clear(). The arc
267
  /// lengths are written to \c lenght and \c s is set to the
259
  /// lengths are written to \c length and \c s is set to the
268 260
  /// source node.
269 261
  ///
270 262
  /// If the file type was previously evaluated by dimacsType(), then
271 263
  /// the descriptor struct should be given by the \c dest parameter.
272 264
  template<typename Digraph, typename LengthMap>
273 265
  void readDimacsSp(std::istream& is,
274 266
                    Digraph &g,
275 267
                    LengthMap& length,
0 comments (0 inline)