diff options
| author | Andrew Guschin <guschin.drew@gmail.com> | 2023-08-13 01:27:00 +0400 |
|---|---|---|
| committer | Andrew Guschin <guschin.drew@gmail.com> | 2023-08-13 06:00:02 -0500 |
| commit | 58acff54b1cd64cb23b9d0b1a304eb9db768e3eb (patch) | |
| tree | 87281f776e0015f218aadb5cbfdad43c66406342 /nauty/naugroup.h | |
Initial commit
Diffstat (limited to 'nauty/naugroup.h')
| -rw-r--r-- | nauty/naugroup.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/nauty/naugroup.h b/nauty/naugroup.h new file mode 100644 index 0000000..a43c262 --- /dev/null +++ b/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 |