summaryrefslogtreecommitdiff
path: root/graph-checker/nauty/naugroup.h
diff options
context:
space:
mode:
Diffstat (limited to 'graph-checker/nauty/naugroup.h')
-rw-r--r--graph-checker/nauty/naugroup.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/graph-checker/nauty/naugroup.h b/graph-checker/nauty/naugroup.h
new file mode 100644
index 0000000..a43c262
--- /dev/null
+++ b/graph-checker/nauty/naugroup.h
@@ -0,0 +1,55 @@
+/* naugroup.h
+
+Procedures for handling groups found by nauty.
+*/
+
+#include "nauty.h"
+
+typedef struct perm_struct
+{
+ struct perm_struct *ptr; /* general-purpose pointer */
+ int p[2]; /* extendable section */
+} permrec;
+
+typedef struct coset_struct
+{
+ int image; /* image of fixed point */
+ permrec *rep; /* pointer to a representative */
+} cosetrec;
+
+typedef struct level_struct
+{
+ int fixedpt; /* point that is fixed in this level */
+ int orbitsize; /* the size of the orbit containing fixedpt */
+ permrec *gens; /* pointer to list of generators */
+ cosetrec *replist; /* array of orbitsize representatives */
+} levelrec;
+
+typedef struct group_struct
+{
+ int n; /* number of points */
+ int numorbits; /* number of orbits */
+ int depth; /* number of points in base */
+ levelrec levelinfo[1]; /* extendable section */
+} grouprec;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern void freepermrec(permrec*, int);
+extern grouprec *groupptr(boolean);
+extern permrec *newpermrec(int);
+extern void groupautomproc(int,int*,int*,int,int,int);
+extern void
+ grouplevelproc(int*,int*,int,int*,statsblk*,int,int,int,int,int,int);
+extern void makecosetreps(grouprec*);
+extern int permcycles(int*,int,int*,boolean);
+extern void allgroup(grouprec*,void(*)(int*,int));
+extern int allgroup2(grouprec*,void(*)(int*,int,int*));
+extern int allgroup3(grouprec*,void(*)(int*,int,int*,void*),void*);
+extern void freegroup(grouprec*);
+
+#ifdef __cplusplus
+}
+#endif