summaryrefslogtreecommitdiff
path: root/graph-checker/nauty/traces.h
diff options
context:
space:
mode:
authorAndrew Guschin <guschin@altlinux.org>2024-03-31 18:36:27 +0500
committerAndrew Guschin <guschin@altlinux.org>2024-03-31 18:36:27 +0500
commitf7aa97e10a2fbddb76e1893b7deb193ad56e7192 (patch)
treedab29cd1166edee5c096bdfc45d1c6ab509107f8 /graph-checker/nauty/traces.h
parentb294692a8251eb9c4ea8f3e78651d88fc6efd792 (diff)
latest version
Diffstat (limited to 'graph-checker/nauty/traces.h')
-rw-r--r--graph-checker/nauty/traces.h73
1 files changed, 73 insertions, 0 deletions
diff --git a/graph-checker/nauty/traces.h b/graph-checker/nauty/traces.h
new file mode 100644
index 0000000..a78738e
--- /dev/null
+++ b/graph-checker/nauty/traces.h
@@ -0,0 +1,73 @@
+/******************************************************************************
+ * *
+ * This is the header file for traces() version 2.2, which is included into *
+ * nauty() version 2.8.6. *
+ * *
+ * nauty is Copyright (1984-2018) Brendan McKay. All rights reserved. *
+ * Traces is Copyright Adolfo Piperno, 2008-2018. All rights reserved. *
+ * See the file COPYRIGHT for the details of the software license. *
+ * *
+ * CHANGE HISTORY *
+ * 28-Dec-12 : final changes for version 2.0 *
+ * 20-Jan-13 : add code for ^C catching in Traces *
+ * 29-Mar-13 : bug correction in automorphism mode *
+ * 02-Apr-13 : add preprocessing *
+ * 21-May-13 : bug correction (coloured lists) *
+ * 29-Jun-13 : bug correction (coloured lists and cycles) *
+ * 07-Dec-13 : bug correction in automorphism mode (wrong group size *
+ * due to randomness in Schreier-Sims orbit computation) *
+ * bug correction (discrete initial partition) *
+ * 15-Feb-14 : CPUDEFS removed (already declared in gtools.h) *
+ * 01-Sep-15 : add weighted edges (not active) *
+ * 28-Jan-16 : version ready for nauty and Traces v.2.6 distribution *
+ * 12-Jul-16 : bug correction (reaching degree 2 vertices) *
+ * 07-Jun-18 : bug correction (finalnumcells, thanks R.Kralovic) *
+ * 07-Jun-18 : bug correction (index computation when findperm) *
+ * 10-Nov-22 : bug correction (cycles in degree 2 subgraphs) *
+******************************************************************************/
+
+#include "gtools.h"
+#include "schreier.h"
+
+typedef struct TracesOptions {
+ boolean getcanon;
+ boolean writeautoms;
+ boolean cartesian;
+ boolean digraph;
+ boolean defaultptn;
+ int linelength;
+ FILE* outfile;
+ int strategy; /* Only the value 0 is supported in this version. */
+ int verbosity;
+ permnode **generators;
+ void (*userautomproc)(int,int*,int);
+ int (*usercanonproc)(graph*,int*,graph*,int,int,int,int);
+ boolean weighted;
+} TracesOptions;
+
+#define DEFAULTOPTIONS_TRACES(opts) TracesOptions opts \
+= { FALSE, FALSE, FALSE, FALSE, TRUE, 0, NULL, 0, 0, NULL, NULL, NULL, FALSE }
+
+typedef struct TracesStats {
+ double grpsize1;
+ int grpsize2;
+ int numgenerators;
+ int numorbits;
+ int treedepth;
+ int canupdates;
+ int errstatus;
+ unsigned long numnodes;
+ unsigned long interrupted;
+ unsigned long peaknodes;
+} TracesStats;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern void Traces(sparsegraph*,int*,int*,int*,TracesOptions*,
+ TracesStats*,sparsegraph*);
+extern void refine_tr(sparsegraph*,int*,int*,int*,int*,TracesOptions*);
+extern void traces_freedyn(void);
+#ifdef __cplusplus
+}
+#endif