-
Notifications
You must be signed in to change notification settings - Fork 0
/
naugroup.h
55 lines (46 loc) · 1.52 KB
/
naugroup.h
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
/* 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