summaryrefslogtreecommitdiffstats
path: root/src/misc/espresso/cubestr.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/misc/espresso/cubestr.c')
-rw-r--r--src/misc/espresso/cubestr.c152
1 files changed, 0 insertions, 152 deletions
diff --git a/src/misc/espresso/cubestr.c b/src/misc/espresso/cubestr.c
deleted file mode 100644
index 77389e73..00000000
--- a/src/misc/espresso/cubestr.c
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Revision Control Information
- *
- * $Source$
- * $Author$
- * $Revision$
- * $Date$
- *
- */
-/*
- Module: cubestr.c -- routines for managing the global cube structure
-*/
-
-#include "espresso.h"
-
-/*
- cube_setup -- assume that the fields "num_vars", "num_binary_vars", and
- part_size[num_binary_vars .. num_vars-1] are setup, and initialize the
- rest of cube and cdata.
-
- If a part_size is < 0, then the field size is abs(part_size) and the
- field read from the input is symbolic.
-*/
-void cube_setup()
-{
- register int i, var;
- register pcube p;
-
- if (cube.num_binary_vars < 0 || cube.num_vars < cube.num_binary_vars)
- fatal("cube size is silly, error in .i/.o or .mv");
-
- cube.num_mv_vars = cube.num_vars - cube.num_binary_vars;
- cube.output = cube.num_mv_vars > 0 ? cube.num_vars - 1 : -1;
-
- cube.size = 0;
- cube.first_part = ALLOC(int, cube.num_vars);
- cube.last_part = ALLOC(int, cube.num_vars);
- cube.first_word = ALLOC(int, cube.num_vars);
- cube.last_word = ALLOC(int, cube.num_vars);
- for(var = 0; var < cube.num_vars; var++) {
- if (var < cube.num_binary_vars)
- cube.part_size[var] = 2;
- cube.first_part[var] = cube.size;
- cube.first_word[var] = WHICH_WORD(cube.size);
- cube.size += ABS(cube.part_size[var]);
- cube.last_part[var] = cube.size - 1;
- cube.last_word[var] = WHICH_WORD(cube.size - 1);
- }
-
- cube.var_mask = ALLOC(pset, cube.num_vars);
- cube.sparse = ALLOC(int, cube.num_vars);
- cube.binary_mask = new_cube();
- cube.mv_mask = new_cube();
- for(var = 0; var < cube.num_vars; var++) {
- p = cube.var_mask[var] = new_cube();
- for(i = cube.first_part[var]; i <= cube.last_part[var]; i++)
- set_insert(p, i);
- if (var < cube.num_binary_vars) {
- INLINEset_or(cube.binary_mask, cube.binary_mask, p);
- cube.sparse[var] = 0;
- } else {
- INLINEset_or(cube.mv_mask, cube.mv_mask, p);
- cube.sparse[var] = 1;
- }
- }
- if (cube.num_binary_vars == 0)
- cube.inword = -1;
- else {
- cube.inword = cube.last_word[cube.num_binary_vars - 1];
- cube.inmask = cube.binary_mask[cube.inword] & DISJOINT;
- }
-
- cube.temp = ALLOC(pset, CUBE_TEMP);
- for(i = 0; i < CUBE_TEMP; i++)
- cube.temp[i] = new_cube();
- cube.fullset = set_fill(new_cube(), cube.size);
- cube.emptyset = new_cube();
-
- cdata.part_zeros = ALLOC(int, cube.size);
- cdata.var_zeros = ALLOC(int, cube.num_vars);
- cdata.parts_active = ALLOC(int, cube.num_vars);
- cdata.is_unate = ALLOC(int, cube.num_vars);
-}
-
-/*
- setdown_cube -- free memory allocated for the cube/cdata structs
- (free's all but the part_size array)
-
- (I wanted to call this cube_setdown, but that violates the 8-character
- external routine limit on the IBM !)
-*/
-void setdown_cube()
-{
- register int i, var;
-
- FREE(cube.first_part);
- FREE(cube.last_part);
- FREE(cube.first_word);
- FREE(cube.last_word);
- FREE(cube.sparse);
-
- free_cube(cube.binary_mask);
- free_cube(cube.mv_mask);
- free_cube(cube.fullset);
- free_cube(cube.emptyset);
- for(var = 0; var < cube.num_vars; var++)
- free_cube(cube.var_mask[var]);
- FREE(cube.var_mask);
-
- for(i = 0; i < CUBE_TEMP; i++)
- free_cube(cube.temp[i]);
- FREE(cube.temp);
-
- FREE(cdata.part_zeros);
- FREE(cdata.var_zeros);
- FREE(cdata.parts_active);
- FREE(cdata.is_unate);
-
- cube.first_part = cube.last_part = (int *) NULL;
- cube.first_word = cube.last_word = (int *) NULL;
- cube.sparse = (int *) NULL;
- cube.binary_mask = cube.mv_mask = (pcube) NULL;
- cube.fullset = cube.emptyset = (pcube) NULL;
- cube.var_mask = cube.temp = (pcube *) NULL;
-
- cdata.part_zeros = cdata.var_zeros = cdata.parts_active = (int *) NULL;
- cdata.is_unate = (bool *) NULL;
-}
-
-
-void save_cube_struct()
-{
- temp_cube_save = cube; /* structure copy ! */
- temp_cdata_save = cdata; /* "" */
-
- cube.first_part = cube.last_part = (int *) NULL;
- cube.first_word = cube.last_word = (int *) NULL;
- cube.part_size = (int *) NULL;
- cube.binary_mask = cube.mv_mask = (pcube) NULL;
- cube.fullset = cube.emptyset = (pcube) NULL;
- cube.var_mask = cube.temp = (pcube *) NULL;
-
- cdata.part_zeros = cdata.var_zeros = cdata.parts_active = (int *) NULL;
- cdata.is_unate = (bool *) NULL;
-}
-
-
-void restore_cube_struct()
-{
- cube = temp_cube_save; /* structure copy ! */
- cdata = temp_cdata_save; /* "" */
-}