All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Files | Functions
NAUTY Format
Input-Output

Detailed Description

Tool to read graphs from Nauty format data.

Files

file  nauty_reader.h
 Nauty file reader.
 

Functions

template<typename Graph >
std::istreamreadNautyGraph (Graph &graph, std::istream &is=std::cin)
 Nauty file reader.
 

Function Documentation

std::istream& lemon::readNautyGraph ( Graph &  graph,
std::istream is = std::cin 
)

The geng program is in the gtools suite of the nauty package. This tool can generate all non-isomorphic undirected graphs of several classes with given node number (e.g. general, connected, biconnected, triangle-free, 4-cycle-free, bipartite and graphs with given edge number and degree constraints). This function reads a nauty graph6 format line from the given stream and builds it in the given graph.

The site of nauty package: http://cs.anu.edu.au/~bdm/nauty/

For example, the number of all non-isomorphic planar graphs can be computed with the following code.

int num = 0;
SmartGraph graph;
while (readNautyGraph(graph, std::cin)) {
PlanarityChecking<SmartGraph> pc(graph);
if (pc.run()) ++num;
}
std::cout << "Number of planar graphs: " << num << std::endl;

The nauty files are quite huge, therefore instead of the direct file generation pipelining is recommended. For example,

./geng -c 10 | ./num_of_planar_graphs