gravatar
alpar (Alpar Juttner)
alpar@cs.elte.hu
Merge
0 2 0
merge default
0 files changed with 4 insertions and 3 deletions:
↑ Collapse diff ↑
Ignore white space 6 line context
... ...
@@ -17,72 +17,72 @@
17 17
 */
18 18

	
19 19
#ifndef LEMON_NAUTY_READER_H
20 20
#define LEMON_NAUTY_READER_H
21 21

	
22 22
#include <vector>
23 23
#include <iostream>
24 24
#include <string>
25 25

	
26 26
/// \ingroup nauty_group
27 27
/// \file
28 28
/// \brief Nauty file reader.
29 29

	
30 30
namespace lemon {
31 31

	
32 32
  /// \ingroup nauty_group
33 33
  ///
34 34
  /// \brief Nauty file reader
35 35
  ///
36 36
  /// The \e geng program is in the \e gtools suite of the nauty
37 37
  /// package. This tool can generate all non-isomorphic undirected
38 38
  /// graphs of several classes with given node number (e.g.
39 39
  /// general, connected, biconnected, triangle-free, 4-cycle-free,
40 40
  /// bipartite and graphs with given edge number and degree
41
  /// constraints). This function reads a \e nauty \e graph \e format
41
  /// constraints). This function reads a \e nauty \e graph6 \e format
42 42
  /// line from the given stream and builds it in the given graph.
43 43
  ///
44 44
  /// The site of nauty package: http://cs.anu.edu.au/~bdm/nauty/
45 45
  ///
46 46
  /// For example, the number of all non-isomorphic planar graphs
47 47
  /// can be computed with the following code.
48 48
  ///\code
49 49
  /// int num = 0;
50 50
  /// SmartGraph graph;
51
  /// while (readNauty(graph, std::cin)) {
51
  /// while (readNautyGraph(graph, std::cin)) {
52 52
  ///   PlanarityChecking<SmartGraph> pc(graph);
53 53
  ///   if (pc.run()) ++num;
54 54
  /// }
55 55
  /// std::cout << "Number of planar graphs: " << num << std::endl;
56 56
  ///\endcode
57 57
  ///
58 58
  /// The nauty files are quite huge, therefore instead of the direct
59 59
  /// file generation pipelining is recommended. For example,
60 60
  ///\code
61 61
  /// ./geng -c 10 | ./num_of_planar_graphs
62 62
  ///\endcode
63 63
  template <typename Graph>
64
  std::istream& readNauty(Graph& graph, std::istream& is = std::cin) {
64
  std::istream& readNautyGraph(Graph& graph, std::istream& is = std::cin) {
65 65
    graph.clear();
66 66

	
67 67
    std::string line;
68 68
    if (getline(is, line)) {
69 69
      int index = 0;
70 70

	
71 71
      int n;
72 72

	
73 73
      if (line[index] == '>') {
74 74
        index += 10;
75 75
      }
76 76

	
77 77
      char c = line[index++]; c -= 63;
78 78
      if (c != 63) {
79 79
        n = int(c);
80 80
      } else {
81 81
        c = line[index++]; c -= 63;
82 82
        n = (int(c) << 12);
83 83
        c = line[index++]; c -= 63;
84 84
        n |= (int(c) << 6);
85 85
        c = line[index++]; c -= 63;
86 86
        n |= int(c);
87 87
      }
88 88

	
Ignore white space 48 line context
... ...
@@ -69,27 +69,28 @@
69 69
        -e "s/_blu_e_label_/blue/g"\
70 70
        -e "s/_GR_APH_TY_PEDE_FS_label_/GRAPH_TYPEDEFS/g"\
71 71
        -e "s/_DIGR_APH_TY_PEDE_FS_label_/DIGRAPH_TYPEDEFS/g"\
72 72
        -e "s/DigraphToEps/GraphToEps/g"\
73 73
        -e "s/digraphToEps/graphToEps/g"\
74 74
        -e "s/\<DefPredMap\>/SetPredMap/g"\
75 75
        -e "s/\<DefDistMap\>/SetDistMap/g"\
76 76
        -e "s/\<DefReachedMap\>/SetReachedMap/g"\
77 77
        -e "s/\<DefProcessedMap\>/SetProcessedMap/g"\
78 78
        -e "s/\<DefHeap\>/SetHeap/g"\
79 79
        -e "s/\<DefStandardHeap\>/SetStandradHeap/g"\
80 80
        -e "s/\<DefOperationTraits\>/SetOperationTraits/g"\
81 81
        -e "s/\<DefProcessedMapToBeDefaultMap\>/SetStandardProcessedMap/g"\
82 82
        -e "s/\<copyGraph\>/graphCopy/g"\
83 83
        -e "s/\<copyDigraph\>/digraphCopy/g"\
84 84
        -e "s/\<IntegerMap\>/RangeMap/g"\
85 85
        -e "s/\<integerMap\>/rangeMap/g"\
86 86
        -e "s/\<\([sS]\)tdMap\>/\1parseMap/g"\
87 87
        -e "s/\<\([Ff]\)unctorMap\>/\1unctorToMap/g"\
88 88
        -e "s/\<\([Mm]\)apFunctor\>/\1apToFunctor/g"\
89 89
        -e "s/\<\([Ff]\)orkWriteMap\>/\1orkMap/g"\
90 90
        -e "s/\<StoreBoolMap\>/LoggerBoolMap/g"\
91 91
        -e "s/\<storeBoolMap\>/loggerBoolMap/g"\
92 92
        -e "s/\<BoundingBox\>/Box/g"\
93
        -e "s/\<readNauty\>/readNautyGraph/g"\
93 94
    <$i > $TMP
94 95
    mv $TMP $i
95 96
done
0 comments (0 inline)