-
Notifications
You must be signed in to change notification settings - Fork 0
/
README_24
292 lines (209 loc) · 11.4 KB
/
README_24
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
README file for nauty 2.4
Brendan McKay, [email protected]
------------------------------------------------------------
The most recent distribution of nauty can be found at
http://cs.anu.edu.au/~bdm/nauty .
The manual nug.pdf is available at that site and is also included
in the distribution package.
Note that nauty is copyright but free to use for most purposes.
The details are in the file nauty.h.
The code in the file planarity.c (used by the planarg program)
is copyright to the Magma project.
------------------------------------------------------------
INSTALLATION.
The first step is to unpack the archive. On Unix-ish systems
you can use one of these commands:
tar xzf nauty24.tar.gz
or
gunzip -c nauty24.tar.gz | tar xf -
This will write all the files into the subdirectory nauty24.
Go to that directory.
If you have a working shell, and make, you can run
./configure
followed by
make all
to compile nauty for your system.
If that succeeds without problem, you will have have the
program dreadnaut ready to run.
If you have problems during compilation, it may be that the
configuration scripts are inadequate for your system. Usually it
is because of some missing system header, incompatible typedef,
or similar. Please send the details to the author.
If you don't have a shell or make, manually edit the files nauty.h,
naututil.h and gtools.h as distributed. The parts between the lines
======= near the start are the main things to look at. After this
manual editing, you can use makefile as a guide to compilation.
Programs which use an older version of nauty need to be
recompiled (** not just relinked **). Make sure they use the
DEFAULTOPTIONS_GRAPH or DEFAULTOPTIONS_SPARSEGRAPH macro to define
the fields of the options parameter.
See below for compiling on a PC under DJGPP.
If you are using Windows in an environment that needs Windows line
endings (which is a configuration option in Cygwin, for example),
then you might prefer to use nauty24.zip rather than
nauty24.tar.gz.
------------------------------------------------------------
TESTING.
After compiling nauty successfully, it is recommended that you run
the included test programs. The simplest way is
make checks
------------------------------------------------------------
MAILING LIST.
There is a mailing list for announcements and discussion about
nauty and related topics. You can subscribe at
http://dcsmail.anu.edu.au/cgi-bin/mailman/listinfo/nauty-list
------------------------------------------------------------
OTHER FILES IN THE PACKAGE.
A few additional goodies are included.
sumlines.c - This is a program designed to digest the outputs from
multiple runs of a program (such as a computation split into multiple
parts). Lines matching given patterns can be counted and checked,
and numbers appearing in them can be accumulated. Instructions appear
in the source file. See the option GMP near the head of the program
before trying to compile.
naugroup.h, naugroup.c - These define procedures for exhaustively
listing a group found by nauty. This is done in a space-efficient way.
A sample program appears in nautyex3.c, but so far there is no
complete documentation.
------------------------------------------------------------
DJGPP.
The Unix-like environment DJGPP can be used to run nauty and gtools on
DOS/Win computers. DJGPP is available at http://www.delorie.com/djgpp .
The program shortg does not work since DJGPP does not provide a working
pipe() system call. Using the bash shell is recommended. In DOS,
Windows NT and early Windows editions, you will need to convert all
long file names to the 8+3 limits. Thanks to Guenter Sterntenbrink
for helping with this.
If configure gives an error message similar to this:
can not guess host type: you must specify one
then try
./configure --host=i686
or use i586 for Pentium 2. If all of those fail, try
./configure --host=unknown
------------------------------------------------------------
Making 32-bit executables on 64-bit Linux systems.
(In bash or sh:)
CFLAGS=-m32 CXXFLAGS=-m32 LDFLAGS=-m32 ./configure
make clean; make
This requires the libraries ia32-libs and libc6-dev-i386.
------------------------------------------------------------
RECENT CHANGES.
Here we list substantive changes made since the first 2.2 release.
Nov 16, 2002: Replaced rng.c after communication with Don Knuth.
The previous version had a bug (mine!) when there was no explicit
initialization done by the user. It appears the error had no
impact on nauty (which only uses rng.c for the "s" command in
dreadnaut, and for genrang, but both always initialize).
No change to the nauty version number but beta=2.
Nov 18, 2000: Adjusted the makefile and countg/testg to work in
the DOS/Win environment DJGPPP (see the previous section).
May 1, 2003: Fixed PRUNE feature of genbg.
May 3, 2003: Added utility directg for making all orientations of graphs.
Oct 4, 2003: Added options -a, -Z, -d, -z to genbg. Also, the -l
(canonical label) option now preserves the colouring.
Nov 17, 2003: Renamed INFINITY to NAUTY_INFINITY since many C header
libraries define INFINITY. If INFINITY is not defined by
the system, you can still use it.
Nov 19, 2003: Added program biplabg to relabel bipartite graphs with the
colour classes contiguous.
Feb 13, 2004: Revised C options for solaris on pentium
Mar 1, 2004: dretog knows !...\n type of comment
May 7, 2004: geng can be called from another program (see instructions
in geng.c.)
May 29, 2004: added definition of SETWORD_FORMAT used to write a setword
with printf( ) - see nauty.h
Sep 11, 2004: Added utility multig for making multigraphs based on
provided simple graphs; similar to directg
Oct 16, 2004: To avoid problems caused by system-dependent handling of
external declarations, nauty() no longer accepts NULL as
the value of options.dispatch. To get the previous
behaviour, use the value &graph_dispatch. This will be
handled automatically if programs calling nauty use
DEFAULTOPTIONS to declare options and are recompiled.
Even better is to use DEFAULTOPTIONS_GRAPH.
May 5, 2005: A bug in the writing of sparse6 was found and fixed.
This is procedure ntos6() in gtools.c, which is invoked
by writes6(). The bug could only happen if all the
following are true:
1. n = 2, 4, 8 or 16 (for n=2, only if the graph has loops)
2. Vertex n-2 has non-zero degree, but vertex n-1 has
zero degree.
These conditions never happen for graphs generated by
geng or genbg, nor for regular graphs or connected graphs,
nor for graphs canonically labelled by nauty (except maybe
with some unusual vertex colouring or invariant).
If the conditions do happen, the buggy routine may
(with some probability) add a spurious loop to vertex n-1.
In the package is a utility checks6:
Usage: checks6 [-w] [infile [outfile]]
Check a file of graphs, optionally write corrected version
-w Write corrected graphs (default is not to write)
------now we start version 2.3 (not released) and 2.4------
Nov 10, 2004: Use faster routine getc_unlocked() for reading graphs if
available. It can make a surprising difference.
Nov 17, 2004: If putenv() or setenv() are available, we set LC_COLLATE to
"C" before executing "sort" in shortg. This should alleviate
collation issues with sort. However, note that many
utilities use the locale these days so you are advised to
have LC_COLLATE defined to be "C" always when you are dealing
with files of graphs.
Six counters in statsblk became "unsigned long" instead of
"long". nauty doesn't actually use these, but we might as
well give them twice as long before they overflow.
Nov 24, 2004: Made geng faster for generating trees. The output labelling
may be different from before. A very much faster tree
generator is in the works.
Jan 17, 2005: Added two items to dispatch vectors:
init : used for initialising something at the start
cleanup : used for doing something at the end, such as
freeing space allocated by init()
See the manual for calling sequences.
May 20, 2005: Update graph6 and sparse6 formats to allow much large sizes.
The limit is now 68719476735 vertices (best of luck getting
close to that!).
Nov 12, 2005: Changed NAUTY_INFINITY to 2^30+2 in BIGNAUTY case
2006 various: Procedures for sparse graphs implemented.
New program planarg to test for planarity and find
planar embeddings: planarg -help for details.
The planarity code was written by Paulette Lieby for the
Magma project and used with permission.
labelg got -S to use sparse graphs.
genbg -N changed to genbg -n (only Gordon uses this).
genrang gained -R switch for regular graphs in text format.
gtools.c has code for reading and writing planarcode.
listg got a compile time option to select "Matrix" or
"array" for Maple output.
pickg/countg got -T for counting triangles
Better configuration for MacOSX.
Nov 22, 2006: Removed usertcellproc from options. Greater functionality
is now available using the new targetcell field in the
dispatch vector. The u8 command has gone from dreadnaut.
Changed bestcell to targetcell in dispatch vector.
Nov 29, 2006: Added extraoptions field (currently unused) to optionblk
Dec 9, 2006: Added an invariant adjacencies_sg(), recommended for digraphs
when using sparse representation.
Dec 10, 2006: Remove BIGNAUTY, whose usefulness has passed. Now the types
shortish and permutation are synonymous with int always.
The limit on the number of vertices is 2^30 unless int
has only 16 bits (still any of them around?) in which
case it is 2^15-3. Programs previously linked with
files like nautyB.o can now be linked with nauty.o.
Alternatively, "make bigs" will create files like
nautyB.o by copying.
June 26, 2007: Fixed an error in listg -s reported by Evan Heidtmann.
July 12, 2007: Added -f option to directg.
Aug 14, 2007: Added -i,-I,-K options to shortg, parallel to labelg.
Since -k is used in labelg in place of -I, changed labelg
to use -I also, with -k remaining as an undocumented
compatibility feature.
Aug-Sep 2007: Minor things:
* naututil-h.in now defines CPUTIME=0.0 as a last resort
* gtools.c now implements EDGECODE (not used anywhere yet)
* fixed definition of SG_FREE in nausparse.h (not used)
* geng favours space over time for n > 28
Oct 14, 2007: Added -T switch to shortg to specify scratch directory.
Mar 3, 2008: Fixed makefile for compilation in a 64-bit environment.
Oct 11, 2008: Added -l and -m to genrang
Nov 29, 2008: Slightly improved -c for geng and genbg
Added tournament generator gentourng.
Mar 3, 2009: Added -V to directg.