/* st02.c CJP Version 1.1 08/10/07 */ #include #include #include"blimp.h" #define MAXGENS 10000 void seteql(int a, int b); int canon(int z); int can[MAXGENS]; int ren[MAXGENS]; int main(int argc, char **argv) { int i,j,k; int restart, good, changed; FILE *f1,*f2,*f3; int *gp,*inv,*rel,*b,*nb6,*ob6; int b6len,b6rels,rellen; int *b6pt,*nb6pt; int *b6read,*b6write; int *b4read,*b4write; int *b5read,*b5write; int newgens; int b4len, b5len; good=1; gp = (int*) malloc(sizeof(int)*GRPSIZ); if(gp==NULL) good=0; b = (int*) malloc(sizeof(int)*GRPSIZ); if(b==NULL) good=0; inv = (int*) malloc(sizeof(int)*GRPSIZ); if(inv==NULL) good=0; nb6 = (int*) malloc(sizeof(int)*GRPSIZ); if(nb6==NULL) good=0; ob6 = (int*) malloc(sizeof(int)*GRPSIZ); if(ob6==NULL) good=0; rel = (int*) malloc(sizeof(int)*GRPSIZ); if(rel==NULL) good=0; if(good==0) { printf("Error allocating memory in st02\n"); return 0; } if(argc!=4) { printf("Usage: st02 \n"); return 0; } f1 = (FILE*) fopen(argv[1],"r"); if(f1==NULL) { printf("Error opening file %s",argv[1]); return 0; } f2 = (FILE*) fopen(argv[2],"w"); if(f2==NULL) { printf("Error opening file %s",argv[2]); return 0; } f3 = (FILE*) fopen(argv[3],"w"); if(f3==NULL) { printf("Error opening file %s",argv[3]); return 0; } while(1) { changed=0; // Read in group (Breaking if fail) i = ReadGroup(gp,f1); if(i==-1) break; restart=2; while(restart) { if(restart==1) changed=1; restart=0; ExtractBlimp(gp,3,inv); k=inv[1]; for(i=0;i2) { b6rels++; b6len = b6len + rellen + 1; for(j=0;j