Ejemplo n.º 1
0
void bdd_unmark(int i)
{
   BddNode *node;
   
   if (i < 2)
      return;

   node = &bddnodes[i];

   if (!MARKEDp(node)  ||  LOWp(node) == -1)
      return;
   UNMARKp(node);
   
   bdd_unmark(LOWp(node));
   bdd_unmark(HIGHp(node));
}
Ejemplo n.º 2
0
void bdd_fprintdot(FILE* ofile, BDD r)
{
   fprintf(ofile, "digraph G {\n");
   fprintf(ofile, "0 [shape=box, label=\"0\", style=filled, shape=box, height=0.3, width=0.3];\n");
   fprintf(ofile, "1 [shape=box, label=\"1\", style=filled, shape=box, height=0.3, width=0.3];\n");

   bdd_fprintdot_rec(ofile, r);

   fprintf(ofile, "}\n");

   bdd_unmark(r);
}
Ejemplo n.º 3
0
Archivo: jbuddy.c Proyecto: Sable/jedd
extern int bdd_markwidth(int bdd, int var1, int var2)
{
    int level;
    int seenTerminals[2];
    int ret;
    seenTerminals[0] = 0;
    seenTerminals[1] = 0;
    level = bdd_var2level(var1);
    if(bdd_var2level(var2) > level) level = bdd_var2level(var2);
    ret = bdd_markwidth_rec(bdd, level, seenTerminals);
    bdd_unmark(bdd);
    return ret;
}
Ejemplo n.º 4
0
int bdd_save(FILE *ofile, BDD r)
{
   int err, n=0;

   if (r < 2)
   {
      fprintf(ofile, "0 0 %d\n", r);
      return 0;
   }
   
   bdd_markcount(r, &n);
   bdd_unmark(r);
   fprintf(ofile, "%d %d\n", n, bddvarnum);

   for (n=0 ; n<bddvarnum ; n++)
      fprintf(ofile, "%d ", bddvar2level[n]);
   fprintf(ofile, "\n");
   
   err = bdd_save_rec(ofile, r);
   bdd_unmark(r);

   return err;
}
Ejemplo n.º 5
0
Archivo: jbuddy.c Proyecto: Sable/jedd
extern void getShape( int bdd, int shape[] ) {
    bdd_markshape(bdd, shape);
    bdd_unmark(bdd);
}