move everything out of trunk
[lttv.git] / trunk / verif / Spin / Src5.1.6 / pangen5.h
diff --git a/trunk/verif/Spin/Src5.1.6/pangen5.h b/trunk/verif/Spin/Src5.1.6/pangen5.h
deleted file mode 100755 (executable)
index 8a876ef..0000000
+++ /dev/null
@@ -1,424 +0,0 @@
-/***** spin: pangen5.h *****/
-
-/* Copyright (c) 1997-2003 by Lucent Technologies, Bell Laboratories.     */
-/* All Rights Reserved.  This software is for educational purposes only.  */
-/* No guarantee whatsoever is expressed or implied by the distribution of */
-/* this code.  Permission is given to distribute this code provided that  */
-/* this introductory message is not removed and no monies are exchanged.  */
-/* Software written by Gerard J. Holzmann.  For tool documentation see:   */
-/*             http://spinroot.com/                                       */
-/* Send all bug-reports and/or questions to: bugs@spinroot.com            */
-
-static char *Xpt[] = {
-       "#if defined(MA) && (defined(W_XPT) || defined(R_XPT))",
-       "static Vertex  **temptree;",
-       "static char    wbuf[4096];",
-       "static int     WCNT = 4096, wcnt=0;",
-       "static uchar   stacker[MA+1];",
-       "static ulong   stackcnt = 0;",
-       "extern double  nstates, nlinks, truncs, truncs2;",
-       "",
-       "static void",
-       "xwrite(int fd, char *b, int n)",
-       "{",
-       "       if (wcnt+n >= 4096)",
-       "       {       write(fd, wbuf, wcnt);",
-       "               wcnt = 0;",
-       "       }",
-       "       memcpy(&wbuf[wcnt], b, n);",
-       "       wcnt += n;",
-       "}",
-       "",
-       "static void",
-       "wclose(fd)",
-       "{",
-       "       if (wcnt > 0)",
-       "               write(fd, wbuf, wcnt);",
-       "       wcnt = 0;",
-       "       close(fd);",
-       "}",
-       "",
-       "static void",
-       "w_vertex(int fd, Vertex *v)",
-       "{      char t[3]; int i; Edge *e;",
-       "",
-       "       xwrite(fd, (char *) &v,  sizeof(Vertex *));",
-       "       t[0] = 0;",
-       "       for (i = 0; i < 2; i++)",
-       "               if (v->dst[i])",
-       "               {       t[1] = v->from[i], t[2] = v->to[i];",
-       "                       xwrite(fd, t, 3);",
-       "                       xwrite(fd, (char *) &(v->dst[i]), sizeof(Vertex *));",
-       "               }",
-       "       for (e = v->Succ; e; e = e->Nxt)",
-       "       {       t[1] = e->From, t[2] = e->To;",
-       "               xwrite(fd, t, 3);",
-       "               xwrite(fd, (char *) &(e->Dst), sizeof(Vertex *));",
-       "",
-       "               if (e->s)",
-       "               {       t[1] = t[2] = e->S;",
-       "                       xwrite(fd, t, 3);",
-       "                       xwrite(fd, (char *) &(e->Dst), sizeof(Vertex *));",
-       "       }       }",
-       "}",
-       "",
-       "static void",
-       "w_layer(int fd, Vertex *v)",
-       "{      uchar c=1;",
-       "",
-       "       if (!v) return;",
-       "       xwrite(fd, (char *) &c, 1);",
-       "       w_vertex(fd, v);",
-       "       w_layer(fd, v->lnk);",
-       "       w_layer(fd, v->left);",
-       "       w_layer(fd, v->right);",
-       "}",
-       "",
-       "void",
-       "w_xpoint(void)",
-       "{      int fd; char nm[64];",
-       "       int i, j;  uchar c;",
-       "       static uchar xwarned = 0;",
-       "",
-       "       sprintf(nm, \"%%s.xpt\", PanSource);",
-       "       if ((fd = creat(nm, 0666)) <= 0)",
-       "       if (!xwarned)",
-       "       {       xwarned = 1;",
-       "               printf(\"cannot creat checkpoint file\\n\");",
-       "               return;",
-       "       }",
-       "       xwrite(fd, (char *) &nstates, sizeof(double));",
-       "       xwrite(fd, (char *) &truncs, sizeof(double));",
-       "       xwrite(fd, (char *) &truncs2, sizeof(double));",
-       "       xwrite(fd, (char *) &nlinks, sizeof(double));",
-       "       xwrite(fd, (char *) &dfa_depth, sizeof(int));",
-       "       xwrite(fd, (char *) &R,  sizeof(Vertex *));",
-       "       xwrite(fd, (char *) &F,  sizeof(Vertex *));",
-       "       xwrite(fd, (char *) &NF, sizeof(Vertex *));",
-       "",
-       "       for (j = 0; j < TWIDTH; j++)",
-       "       for (i = 0; i < dfa_depth+1; i++)",
-       "       {       w_layer(fd, layers[i*TWIDTH+j]);",
-       "               c = 2; xwrite(fd, (char *) &c, 1);",
-       "       }",
-       "       wclose(fd);",
-       "}",
-       "",
-       "static void",
-       "xread(int fd, char *b, int n)",
-       "{      int m = wcnt; int delta = 0;",
-       "       if (m < n)",
-       "       {       if (m > 0) memcpy(b, &wbuf[WCNT-m], m);",
-       "               delta = m;",
-       "               WCNT = wcnt = read(fd, wbuf, 4096);",
-       "               if (wcnt < n-m)",
-       "                       Uerror(\"xread failed -- insufficient data\");",
-       "               n -= m;",
-       "       }",
-       "       memcpy(&b[delta], &wbuf[WCNT-wcnt], n);",
-       "       wcnt -= n;",
-       "}",
-       "",
-       "static void",
-       "x_cleanup(Vertex *c)",
-       "{      Edge *e;        /* remove the tree and edges from c */",
-       "       if (!c) return;",
-       "       for (e = c->Succ; e; e = e->Nxt)",
-       "               x_cleanup(e->Dst);",
-       "       recyc_vertex(c);",
-       "}",
-       "",
-       "static void",
-       "x_remove(void)",
-       "{      Vertex *tmp; int i, s;",
-       "       int r, j;",
-       "       /* double-check: */",
-       "       stacker[dfa_depth-1] = 0; r = dfa_store(stacker);",
-       "       stacker[dfa_depth-1] = 4; j = dfa_member(dfa_depth-1);",
-       "       if (r != 1 || j != 0)",
-       "       {       printf(\"%%d: \", stackcnt);",
-       "               for (i = 0; i < dfa_depth; i++)",
-       "                       printf(\"%%d,\", stacker[i]);",
-       "               printf(\" -- not a stackstate <o:%%d,4:%%d>\\n\", r, j);",
-       "               return;",
-       "       }",
-       "       stacker[dfa_depth-1] = 1;",
-       "       s = dfa_member(dfa_depth-1);",
-       "",
-       "       { tmp = F; F = NF; NF = tmp; }  /* complement */",
-       "               if (s) dfa_store(stacker);",
-       "               stacker[dfa_depth-1] = 0;",
-       "               dfa_store(stacker);",
-       "               stackcnt++;",
-       "       { tmp = F; F = NF; NF = tmp; }",
-       "}",
-       "",
-       "static void",
-       "x_rm_stack(Vertex *t, int k)",
-       "{      int j; Edge *e;",
-       "",
-       "       if (k == 0)",
-       "       {       x_remove();",
-       "               return;",
-       "       }",
-       "       if (t)",
-       "       for (e = t->Succ; e; e = e->Nxt)",
-       "       {       for (j = e->From; j <= (int) e->To; j++)",
-       "               {       stacker[k] = (uchar) j;",
-       "                       x_rm_stack(e->Dst, k-1);",
-       "               }",
-       "               if (e->s)",
-       "               {       stacker[k] = e->S;",
-       "                       x_rm_stack(e->Dst, k-1);",
-       "       }       }",
-       "}",
-       "",
-       "static Vertex *",
-       "insert_withkey(Vertex *v, int L)",
-       "{      Vertex *new, *t = temptree[L];",
-       "",
-       "       if (!t) { temptree[L] = v; return v; }",
-       "       t = splay(v->key, t);",
-       "       if (v->key < t->key)",
-       "       {       new = v;",
-       "               new->left = t->left;",
-       "               new->right = t;",
-       "               t->left = (Vertex *) 0;",
-       "       } else if (v->key > t->key)",
-       "       {       new = v;",
-       "               new->right = t->right;",
-       "               new->left = t;",
-       "               t->right = (Vertex *) 0;",
-       "       } else",
-       "       {       if (t != R && t != F && t != NF)",
-       "                       Uerror(\"double insert, bad checkpoint data\");",
-       "               else",
-       "               {       recyc_vertex(v);",
-       "                       new = t;",
-       "       }       }",
-       "       temptree[L] = new;",
-       "",
-       "       return new;",
-       "}",
-       "",
-       "static Vertex *",
-       "find_withkey(Vertex *v, int L)",
-       "{      Vertex *t = temptree[L];",
-       "       if (t)",
-       "       {       temptree[L] = t = splay((ulong) v, t);",
-       "               if (t->key == (ulong) v)",
-       "                       return t;",
-       "       }",
-       "       Uerror(\"not found error, bad checkpoint data\");",
-       "       return (Vertex *) 0;",
-       "}",
-       "",
-       "void",
-       "r_layer(int fd, int n)",
-       "{      Vertex *v;",
-       "       Edge *e;",
-       "       char c, t[2];",
-       "",
-       "       for (;;)",
-       "       {       xread(fd, &c, 1);",
-       "               if (c == 2) break;",
-       "               if (c == 1)",
-       "               {       v = new_vertex();",
-       "                       xread(fd, (char *) &(v->key), sizeof(Vertex *));",
-       "                       v = insert_withkey(v, n);",
-       "               } else  /* c == 0 */",
-       "               {       e = new_edge((Vertex *) 0);",
-       "                       xread(fd, t, 2);",
-       "                       e->From = t[0];",
-       "                       e->To = t[1];",
-       "                       xread(fd, (char *) &(e->Dst), sizeof(Vertex *));",
-       "                       insert_edge(v, e);",
-       "       }       }",
-       "}",
-       "",
-       "static void",
-       "v_fix(Vertex *t, int nr)",
-       "{      int i; Edge *e;",
-       "",
-       "       if (!t) return;",
-       "",
-       "       for (i = 0; i < 2; i++)",
-       "       if (t->dst[i])",
-       "               t->dst[i] = find_withkey(t->dst[i], nr);",
-       "",
-       "       for (e = t->Succ; e; e = e->Nxt)",
-       "               e->Dst = find_withkey(e->Dst, nr);",
-       "               ",
-       "       v_fix(t->left, nr);",
-       "       v_fix(t->right, nr);",
-       "}",
-       "",
-       "static void",
-       "v_insert(Vertex *t, int nr)",
-       "{      Edge *e; int i;",
-       "",
-       "       if (!t) return;",
-       "       v_insert(t->left, nr);",
-       "       v_insert(t->right, nr);",
-       "",
-       "       /* remove only leafs from temptree */",
-       "       t->left = t->right = t->lnk = (Vertex *) 0;",
-       "       insert_it(t, nr);       /* into layers */",
-       "       for (i = 0; i < 2; i++)",
-       "               if (t->dst[i])",
-       "                       t->dst[i]->num += (t->to[i] - t->from[i] + 1);",
-       "       for (e = t->Succ; e; e = e->Nxt)",
-       "               e->Dst->num += (e->To - e->From + 1 + e->s);",
-       "}",
-       "",
-       "static void",
-       "x_fixup(void)",
-       "{      int i;",
-       "",
-       "       for (i = 0; i < dfa_depth; i++)",
-       "               v_fix(temptree[i], (i+1));",
-       "",
-       "       for (i = dfa_depth; i >= 0; i--)",
-       "               v_insert(temptree[i], i);",
-       "}",
-       "",
-       "static Vertex *",
-       "x_tail(Vertex *t, ulong want)",
-       "{      int i, yes, no; Edge *e; Vertex *v = (Vertex *) 0;",
-       "",
-       "       if (!t) return v;",
-       "",
-       "       yes = no = 0;",
-       "       for (i = 0; i < 2; i++)",
-       "               if ((ulong) t->dst[i] == want)",
-       "               {       /* was t->from[i] <= 0 && t->to[i] >= 0 */",
-       "                       /* but from and to are uchar */",
-       "                       if (t->from[i] == 0)",
-       "                               yes = 1;",
-       "                       else",
-       "                       if (t->from[i] <= 4 && t->to[i] >= 4)",
-       "                               no = 1;",
-       "               }",
-       "",
-       "       for (e = t->Succ; e; e = e->Nxt)",
-       "               if ((ulong) e->Dst == want)",
-       "               {       /* was INRANGE(e,0) but From and To are uchar */",
-       "                       if ((e->From == 0) || (e->s==1 && e->S==0))",
-       "                               yes = 1;",
-       "                       else if (INRANGE(e, 4))",
-       "                               no = 1;",
-       "               }",
-       "       if (yes && !no) return t;",
-       "       v = x_tail(t->left, want);  if (v) return v;",
-       "       v = x_tail(t->right, want); if (v) return v;",
-       "       return (Vertex *) 0;",
-       "}",
-       "",
-       "static void",
-       "x_anytail(Vertex *t, Vertex *c, int nr)",
-       "{      int i; Edge *e, *f; Vertex *v;",
-       "",
-       "       if (!t) return;",
-       "",
-       "       for (i = 0; i < 2; i++)",
-       "               if ((ulong) t->dst[i] == c->key)",
-       "               {       v = new_vertex(); v->key = t->key;",
-       "                       f = new_edge(v);",
-       "                       f->From = t->from[i];",
-       "                       f->To = t->to[i];",
-       "                       f->Nxt = c->Succ;",
-       "                       c->Succ = f;",
-       "                       if (nr > 0)",
-       "                       x_anytail(temptree[nr-1], v, nr-1);",
-       "               }",
-       "",
-       "       for (e = t->Succ; e; e = e->Nxt)",
-       "               if ((ulong) e->Dst == c->key)",
-       "               {       v = new_vertex(); v->key = t->key;",
-       "                       f = new_edge(v);",
-       "                       f->From = e->From;",
-       "                       f->To = e->To;",
-       "                       f->s = e->s;",
-       "                       f->S = e->S;",
-       "                       f->Nxt = c->Succ;",
-       "                       c->Succ = f;",
-       "                       x_anytail(temptree[nr-1], v, nr-1);",
-       "               }",
-       "",
-       "       x_anytail(t->left, c, nr);",
-       "       x_anytail(t->right, c, nr);",
-       "}",
-       "",
-       "static Vertex *",
-       "x_cpy_rev(void)",
-       "{      Vertex *c, *v;  /* find 0 and !4 predecessor of F */",
-       "",
-       "       v = x_tail(temptree[dfa_depth-1], F->key);",
-       "       if (!v) return (Vertex *) 0;",
-       "",
-       "       c = new_vertex(); c->key = v->key;",
-       "",
-       "       /* every node on dfa_depth-2 that has v->key as succ */",
-       "       /* make copy and let c point to these (reversing ptrs) */",
-       "",
-       "       x_anytail(temptree[dfa_depth-2], c, dfa_depth-2);",
-       " ",
-       "       return c;",
-       "}",
-       "",
-       "void",
-       "r_xpoint(void)",
-       "{      int fd; char nm[64]; Vertex *d;",
-       "       int i, j;",
-       "",
-       "       wcnt = 0;",
-       "       sprintf(nm, \"%%s.xpt\", PanSource);",
-       "       if ((fd = open(nm, 0)) < 0)     /* O_RDONLY */",
-       "               Uerror(\"cannot open checkpoint file\");",
-       "",
-       "       xread(fd, (char *) &nstates,   sizeof(double));",
-       "       xread(fd, (char *) &truncs,    sizeof(double));",
-       "       xread(fd, (char *) &truncs2,   sizeof(double));",
-       "       xread(fd, (char *) &nlinks,    sizeof(double));",
-       "       xread(fd, (char *) &dfa_depth, sizeof(int));",
-       "",
-       "       if (dfa_depth != MA+a_cycles)",
-       "               Uerror(\"bad dfa_depth in checkpoint file\");",
-       "",
-       "       path      = (Vertex **) emalloc((dfa_depth+1)*sizeof(Vertex *));",
-       "       layers    = (Vertex **) emalloc(TWIDTH*(dfa_depth+1)*sizeof(Vertex *));",
-       "       temptree  = (Vertex **) emalloc((dfa_depth+2)*sizeof(Vertex *));",
-       "       lastword  = (uchar *)   emalloc((dfa_depth+1)*sizeof(uchar));",
-       "       lastword[dfa_depth] = lastword[0] = 255; ",
-       "",
-       "       path[0] = R = new_vertex();",
-       "       xread(fd, (char *) &R->key, sizeof(Vertex *));",
-       "       R = insert_withkey(R, 0);",
-       "",
-       "       F = new_vertex();",
-       "       xread(fd, (char *) &F->key, sizeof(Vertex *));",
-       "       F = insert_withkey(F, dfa_depth);",
-       "",
-       "       NF = new_vertex();",
-       "       xread(fd, (char *) &NF->key, sizeof(Vertex *));",
-       "       NF = insert_withkey(NF, dfa_depth);",
-       "",
-       "       for (j = 0; j < TWIDTH; j++)",
-       "       for (i = 0; i < dfa_depth+1; i++)",
-       "               r_layer(fd, i);",
-       "",
-       "       if (wcnt != 0) Uerror(\"bad count in checkpoint file\");",
-       "",
-       "       d = x_cpy_rev();",
-       "       x_fixup();",
-       "       stacker[dfa_depth-1] = 0;",
-       "       x_rm_stack(d, dfa_depth-2);",
-       "       x_cleanup(d);",
-       "       close(fd);",
-       "",
-       "       printf(\"pan: removed %%d stackstates\\n\", stackcnt);",
-       "       nstates -= (double) stackcnt;",
-       "}",
-       "#endif",
-       0,
-};
This page took 0.027783 seconds and 4 git commands to generate.