1 #include "defs.h"
2
3 # define NPT 32767
4 # define PSP 2000000
5 # define SVSP 200000
6 # define MP 1000
7 # define MB 80
8
9 /* NPT = max no of points, MP = max no of perms, PSP = space for perms,
10 SVSP = space for Schreier vectors, MB-1 = max no of base pts.
11 */
12 char wrd,nt,isbase,inf[80],outf1[80],outf2[80],fixed[NPT+1];
13 /* defaults: inf gpname.inperm
14 outf1 gpname.outperm
15 outf2 gpname.words
16 */
17 short perm[PSP],sv[SVSP],cp[5*NPT],actgen[MP],orb[NPT+1],
18 base[MB],lorb[MB],order[MB],pno[MP/2], *pptr[MP],*svptr[MB],
19 mp=MP,mb=MB-1,mnpt=NPT;
20 int psp=PSP,svsp=SVSP;
21
main(int argc,char * argv[])22 int main(int argc, char *argv[])
23 { short arg; char d,err;
24 nt=wrd=isbase=0; err=0; arg=1;
25 if (argc<=arg) {err=1; goto error;}
26 while (argv[arg][0]=='-')
27 { d=argv[arg][1]; arg++;
28 if (d=='w') wrd=1; else if (d=='n') nt=1;
29 else if (d=='b') isbase=1;
30 else {err=1;goto error;}
31 if (argc<=arg) {err=1;goto error;}
32 }
33 strcpy(inf,argv[arg]); strcat(inf,"."); strcpy(outf1,inf);
34 if (wrd) {strcpy(outf2,inf); strcat(outf2,"words");}
35 arg++; if (argc<=arg) strcat(inf,"inperm"); else strcat(inf,argv[arg]);
36 arg++; if (argc<=arg) strcat(outf1,"outperm"); else strcat(outf1,argv[arg]);
37 if (gpprog()== -1) exit(1);
38 error:
39 if (err)
40 { fprintf(stderr,"Usage: gprun [-n] [-w] [-b] gpname [inf] [outf1].\n");
41 exit(1);
42 }
43 else exit(0);
44 }
45