GRF_IO
GRF files
Read and Write Utilities
GRF_IO
is a C++ library which
reads or writes a GRF file containing information about
an abstract graph.
The file includes information about

adjacency, that is, which nodes are connected to a given node;

embedding, that is, how to place each node in the unit square so that
a drawing of the graph is visually pleasing and "readable".
Licensing:
The computer code and data files described and made available on this web page
are distributed under
the GNU LGPL license.
Languages:
GRF_IO is available in
a C++ version and
a FORTRAN90 version and
a MATLAB version.
Related Data and Programs:
FLOYD,
a C++ library which
implements Floyd's algorithm for finding the shortest distance between pairs of
nodes on a directed graph.
GRAFFITI,
a dataset directory which
contains 195 abstract graphs, with adjacency and embedding information,
stored in the GRF format.
GRAPH_REPRESENTATION,
a data directory which
contains examples of ways of representing abstract
mathematical graphs
GRF,
a data directory which
contains a description of the GRF format and some examples.
GRF_DISPLAY,
a MATLAB program which
reads a GRF file defining a mathematical graph and
displays it in the MATLAB graphics window.
GRF_DISPLAY_OPENGL,
a C++ program which
reads a GRF file defining a mathematical graph and
displays it in an OpenGL graphics window.
GRF_TO_EPS,
a FORTRAN90 program which
can make an encapsulated PostScript image of a GRF file.
GRF_TO_XYL,
a FORTRAN90 program which
converts information describing the adjacency and embedding of an
abstract graph from GRF to XYL format.
Reference:

Peter Eades, Ian Fogg, David Kelly,
SPREMB: A System for Developing Graph Algorithms,
Congressus Numerantium,
Volume 66, December 1988.

Stephen Skiena,
Implementing Discrete Mathematics:
Combinatorics and Graph Theory in Mathematica,
Addison Wesley, 1990.

http://www.combinatorica.com/
the COMBINATORICA web page.
Source Code:
Examples and Tests:
List of Routines:

CH_EQI is true if two characters are equal, disregarding case.

CH_TO_DIGIT returns the integer value of a base 10 digit.

GRF_DATA_PRINT prints the data of a GRF file.

GRF_DATA_READ reads the data of a GRF file.

GRF_DATA_WRITE writes the data of a GRF file.

GRF_EXAMPLE sets up a GRF example.

GRF_EXAMPLE_SIZE sizes a GRF example.

GRF_HEADER_PRINT prints the header of a GRF file.

GRF_HEADER_READ reads the header of a GRF file.

GRF_HEADER_WRITE writes the header of a GRF file.

GRF_WRITE writes a GRF file.

I4VEC_COPY copies an I4VEC.

R8VEC_COPY copies an R8VEC.

S_LEN_TRIM returns the length of a string to the last nonblank.

S_TO_I4 reads an I4 from a string.

S_TO_R8 reads an R8 from a string.

S_WORD_COUNT counts the number of "words" in a string.

TIMESTAMP prints the current YMDHMS date as a time stamp.
You can go up one level to
the C++ source codes.
Last revised on 25 January 2011.