void attachvertexes(void) { int v, l; arr4byte vert; for (v = 0; v < vcs.sizet; v++) { for(l=0; l<vcs.valence[v]; l++) vert[l]=vcs.vertlist[v][l].partcl; for(l=vcs.valence[v]; l<MAXVALENCE; l++) vert[l]=0; vertinlgr(vert,v+1,vertexes[v].subst,&vertexes[v].lgrnptr); } }
static void preliminaryTest(hlpcsptr* alll) {hlpcsptr c, cpred; arr4byte vert, subst; algvertptr lgr; int i, j; int del; c = *alll; while (c != NULL) { del = 0; for(i=0; i < vcs_stat.sizet && !del;i++) { for (j = 0; j < vcs_stat.valence[i]; j++) if (c->hlpcs[i][j] >= undefprtclmark) goto label_1; for (j = 0; j < vcs_stat.valence[i]; j++) vert[j] = vcs_stat.vertlist[i][j].partcl + c->hlpcs[i][j]; for (j=vcs_stat.valence[i];j<MAXVALENCE;j++) vert[j] = 0; vertinlgr(vert,i+1,subst,&lgr); del = (lgr == NULL); label_1: ; } if (del) { if (c == *alll) { c = c->next; free(*alll); *alll = c; } else { cpred->next = c->next; free(c); c = cpred->next; } } else { cpred = c; c = c->next; } } }
static int ins_test(int i,int j,int mrk,hlpcsptr c) {int j1; algvertptr lgr; arr4byte subst, vert; int m; for (j1 = 1; j1 <= vcs_stat.valence[i-1]; j1++) { if (j1 == j) m = mrk; else { m = c->hlpcs[i-1][j1-1]; if (m >=undefprtclmark) return 1; } vert[j1-1] = vcs_stat.vertlist[i-1][j1-1].partcl +m; } if (vcs_stat.valence[i-1] == 3) vert[3] = 0; vertinlgr(vert,i,subst,&lgr); return (lgr != NULL); }